Built motion from commit 6a09e18b.|2.6.11
[motion2.git] / legacy-libs / google-proto-files / google / bigtable / admin / v2 / bigtable_table_admin.proto
diff --git a/legacy-libs/google-proto-files/google/bigtable/admin/v2/bigtable_table_admin.proto b/legacy-libs/google-proto-files/google/bigtable/admin/v2/bigtable_table_admin.proto
new file mode 100644 (file)
index 0000000..79c461e
--- /dev/null
@@ -0,0 +1,528 @@
+// Copyright 2018 Google LLC.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+package google.bigtable.admin.v2;
+
+import "google/api/annotations.proto";
+import "google/bigtable/admin/v2/table.proto";
+import "google/longrunning/operations.proto";
+import "google/protobuf/duration.proto";
+import "google/protobuf/empty.proto";
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.Bigtable.Admin.V2";
+option go_package = "google.golang.org/genproto/googleapis/bigtable/admin/v2;admin";
+option java_multiple_files = true;
+option java_outer_classname = "BigtableTableAdminProto";
+option java_package = "com.google.bigtable.admin.v2";
+option php_namespace = "Google\\Cloud\\Bigtable\\Admin\\V2";
+
+// Service for creating, configuring, and deleting Cloud Bigtable tables.
+//
+//
+// Provides access to the table schemas only, not the data stored within
+// the tables.
+service BigtableTableAdmin {
+  // Creates a new table in the specified instance.
+  // The table can be created with a full set of initial column families,
+  // specified in the request.
+  rpc CreateTable(CreateTableRequest) returns (Table) {
+    option (google.api.http) = {
+      post: "/v2/{parent=projects/*/instances/*}/tables"
+      body: "*"
+    };
+  }
+
+  // Creates a new table from the specified snapshot. The target table must
+  // not exist. The snapshot and the table must be in the same instance.
+  //
+  // Note: This is a private alpha release of Cloud Bigtable snapshots. This
+  // feature is not currently available to most Cloud Bigtable customers. This
+  // feature might be changed in backward-incompatible ways and is not
+  // recommended for production use. It is not subject to any SLA or deprecation
+  // policy.
+  rpc CreateTableFromSnapshot(CreateTableFromSnapshotRequest)
+      returns (google.longrunning.Operation) {
+    option (google.api.http) = {
+      post: "/v2/{parent=projects/*/instances/*}/tables:createFromSnapshot"
+      body: "*"
+    };
+  }
+
+  // Lists all tables served from a specified instance.
+  rpc ListTables(ListTablesRequest) returns (ListTablesResponse) {
+    option (google.api.http) = {
+      get: "/v2/{parent=projects/*/instances/*}/tables"
+    };
+  }
+
+  // Gets metadata information about the specified table.
+  rpc GetTable(GetTableRequest) returns (Table) {
+    option (google.api.http) = {
+      get: "/v2/{name=projects/*/instances/*/tables/*}"
+    };
+  }
+
+  // Permanently deletes a specified table and all of its data.
+  rpc DeleteTable(DeleteTableRequest) returns (google.protobuf.Empty) {
+    option (google.api.http) = {
+      delete: "/v2/{name=projects/*/instances/*/tables/*}"
+    };
+  }
+
+  // Performs a series of column family modifications on the specified table.
+  // Either all or none of the modifications will occur before this method
+  // returns, but data requests received prior to that point may see a table
+  // where only some modifications have taken effect.
+  rpc ModifyColumnFamilies(ModifyColumnFamiliesRequest) returns (Table) {
+    option (google.api.http) = {
+      post: "/v2/{name=projects/*/instances/*/tables/*}:modifyColumnFamilies"
+      body: "*"
+    };
+  }
+
+  // Permanently drop/delete a row range from a specified table. The request can
+  // specify whether to delete all rows in a table, or only those that match a
+  // particular prefix.
+  rpc DropRowRange(DropRowRangeRequest) returns (google.protobuf.Empty) {
+    option (google.api.http) = {
+      post: "/v2/{name=projects/*/instances/*/tables/*}:dropRowRange"
+      body: "*"
+    };
+  }
+
+  // Generates a consistency token for a Table, which can be used in
+  // CheckConsistency to check whether mutations to the table that finished
+  // before this call started have been replicated. The tokens will be available
+  // for 90 days.
+  rpc GenerateConsistencyToken(GenerateConsistencyTokenRequest)
+      returns (GenerateConsistencyTokenResponse) {
+    option (google.api.http) = {
+      post: "/v2/{name=projects/*/instances/*/tables/*}:generateConsistencyToken"
+      body: "*"
+    };
+  }
+
+  // Checks replication consistency based on a consistency token, that is, if
+  // replication has caught up based on the conditions specified in the token
+  // and the check request.
+  rpc CheckConsistency(CheckConsistencyRequest)
+      returns (CheckConsistencyResponse) {
+    option (google.api.http) = {
+      post: "/v2/{name=projects/*/instances/*/tables/*}:checkConsistency"
+      body: "*"
+    };
+  }
+
+  // Creates a new snapshot in the specified cluster from the specified
+  // source table. The cluster and the table must be in the same instance.
+  //
+  // Note: This is a private alpha release of Cloud Bigtable snapshots. This
+  // feature is not currently available to most Cloud Bigtable customers. This
+  // feature might be changed in backward-incompatible ways and is not
+  // recommended for production use. It is not subject to any SLA or deprecation
+  // policy.
+  rpc SnapshotTable(SnapshotTableRequest)
+      returns (google.longrunning.Operation) {
+    option (google.api.http) = {
+      post: "/v2/{name=projects/*/instances/*/tables/*}:snapshot"
+      body: "*"
+    };
+  }
+
+  // Gets metadata information about the specified snapshot.
+  //
+  // Note: This is a private alpha release of Cloud Bigtable snapshots. This
+  // feature is not currently available to most Cloud Bigtable customers. This
+  // feature might be changed in backward-incompatible ways and is not
+  // recommended for production use. It is not subject to any SLA or deprecation
+  // policy.
+  rpc GetSnapshot(GetSnapshotRequest) returns (Snapshot) {
+    option (google.api.http) = {
+      get: "/v2/{name=projects/*/instances/*/clusters/*/snapshots/*}"
+    };
+  }
+
+  // Lists all snapshots associated with the specified cluster.
+  //
+  // Note: This is a private alpha release of Cloud Bigtable snapshots. This
+  // feature is not currently available to most Cloud Bigtable customers. This
+  // feature might be changed in backward-incompatible ways and is not
+  // recommended for production use. It is not subject to any SLA or deprecation
+  // policy.
+  rpc ListSnapshots(ListSnapshotsRequest) returns (ListSnapshotsResponse) {
+    option (google.api.http) = {
+      get: "/v2/{parent=projects/*/instances/*/clusters/*}/snapshots"
+    };
+  }
+
+  // Permanently deletes the specified snapshot.
+  //
+  // Note: This is a private alpha release of Cloud Bigtable snapshots. This
+  // feature is not currently available to most Cloud Bigtable customers. This
+  // feature might be changed in backward-incompatible ways and is not
+  // recommended for production use. It is not subject to any SLA or deprecation
+  // policy.
+  rpc DeleteSnapshot(DeleteSnapshotRequest) returns (google.protobuf.Empty) {
+    option (google.api.http) = {
+      delete: "/v2/{name=projects/*/instances/*/clusters/*/snapshots/*}"
+    };
+  }
+}
+
+// Request message for
+// [google.bigtable.admin.v2.BigtableTableAdmin.CreateTable][google.bigtable.admin.v2.BigtableTableAdmin.CreateTable]
+message CreateTableRequest {
+  // An initial split point for a newly created table.
+  message Split {
+    // Row key to use as an initial tablet boundary.
+    bytes key = 1;
+  }
+
+  // The unique name of the instance in which to create the table.
+  // Values are of the form `projects/<project>/instances/<instance>`.
+  string parent = 1;
+
+  // The name by which the new table should be referred to within the parent
+  // instance, e.g., `foobar` rather than `<parent>/tables/foobar`.
+  string table_id = 2;
+
+  // The Table to create.
+  Table table = 3;
+
+  // The optional list of row keys that will be used to initially split the
+  // table into several tablets (tablets are similar to HBase regions).
+  // Given two split keys, `s1` and `s2`, three tablets will be created,
+  // spanning the key ranges: `[, s1), [s1, s2), [s2, )`.
+  //
+  // Example:
+  //
+  // * Row keys := `["a", "apple", "custom", "customer_1", "customer_2",`
+  //                `"other", "zz"]`
+  // * initial_split_keys := `["apple", "customer_1", "customer_2", "other"]`
+  // * Key assignment:
+  //     - Tablet 1 `[, apple)                => {"a"}.`
+  //     - Tablet 2 `[apple, customer_1)      => {"apple", "custom"}.`
+  //     - Tablet 3 `[customer_1, customer_2) => {"customer_1"}.`
+  //     - Tablet 4 `[customer_2, other)      => {"customer_2"}.`
+  //     - Tablet 5 `[other, )                => {"other", "zz"}.`
+  repeated Split initial_splits = 4;
+}
+
+// Request message for
+// [google.bigtable.admin.v2.BigtableTableAdmin.CreateTableFromSnapshot][google.bigtable.admin.v2.BigtableTableAdmin.CreateTableFromSnapshot]
+//
+// Note: This is a private alpha release of Cloud Bigtable snapshots. This
+// feature is not currently available to most Cloud Bigtable customers. This
+// feature might be changed in backward-incompatible ways and is not recommended
+// for production use. It is not subject to any SLA or deprecation policy.
+message CreateTableFromSnapshotRequest {
+  // The unique name of the instance in which to create the table.
+  // Values are of the form `projects/<project>/instances/<instance>`.
+  string parent = 1;
+
+  // The name by which the new table should be referred to within the parent
+  // instance, e.g., `foobar` rather than `<parent>/tables/foobar`.
+  string table_id = 2;
+
+  // The unique name of the snapshot from which to restore the table. The
+  // snapshot and the table must be in the same instance.
+  // Values are of the form
+  // `projects/<project>/instances/<instance>/clusters/<cluster>/snapshots/<snapshot>`.
+  string source_snapshot = 3;
+}
+
+// Request message for
+// [google.bigtable.admin.v2.BigtableTableAdmin.DropRowRange][google.bigtable.admin.v2.BigtableTableAdmin.DropRowRange]
+message DropRowRangeRequest {
+  // The unique name of the table on which to drop a range of rows.
+  // Values are of the form
+  // `projects/<project>/instances/<instance>/tables/<table>`.
+  string name = 1;
+
+  // Delete all rows or by prefix.
+  oneof target {
+    // Delete all rows that start with this row key prefix. Prefix cannot be
+    // zero length.
+    bytes row_key_prefix = 2;
+
+    // Delete all rows in the table. Setting this to false is a no-op.
+    bool delete_all_data_from_table = 3;
+  }
+}
+
+// Request message for
+// [google.bigtable.admin.v2.BigtableTableAdmin.ListTables][google.bigtable.admin.v2.BigtableTableAdmin.ListTables]
+message ListTablesRequest {
+  // The unique name of the instance for which tables should be listed.
+  // Values are of the form `projects/<project>/instances/<instance>`.
+  string parent = 1;
+
+  // The view to be applied to the returned tables' fields.
+  // Defaults to `NAME_ONLY` if unspecified; no others are currently supported.
+  Table.View view = 2;
+
+  // Maximum number of results per page.
+  // CURRENTLY UNIMPLEMENTED AND IGNORED.
+  int32 page_size = 4;
+
+  // The value of `next_page_token` returned by a previous call.
+  string page_token = 3;
+}
+
+// Response message for
+// [google.bigtable.admin.v2.BigtableTableAdmin.ListTables][google.bigtable.admin.v2.BigtableTableAdmin.ListTables]
+message ListTablesResponse {
+  // The tables present in the requested instance.
+  repeated Table tables = 1;
+
+  // Set if not all tables could be returned in a single response.
+  // Pass this value to `page_token` in another request to get the next
+  // page of results.
+  string next_page_token = 2;
+}
+
+// Request message for
+// [google.bigtable.admin.v2.BigtableTableAdmin.GetTable][google.bigtable.admin.v2.BigtableTableAdmin.GetTable]
+message GetTableRequest {
+  // The unique name of the requested table.
+  // Values are of the form
+  // `projects/<project>/instances/<instance>/tables/<table>`.
+  string name = 1;
+
+  // The view to be applied to the returned table's fields.
+  // Defaults to `SCHEMA_VIEW` if unspecified.
+  Table.View view = 2;
+}
+
+// Request message for
+// [google.bigtable.admin.v2.BigtableTableAdmin.DeleteTable][google.bigtable.admin.v2.BigtableTableAdmin.DeleteTable]
+message DeleteTableRequest {
+  // The unique name of the table to be deleted.
+  // Values are of the form
+  // `projects/<project>/instances/<instance>/tables/<table>`.
+  string name = 1;
+}
+
+// Request message for
+// [google.bigtable.admin.v2.BigtableTableAdmin.ModifyColumnFamilies][google.bigtable.admin.v2.BigtableTableAdmin.ModifyColumnFamilies]
+message ModifyColumnFamiliesRequest {
+  // A create, update, or delete of a particular column family.
+  message Modification {
+    // The ID of the column family to be modified.
+    string id = 1;
+
+    // Column familiy modifications.
+    oneof mod {
+      // Create a new column family with the specified schema, or fail if
+      // one already exists with the given ID.
+      ColumnFamily create = 2;
+
+      // Update an existing column family to the specified schema, or fail
+      // if no column family exists with the given ID.
+      ColumnFamily update = 3;
+
+      // Drop (delete) the column family with the given ID, or fail if no such
+      // family exists.
+      bool drop = 4;
+    }
+  }
+
+  // The unique name of the table whose families should be modified.
+  // Values are of the form
+  // `projects/<project>/instances/<instance>/tables/<table>`.
+  string name = 1;
+
+  // Modifications to be atomically applied to the specified table's families.
+  // Entries are applied in order, meaning that earlier modifications can be
+  // masked by later ones (in the case of repeated updates to the same family,
+  // for example).
+  repeated Modification modifications = 2;
+}
+
+// Request message for
+// [google.bigtable.admin.v2.BigtableTableAdmin.GenerateConsistencyToken][google.bigtable.admin.v2.BigtableTableAdmin.GenerateConsistencyToken]
+message GenerateConsistencyTokenRequest {
+  // The unique name of the Table for which to create a consistency token.
+  // Values are of the form
+  // `projects/<project>/instances/<instance>/tables/<table>`.
+  string name = 1;
+}
+
+// Response message for
+// [google.bigtable.admin.v2.BigtableTableAdmin.GenerateConsistencyToken][google.bigtable.admin.v2.BigtableTableAdmin.GenerateConsistencyToken]
+message GenerateConsistencyTokenResponse {
+  // The generated consistency token.
+  string consistency_token = 1;
+}
+
+// Request message for
+// [google.bigtable.admin.v2.BigtableTableAdmin.CheckConsistency][google.bigtable.admin.v2.BigtableTableAdmin.CheckConsistency]
+message CheckConsistencyRequest {
+  // The unique name of the Table for which to check replication consistency.
+  // Values are of the form
+  // `projects/<project>/instances/<instance>/tables/<table>`.
+  string name = 1;
+
+  // The token created using GenerateConsistencyToken for the Table.
+  string consistency_token = 2;
+}
+
+// Response message for
+// [google.bigtable.admin.v2.BigtableTableAdmin.CheckConsistency][google.bigtable.admin.v2.BigtableTableAdmin.CheckConsistency]
+message CheckConsistencyResponse {
+  // True only if the token is consistent. A token is consistent if replication
+  // has caught up with the restrictions specified in the request.
+  bool consistent = 1;
+}
+
+// Request message for
+// [google.bigtable.admin.v2.BigtableTableAdmin.SnapshotTable][google.bigtable.admin.v2.BigtableTableAdmin.SnapshotTable]
+//
+// Note: This is a private alpha release of Cloud Bigtable snapshots. This
+// feature is not currently available to most Cloud Bigtable customers. This
+// feature might be changed in backward-incompatible ways and is not recommended
+// for production use. It is not subject to any SLA or deprecation policy.
+message SnapshotTableRequest {
+  // The unique name of the table to have the snapshot taken.
+  // Values are of the form
+  // `projects/<project>/instances/<instance>/tables/<table>`.
+  string name = 1;
+
+  // The name of the cluster where the snapshot will be created in.
+  // Values are of the form
+  // `projects/<project>/instances/<instance>/clusters/<cluster>`.
+  string cluster = 2;
+
+  // The ID by which the new snapshot should be referred to within the parent
+  // cluster, e.g., `mysnapshot` of the form: `[_a-zA-Z0-9][-_.a-zA-Z0-9]*`
+  // rather than
+  // `projects/<project>/instances/<instance>/clusters/<cluster>/snapshots/mysnapshot`.
+  string snapshot_id = 3;
+
+  // The amount of time that the new snapshot can stay active after it is
+  // created. Once 'ttl' expires, the snapshot will get deleted. The maximum
+  // amount of time a snapshot can stay active is 7 days. If 'ttl' is not
+  // specified, the default value of 24 hours will be used.
+  google.protobuf.Duration ttl = 4;
+
+  // Description of the snapshot.
+  string description = 5;
+}
+
+// Request message for
+// [google.bigtable.admin.v2.BigtableTableAdmin.GetSnapshot][google.bigtable.admin.v2.BigtableTableAdmin.GetSnapshot]
+//
+// Note: This is a private alpha release of Cloud Bigtable snapshots. This
+// feature is not currently available to most Cloud Bigtable customers. This
+// feature might be changed in backward-incompatible ways and is not recommended
+// for production use. It is not subject to any SLA or deprecation policy.
+message GetSnapshotRequest {
+  // The unique name of the requested snapshot.
+  // Values are of the form
+  // `projects/<project>/instances/<instance>/clusters/<cluster>/snapshots/<snapshot>`.
+  string name = 1;
+}
+
+// Request message for
+// [google.bigtable.admin.v2.BigtableTableAdmin.ListSnapshots][google.bigtable.admin.v2.BigtableTableAdmin.ListSnapshots]
+//
+// Note: This is a private alpha release of Cloud Bigtable snapshots. This
+// feature is not currently available to most Cloud Bigtable customers. This
+// feature might be changed in backward-incompatible ways and is not recommended
+// for production use. It is not subject to any SLA or deprecation policy.
+message ListSnapshotsRequest {
+  // The unique name of the cluster for which snapshots should be listed.
+  // Values are of the form
+  // `projects/<project>/instances/<instance>/clusters/<cluster>`.
+  // Use `<cluster> = '-'` to list snapshots for all clusters in an instance,
+  // e.g., `projects/<project>/instances/<instance>/clusters/-`.
+  string parent = 1;
+
+  // The maximum number of snapshots to return per page.
+  // CURRENTLY UNIMPLEMENTED AND IGNORED.
+  int32 page_size = 2;
+
+  // The value of `next_page_token` returned by a previous call.
+  string page_token = 3;
+}
+
+// Response message for
+// [google.bigtable.admin.v2.BigtableTableAdmin.ListSnapshots][google.bigtable.admin.v2.BigtableTableAdmin.ListSnapshots]
+//
+// Note: This is a private alpha release of Cloud Bigtable snapshots. This
+// feature is not currently available to most Cloud Bigtable customers. This
+// feature might be changed in backward-incompatible ways and is not recommended
+// for production use. It is not subject to any SLA or deprecation policy.
+message ListSnapshotsResponse {
+  // The snapshots present in the requested cluster.
+  repeated Snapshot snapshots = 1;
+
+  // Set if not all snapshots could be returned in a single response.
+  // Pass this value to `page_token` in another request to get the next
+  // page of results.
+  string next_page_token = 2;
+}
+
+// Request message for
+// [google.bigtable.admin.v2.BigtableTableAdmin.DeleteSnapshot][google.bigtable.admin.v2.BigtableTableAdmin.DeleteSnapshot]
+//
+// Note: This is a private alpha release of Cloud Bigtable snapshots. This
+// feature is not currently available to most Cloud Bigtable customers. This
+// feature might be changed in backward-incompatible ways and is not recommended
+// for production use. It is not subject to any SLA or deprecation policy.
+message DeleteSnapshotRequest {
+  // The unique name of the snapshot to be deleted.
+  // Values are of the form
+  // `projects/<project>/instances/<instance>/clusters/<cluster>/snapshots/<snapshot>`.
+  string name = 1;
+}
+
+// The metadata for the Operation returned by SnapshotTable.
+//
+// Note: This is a private alpha release of Cloud Bigtable snapshots. This
+// feature is not currently available to most Cloud Bigtable customers. This
+// feature might be changed in backward-incompatible ways and is not recommended
+// for production use. It is not subject to any SLA or deprecation policy.
+message SnapshotTableMetadata {
+  // The request that prompted the initiation of this SnapshotTable operation.
+  SnapshotTableRequest original_request = 1;
+
+  // The time at which the original request was received.
+  google.protobuf.Timestamp request_time = 2;
+
+  // The time at which the operation failed or was completed successfully.
+  google.protobuf.Timestamp finish_time = 3;
+}
+
+// The metadata for the Operation returned by CreateTableFromSnapshot.
+//
+// Note: This is a private alpha release of Cloud Bigtable snapshots. This
+// feature is not currently available to most Cloud Bigtable customers. This
+// feature might be changed in backward-incompatible ways and is not recommended
+// for production use. It is not subject to any SLA or deprecation policy.
+message CreateTableFromSnapshotMetadata {
+  // The request that prompted the initiation of this CreateTableFromSnapshot
+  // operation.
+  CreateTableFromSnapshotRequest original_request = 1;
+
+  // The time at which the original request was received.
+  google.protobuf.Timestamp request_time = 2;
+
+  // The time at which the operation failed or was completed successfully.
+  google.protobuf.Timestamp finish_time = 3;
+}