1004 lines
41 KiB
Protocol Buffer
1004 lines
41 KiB
Protocol Buffer
// Copyright 2020 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/api/client.proto";
|
|
import "google/api/field_behavior.proto";
|
|
import "google/api/resource.proto";
|
|
import "google/bigtable/admin/v2/common.proto";
|
|
import "google/bigtable/admin/v2/table.proto";
|
|
import "google/iam/v1/iam_policy.proto";
|
|
import "google/iam/v1/policy.proto";
|
|
import "google/longrunning/operations.proto";
|
|
import "google/protobuf/duration.proto";
|
|
import "google/protobuf/empty.proto";
|
|
import "google/protobuf/field_mask.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";
|
|
option ruby_package = "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 {
|
|
option (google.api.default_host) = "bigtableadmin.googleapis.com";
|
|
option (google.api.oauth_scopes) =
|
|
"https://www.googleapis.com/auth/bigtable.admin,"
|
|
"https://www.googleapis.com/auth/bigtable.admin.table,"
|
|
"https://www.googleapis.com/auth/cloud-bigtable.admin,"
|
|
"https://www.googleapis.com/auth/cloud-bigtable.admin.table,"
|
|
"https://www.googleapis.com/auth/cloud-platform,"
|
|
"https://www.googleapis.com/auth/cloud-platform.read-only";
|
|
|
|
// 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: "*"
|
|
};
|
|
option (google.api.method_signature) = "parent,table_id,table";
|
|
}
|
|
|
|
// 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: "*"
|
|
};
|
|
option (google.api.method_signature) = "parent,table_id,source_snapshot";
|
|
option (google.longrunning.operation_info) = {
|
|
response_type: "Table"
|
|
metadata_type: "CreateTableFromSnapshotMetadata"
|
|
};
|
|
}
|
|
|
|
// Lists all tables served from a specified instance.
|
|
rpc ListTables(ListTablesRequest) returns (ListTablesResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v2/{parent=projects/*/instances/*}/tables"
|
|
};
|
|
option (google.api.method_signature) = "parent";
|
|
}
|
|
|
|
// Gets metadata information about the specified table.
|
|
rpc GetTable(GetTableRequest) returns (Table) {
|
|
option (google.api.http) = {
|
|
get: "/v2/{name=projects/*/instances/*/tables/*}"
|
|
};
|
|
option (google.api.method_signature) = "name";
|
|
}
|
|
|
|
// 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/*}"
|
|
};
|
|
option (google.api.method_signature) = "name";
|
|
}
|
|
|
|
// 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: "*"
|
|
};
|
|
option (google.api.method_signature) = "name,modifications";
|
|
}
|
|
|
|
// 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: "*"
|
|
};
|
|
option (google.api.method_signature) = "name";
|
|
}
|
|
|
|
// 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: "*"
|
|
};
|
|
option (google.api.method_signature) = "name,consistency_token";
|
|
}
|
|
|
|
// 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: "*"
|
|
};
|
|
option (google.api.method_signature) = "name,cluster,snapshot_id,description";
|
|
option (google.longrunning.operation_info) = {
|
|
response_type: "Snapshot"
|
|
metadata_type: "SnapshotTableMetadata"
|
|
};
|
|
}
|
|
|
|
// 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/*}"
|
|
};
|
|
option (google.api.method_signature) = "name";
|
|
}
|
|
|
|
// 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"
|
|
};
|
|
option (google.api.method_signature) = "parent";
|
|
}
|
|
|
|
// 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/*}"
|
|
};
|
|
option (google.api.method_signature) = "name";
|
|
}
|
|
|
|
// Starts creating a new Cloud Bigtable Backup. The returned backup
|
|
// [long-running operation][google.longrunning.Operation] can be used to
|
|
// track creation of the backup. The
|
|
// [metadata][google.longrunning.Operation.metadata] field type is
|
|
// [CreateBackupMetadata][google.bigtable.admin.v2.CreateBackupMetadata]. The
|
|
// [response][google.longrunning.Operation.response] field type is
|
|
// [Backup][google.bigtable.admin.v2.Backup], if successful. Cancelling the returned operation will stop the
|
|
// creation and delete the backup.
|
|
rpc CreateBackup(CreateBackupRequest) returns (google.longrunning.Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v2/{parent=projects/*/instances/*/clusters/*}/backups"
|
|
body: "backup"
|
|
};
|
|
option (google.api.method_signature) = "parent,backup_id,backup";
|
|
option (google.longrunning.operation_info) = {
|
|
response_type: "Backup"
|
|
metadata_type: "CreateBackupMetadata"
|
|
};
|
|
}
|
|
|
|
// Gets metadata on a pending or completed Cloud Bigtable Backup.
|
|
rpc GetBackup(GetBackupRequest) returns (Backup) {
|
|
option (google.api.http) = {
|
|
get: "/v2/{name=projects/*/instances/*/clusters/*/backups/*}"
|
|
};
|
|
option (google.api.method_signature) = "name";
|
|
}
|
|
|
|
// Updates a pending or completed Cloud Bigtable Backup.
|
|
rpc UpdateBackup(UpdateBackupRequest) returns (Backup) {
|
|
option (google.api.http) = {
|
|
patch: "/v2/{backup.name=projects/*/instances/*/clusters/*/backups/*}"
|
|
body: "backup"
|
|
};
|
|
option (google.api.method_signature) = "backup,update_mask";
|
|
}
|
|
|
|
// Deletes a pending or completed Cloud Bigtable backup.
|
|
rpc DeleteBackup(DeleteBackupRequest) returns (google.protobuf.Empty) {
|
|
option (google.api.http) = {
|
|
delete: "/v2/{name=projects/*/instances/*/clusters/*/backups/*}"
|
|
};
|
|
option (google.api.method_signature) = "name";
|
|
}
|
|
|
|
// Lists Cloud Bigtable backups. Returns both completed and pending
|
|
// backups.
|
|
rpc ListBackups(ListBackupsRequest) returns (ListBackupsResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v2/{parent=projects/*/instances/*/clusters/*}/backups"
|
|
};
|
|
option (google.api.method_signature) = "parent";
|
|
}
|
|
|
|
// Create a new table by restoring from a completed backup. The new table
|
|
// must be in the same instance as the instance containing the backup. The
|
|
// returned table [long-running operation][google.longrunning.Operation] can
|
|
// be used to track the progress of the operation, and to cancel it. The
|
|
// [metadata][google.longrunning.Operation.metadata] field type is
|
|
// [RestoreTableMetadata][google.bigtable.admin.RestoreTableMetadata]. The
|
|
// [response][google.longrunning.Operation.response] type is
|
|
// [Table][google.bigtable.admin.v2.Table], if successful.
|
|
rpc RestoreTable(RestoreTableRequest) returns (google.longrunning.Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v2/{parent=projects/*/instances/*}/tables:restore"
|
|
body: "*"
|
|
};
|
|
option (google.longrunning.operation_info) = {
|
|
response_type: "Table"
|
|
metadata_type: "RestoreTableMetadata"
|
|
};
|
|
}
|
|
|
|
// Gets the access control policy for a Table or Backup resource.
|
|
// Returns an empty policy if the resource exists but does not have a policy
|
|
// set.
|
|
rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) returns (google.iam.v1.Policy) {
|
|
option (google.api.http) = {
|
|
post: "/v2/{resource=projects/*/instances/*/tables/*}:getIamPolicy"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v2/{resource=projects/*/instances/*/clusters/*/backups/*}:getIamPolicy"
|
|
body: "*"
|
|
}
|
|
};
|
|
option (google.api.method_signature) = "resource";
|
|
}
|
|
|
|
// Sets the access control policy on a Table or Backup resource.
|
|
// Replaces any existing policy.
|
|
rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) returns (google.iam.v1.Policy) {
|
|
option (google.api.http) = {
|
|
post: "/v2/{resource=projects/*/instances/*/tables/*}:setIamPolicy"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v2/{resource=projects/*/instances/*/clusters/*/backups/*}:setIamPolicy"
|
|
body: "*"
|
|
}
|
|
};
|
|
option (google.api.method_signature) = "resource,policy";
|
|
}
|
|
|
|
// Returns permissions that the caller has on the specified Table or Backup resource.
|
|
rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) returns (google.iam.v1.TestIamPermissionsResponse) {
|
|
option (google.api.http) = {
|
|
post: "/v2/{resource=projects/*/instances/*/tables/*}:testIamPermissions"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v2/{resource=projects/*/instances/*/clusters/*/backups/*}:testIamPermissions"
|
|
body: "*"
|
|
}
|
|
};
|
|
option (google.api.method_signature) = "resource,permissions";
|
|
}
|
|
}
|
|
|
|
// The request for
|
|
// [RestoreTable][google.bigtable.admin.v2.BigtableTableAdmin.RestoreTable].
|
|
message RestoreTableRequest {
|
|
// Required. The name of the instance in which to create the restored
|
|
// table. This instance must be the parent of the source backup. Values are
|
|
// of the form `projects/<project>/instances/<instance>`.
|
|
string parent = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "bigtable.googleapis.com/Instance"
|
|
}
|
|
];
|
|
|
|
// Required. The id of the table to create and restore to. This
|
|
// table must not already exist. The `table_id` appended to
|
|
// `parent` forms the full table name of the form
|
|
// `projects/<project>/instances/<instance>/tables/<table_id>`.
|
|
string table_id = 2 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Required. The source from which to restore.
|
|
oneof source {
|
|
// Name of the backup from which to restore. Values are of the form
|
|
// `projects/<project>/instances/<instance>/clusters/<cluster>/backups/<backup>`.
|
|
string backup = 3 [(google.api.resource_reference) = {
|
|
type: "bigtable.googleapis.com/Backup"
|
|
}];
|
|
}
|
|
}
|
|
|
|
// Metadata type for the long-running operation returned by
|
|
// [RestoreTable][google.bigtable.admin.v2.BigtableTableAdmin.RestoreTable].
|
|
message RestoreTableMetadata {
|
|
// Name of the table being created and restored to.
|
|
string name = 1;
|
|
|
|
// The type of the restore source.
|
|
RestoreSourceType source_type = 2;
|
|
|
|
// Information about the source used to restore the table, as specified by
|
|
// `source` in [RestoreTableRequest][google.bigtable.admin.v2.RestoreTableRequest].
|
|
oneof source_info {
|
|
BackupInfo backup_info = 3;
|
|
}
|
|
|
|
// If exists, the name of the long-running operation that will be used to
|
|
// track the post-restore optimization process to optimize the performance of
|
|
// the restored table. The metadata type of the long-running operation is
|
|
// [OptimizeRestoreTableMetadata][]. The response type is
|
|
// [Empty][google.protobuf.Empty]. This long-running operation may be
|
|
// automatically created by the system if applicable after the
|
|
// RestoreTable long-running operation completes successfully. This operation
|
|
// may not be created if the table is already optimized or the restore was
|
|
// not successful.
|
|
string optimize_table_operation_name = 4;
|
|
|
|
// The progress of the [RestoreTable][google.bigtable.admin.v2.BigtableTableAdmin.RestoreTable]
|
|
// operation.
|
|
OperationProgress progress = 5;
|
|
}
|
|
|
|
// Metadata type for the long-running operation used to track the progress
|
|
// of optimizations performed on a newly restored table. This long-running
|
|
// operation is automatically created by the system after the successful
|
|
// completion of a table restore, and cannot be cancelled.
|
|
message OptimizeRestoredTableMetadata {
|
|
// Name of the restored table being optimized.
|
|
string name = 1;
|
|
|
|
// The progress of the post-restore optimizations.
|
|
OperationProgress progress = 2;
|
|
}
|
|
|
|
// 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;
|
|
}
|
|
|
|
// Required. The unique name of the instance in which to create the table.
|
|
// Values are of the form `projects/{project}/instances/{instance}`.
|
|
string parent = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "bigtable.googleapis.com/Instance"
|
|
}
|
|
];
|
|
|
|
// Required. The name by which the new table should be referred to within the parent
|
|
// instance, e.g., `foobar` rather than `{parent}/tables/foobar`.
|
|
// Maximum 50 characters.
|
|
string table_id = 2 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Required. The Table to create.
|
|
Table table = 3 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// 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 {
|
|
// Required. The unique name of the instance in which to create the table.
|
|
// Values are of the form `projects/{project}/instances/{instance}`.
|
|
string parent = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "bigtable.googleapis.com/Instance"
|
|
}
|
|
];
|
|
|
|
// Required. 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 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Required. 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 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "bigtable.googleapis.com/Snapshot"
|
|
}
|
|
];
|
|
}
|
|
|
|
// Request message for
|
|
// [google.bigtable.admin.v2.BigtableTableAdmin.DropRowRange][google.bigtable.admin.v2.BigtableTableAdmin.DropRowRange]
|
|
message DropRowRangeRequest {
|
|
// Required. 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 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "bigtable.googleapis.com/Table"
|
|
}
|
|
];
|
|
|
|
// 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 {
|
|
// Required. The unique name of the instance for which tables should be listed.
|
|
// Values are of the form `projects/{project}/instances/{instance}`.
|
|
string parent = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "bigtable.googleapis.com/Instance"
|
|
}
|
|
];
|
|
|
|
// The view to be applied to the returned tables' fields.
|
|
// Only NAME_ONLY view (default) and REPLICATION_VIEW are supported.
|
|
Table.View view = 2;
|
|
|
|
// Maximum number of results per page.
|
|
//
|
|
// A page_size of zero lets the server choose the number of items to return.
|
|
// A page_size which is strictly positive will return at most that many items.
|
|
// A negative page_size will cause an error.
|
|
//
|
|
// Following the first request, subsequent paginated calls are not required
|
|
// to pass a page_size. If a page_size is set in subsequent calls, it must
|
|
// match the page_size given in the first request.
|
|
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 {
|
|
// Required. The unique name of the requested table.
|
|
// Values are of the form
|
|
// `projects/{project}/instances/{instance}/tables/{table}`.
|
|
string name = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "bigtable.googleapis.com/Table"
|
|
}
|
|
];
|
|
|
|
// 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 {
|
|
// Required. The unique name of the table to be deleted.
|
|
// Values are of the form
|
|
// `projects/{project}/instances/{instance}/tables/{table}`.
|
|
string name = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "bigtable.googleapis.com/Table"
|
|
}
|
|
];
|
|
}
|
|
|
|
// 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;
|
|
}
|
|
}
|
|
|
|
// Required. 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 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "bigtable.googleapis.com/Table"
|
|
}
|
|
];
|
|
|
|
// Required. 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 [(google.api.field_behavior) = REQUIRED];
|
|
}
|
|
|
|
// Request message for
|
|
// [google.bigtable.admin.v2.BigtableTableAdmin.GenerateConsistencyToken][google.bigtable.admin.v2.BigtableTableAdmin.GenerateConsistencyToken]
|
|
message GenerateConsistencyTokenRequest {
|
|
// Required. 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 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "bigtable.googleapis.com/Table"
|
|
}
|
|
];
|
|
}
|
|
|
|
// 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 {
|
|
// Required. 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 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "bigtable.googleapis.com/Table"
|
|
}
|
|
];
|
|
|
|
// Required. The token created using GenerateConsistencyToken for the Table.
|
|
string consistency_token = 2 [(google.api.field_behavior) = REQUIRED];
|
|
}
|
|
|
|
// 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 {
|
|
// Required. 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 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "bigtable.googleapis.com/Table"
|
|
}
|
|
];
|
|
|
|
// Required. 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 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "bigtable.googleapis.com/Cluster"
|
|
}
|
|
];
|
|
|
|
// Required. 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 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// 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 {
|
|
// Required. The unique name of the requested snapshot.
|
|
// Values are of the form
|
|
// `projects/{project}/instances/{instance}/clusters/{cluster}/snapshots/{snapshot}`.
|
|
string name = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "bigtable.googleapis.com/Snapshot"
|
|
}
|
|
];
|
|
}
|
|
|
|
// 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 {
|
|
// Required. 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 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "bigtable.googleapis.com/Cluster"
|
|
}
|
|
];
|
|
|
|
// 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 {
|
|
// Required. 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 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "bigtable.googleapis.com/Snapshot"
|
|
}
|
|
];
|
|
}
|
|
|
|
// 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;
|
|
}
|
|
|
|
// The request for [CreateBackup][google.bigtable.admin.v2.BigtableTableAdmin.CreateBackup].
|
|
message CreateBackupRequest {
|
|
// Required. This must be one of the clusters in the instance in which this
|
|
// table is located. The backup will be stored in this cluster. Values are
|
|
// of the form `projects/{project}/instances/{instance}/clusters/{cluster}`.
|
|
string parent = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "bigtable.googleapis.com/Cluster"
|
|
}
|
|
];
|
|
|
|
// Required. The id of the backup to be created. The `backup_id` along with
|
|
// the parent `parent` are combined as {parent}/backups/{backup_id} to create
|
|
// the full backup name, of the form:
|
|
// `projects/{project}/instances/{instance}/clusters/{cluster}/backups/{backup_id}`.
|
|
// This string must be between 1 and 50 characters in length and match the
|
|
// regex [_a-zA-Z0-9][-_.a-zA-Z0-9]*.
|
|
string backup_id = 2 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Required. The backup to create.
|
|
Backup backup = 3 [(google.api.field_behavior) = REQUIRED];
|
|
}
|
|
|
|
// Metadata type for the operation returned by
|
|
// [CreateBackup][google.bigtable.admin.v2.BigtableTableAdmin.CreateBackup].
|
|
message CreateBackupMetadata {
|
|
// The name of the backup being created.
|
|
string name = 1;
|
|
|
|
// The name of the table the backup is created from.
|
|
string source_table = 2;
|
|
|
|
// The time at which this operation started.
|
|
google.protobuf.Timestamp start_time = 3;
|
|
|
|
// If set, the time at which this operation finished or was cancelled.
|
|
google.protobuf.Timestamp end_time = 4;
|
|
}
|
|
|
|
// The request for [UpdateBackup][google.bigtable.admin.v2.BigtableTableAdmin.UpdateBackup].
|
|
message UpdateBackupRequest {
|
|
// Required. The backup to update. `backup.name`, and the fields to be updated
|
|
// as specified by `update_mask` are required. Other fields are ignored.
|
|
// Update is only supported for the following fields:
|
|
// * `backup.expire_time`.
|
|
Backup backup = 1 [(google.api.field_behavior) = REQUIRED];
|
|
|
|
// Required. A mask specifying which fields (e.g. `expire_time`) in the
|
|
// Backup resource should be updated. This mask is relative to the Backup
|
|
// resource, not to the request message. The field mask must always be
|
|
// specified; this prevents any future fields from being erased accidentally
|
|
// by clients that do not know about them.
|
|
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
|
|
}
|
|
|
|
// The request for [GetBackup][google.bigtable.admin.v2.BigtableTableAdmin.GetBackup].
|
|
message GetBackupRequest {
|
|
// Required. Name of the backup.
|
|
// Values are of the form
|
|
// `projects/{project}/instances/{instance}/clusters/{cluster}/backups/{backup}`.
|
|
string name = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "bigtable.googleapis.com/Backup"
|
|
}
|
|
];
|
|
}
|
|
|
|
// The request for [DeleteBackup][google.bigtable.admin.v2.BigtableTableAdmin.DeleteBackup].
|
|
message DeleteBackupRequest {
|
|
// Required. Name of the backup to delete.
|
|
// Values are of the form
|
|
// `projects/{project}/instances/{instance}/clusters/{cluster}/backups/{backup}`.
|
|
string name = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "bigtable.googleapis.com/Backup"
|
|
}
|
|
];
|
|
}
|
|
|
|
// The request for [ListBackups][google.bigtable.admin.v2.BigtableTableAdmin.ListBackups].
|
|
message ListBackupsRequest {
|
|
// Required. The cluster to list backups from. Values are of the
|
|
// form `projects/{project}/instances/{instance}/clusters/{cluster}`.
|
|
// Use `{cluster} = '-'` to list backups for all clusters in an instance,
|
|
// e.g., `projects/{project}/instances/{instance}/clusters/-`.
|
|
string parent = 1 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "bigtable.googleapis.com/Cluster"
|
|
}
|
|
];
|
|
|
|
// A filter expression that filters backups listed in the response.
|
|
// The expression must specify the field name, a comparison operator,
|
|
// and the value that you want to use for filtering. The value must be a
|
|
// string, a number, or a boolean. The comparison operator must be
|
|
// <, >, <=, >=, !=, =, or :. Colon ':' represents a HAS operator which is
|
|
// roughly synonymous with equality. Filter rules are case insensitive.
|
|
//
|
|
// The fields eligible for filtering are:
|
|
// * `name`
|
|
// * `source_table`
|
|
// * `state`
|
|
// * `start_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
|
|
// * `end_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
|
|
// * `expire_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
|
|
// * `size_bytes`
|
|
//
|
|
// To filter on multiple expressions, provide each separate expression within
|
|
// parentheses. By default, each expression is an AND expression. However,
|
|
// you can include AND, OR, and NOT expressions explicitly.
|
|
//
|
|
// Some examples of using filters are:
|
|
//
|
|
// * `name:"exact"` --> The backup's name is the string "exact".
|
|
// * `name:howl` --> The backup's name contains the string "howl".
|
|
// * `source_table:prod`
|
|
// --> The source_table's name contains the string "prod".
|
|
// * `state:CREATING` --> The backup is pending creation.
|
|
// * `state:READY` --> The backup is fully created and ready for use.
|
|
// * `(name:howl) AND (start_time < \"2018-03-28T14:50:00Z\")`
|
|
// --> The backup name contains the string "howl" and start_time
|
|
// of the backup is before 2018-03-28T14:50:00Z.
|
|
// * `size_bytes > 10000000000` --> The backup's size is greater than 10GB
|
|
string filter = 2;
|
|
|
|
// An expression for specifying the sort order of the results of the request.
|
|
// The string value should specify one or more fields in [Backup][google.bigtable.admin.v2.Backup]. The full
|
|
// syntax is described at https://aip.dev/132#ordering.
|
|
//
|
|
// Fields supported are:
|
|
// * name
|
|
// * source_table
|
|
// * expire_time
|
|
// * start_time
|
|
// * end_time
|
|
// * size_bytes
|
|
// * state
|
|
//
|
|
// For example, "start_time". The default sorting order is ascending.
|
|
// To specify descending order for the field, a suffix " desc" should
|
|
// be appended to the field name. For example, "start_time desc".
|
|
// Redundant space characters in the syntax are insigificant.
|
|
//
|
|
// If order_by is empty, results will be sorted by `start_time` in descending
|
|
// order starting from the most recently created backup.
|
|
string order_by = 3;
|
|
|
|
// Number of backups to be returned in the response. If 0 or
|
|
// less, defaults to the server's maximum allowed page size.
|
|
int32 page_size = 4;
|
|
|
|
// If non-empty, `page_token` should contain a
|
|
// [next_page_token][google.bigtable.admin.v2.ListBackupsResponse.next_page_token] from a
|
|
// previous [ListBackupsResponse][google.bigtable.admin.v2.ListBackupsResponse] to the same `parent` and with the same
|
|
// `filter`.
|
|
string page_token = 5;
|
|
}
|
|
|
|
// The response for [ListBackups][google.bigtable.admin.v2.BigtableTableAdmin.ListBackups].
|
|
message ListBackupsResponse {
|
|
// The list of matching backups.
|
|
repeated Backup backups = 1;
|
|
|
|
// `next_page_token` can be sent in a subsequent
|
|
// [ListBackups][google.bigtable.admin.v2.BigtableTableAdmin.ListBackups] call to fetch more
|
|
// of the matching backups.
|
|
string next_page_token = 2;
|
|
}
|