# 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 # # https://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. module Google module Bigtable module Admin module V2 # Request message for # {Google::Bigtable::Admin::V2::BigtableTableAdmin::CreateTable} # @!attribute [rw] parent # @return [String] # Required. The unique name of the instance in which to create the table. # Values are of the form `projects/{project}/instances/{instance}`. # @!attribute [rw] table_id # @return [String] # 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. # @!attribute [rw] table # @return [Google::Bigtable::Admin::V2::Table] # Required. The Table to create. # @!attribute [rw] initial_splits # @return [Array] # 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"}.` class CreateTableRequest # An initial split point for a newly created table. # @!attribute [rw] key # @return [String] # Row key to use as an initial tablet boundary. class Split; end end # Request message for # {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. # @!attribute [rw] parent # @return [String] # Required. The unique name of the instance in which to create the table. # Values are of the form `projects/{project}/instances/{instance}`. # @!attribute [rw] table_id # @return [String] # Required. The name by which the new table should be referred to within the # parent instance, e.g., `foobar` rather than `{parent}/tables/foobar`. # @!attribute [rw] source_snapshot # @return [String] # 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}`. class CreateTableFromSnapshotRequest; end # Request message for # {Google::Bigtable::Admin::V2::BigtableTableAdmin::DropRowRange} # @!attribute [rw] name # @return [String] # 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}`. # @!attribute [rw] row_key_prefix # @return [String] # Delete all rows that start with this row key prefix. Prefix cannot be # zero length. # @!attribute [rw] delete_all_data_from_table # @return [true, false] # Delete all rows in the table. Setting this to false is a no-op. class DropRowRangeRequest; end # Request message for # {Google::Bigtable::Admin::V2::BigtableTableAdmin::ListTables} # @!attribute [rw] parent # @return [String] # Required. The unique name of the instance for which tables should be # listed. Values are of the form `projects/{project}/instances/{instance}`. # @!attribute [rw] view # @return [Google::Bigtable::Admin::V2::Table::View] # The view to be applied to the returned tables' fields. # Only NAME_ONLY view (default) and REPLICATION_VIEW are supported. # @!attribute [rw] page_size # @return [Integer] # 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. # @!attribute [rw] page_token # @return [String] # The value of `next_page_token` returned by a previous call. class ListTablesRequest; end # Response message for # {Google::Bigtable::Admin::V2::BigtableTableAdmin::ListTables} # @!attribute [rw] tables # @return [Array] # The tables present in the requested instance. # @!attribute [rw] next_page_token # @return [String] # 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. class ListTablesResponse; end # Request message for # {Google::Bigtable::Admin::V2::BigtableTableAdmin::GetTable} # @!attribute [rw] name # @return [String] # Required. The unique name of the requested table. # Values are of the form # `projects/{project}/instances/{instance}/tables/{table}`. # @!attribute [rw] view # @return [Google::Bigtable::Admin::V2::Table::View] # The view to be applied to the returned table's fields. # Defaults to `SCHEMA_VIEW` if unspecified. class GetTableRequest; end # Request message for # {Google::Bigtable::Admin::V2::BigtableTableAdmin::DeleteTable} # @!attribute [rw] name # @return [String] # Required. The unique name of the table to be deleted. # Values are of the form # `projects/{project}/instances/{instance}/tables/{table}`. class DeleteTableRequest; end # Request message for # {Google::Bigtable::Admin::V2::BigtableTableAdmin::ModifyColumnFamilies} # @!attribute [rw] name # @return [String] # Required. The unique name of the table whose families should be modified. # Values are of the form # `projects/{project}/instances/{instance}/tables/{table}`. # @!attribute [rw] modifications # @return [Array] # 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). class ModifyColumnFamiliesRequest # A create, update, or delete of a particular column family. # @!attribute [rw] id # @return [String] # The ID of the column family to be modified. # @!attribute [rw] create # @return [Google::Bigtable::Admin::V2::ColumnFamily] # Create a new column family with the specified schema, or fail if # one already exists with the given ID. # @!attribute [rw] update # @return [Google::Bigtable::Admin::V2::ColumnFamily] # Update an existing column family to the specified schema, or fail # if no column family exists with the given ID. # @!attribute [rw] drop # @return [true, false] # Drop (delete) the column family with the given ID, or fail if no such # family exists. class Modification; end end # Request message for # {Google::Bigtable::Admin::V2::BigtableTableAdmin::GenerateConsistencyToken} # @!attribute [rw] name # @return [String] # 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}`. class GenerateConsistencyTokenRequest; end # Response message for # {Google::Bigtable::Admin::V2::BigtableTableAdmin::GenerateConsistencyToken} # @!attribute [rw] consistency_token # @return [String] # The generated consistency token. class GenerateConsistencyTokenResponse; end # Request message for # {Google::Bigtable::Admin::V2::BigtableTableAdmin::CheckConsistency} # @!attribute [rw] name # @return [String] # Required. The unique name of the Table for which to check replication # consistency. Values are of the form # `projects/{project}/instances/{instance}/tables/{table}`. # @!attribute [rw] consistency_token # @return [String] # Required. The token created using GenerateConsistencyToken for the Table. class CheckConsistencyRequest; end # Response message for # {Google::Bigtable::Admin::V2::BigtableTableAdmin::CheckConsistency} # @!attribute [rw] consistent # @return [true, false] # True only if the token is consistent. A token is consistent if replication # has caught up with the restrictions specified in the request. class CheckConsistencyResponse; end # Request message for # {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. # @!attribute [rw] name # @return [String] # Required. The unique name of the table to have the snapshot taken. # Values are of the form # `projects/{project}/instances/{instance}/tables/{table}`. # @!attribute [rw] cluster # @return [String] # Required. The name of the cluster where the snapshot will be created in. # Values are of the form # `projects/{project}/instances/{instance}/clusters/{cluster}`. # @!attribute [rw] snapshot_id # @return [String] # 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`. # @!attribute [rw] ttl # @return [Google::Protobuf::Duration] # 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. # @!attribute [rw] description # @return [String] # Description of the snapshot. class SnapshotTableRequest; end # Request message for # {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. # @!attribute [rw] name # @return [String] # Required. The unique name of the requested snapshot. # Values are of the form # `projects/{project}/instances/{instance}/clusters/{cluster}/snapshots/{snapshot}`. class GetSnapshotRequest; end # Request message for # {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. # @!attribute [rw] parent # @return [String] # 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/-`. # @!attribute [rw] page_size # @return [Integer] # The maximum number of snapshots to return per page. # CURRENTLY UNIMPLEMENTED AND IGNORED. # @!attribute [rw] page_token # @return [String] # The value of `next_page_token` returned by a previous call. class ListSnapshotsRequest; end # Response message for # {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. # @!attribute [rw] snapshots # @return [Array] # The snapshots present in the requested cluster. # @!attribute [rw] next_page_token # @return [String] # 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. class ListSnapshotsResponse; end # Request message for # {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. # @!attribute [rw] name # @return [String] # Required. The unique name of the snapshot to be deleted. # Values are of the form # `projects/{project}/instances/{instance}/clusters/{cluster}/snapshots/{snapshot}`. class DeleteSnapshotRequest; end # 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. # @!attribute [rw] original_request # @return [Google::Bigtable::Admin::V2::SnapshotTableRequest] # The request that prompted the initiation of this SnapshotTable operation. # @!attribute [rw] request_time # @return [Google::Protobuf::Timestamp] # The time at which the original request was received. # @!attribute [rw] finish_time # @return [Google::Protobuf::Timestamp] # The time at which the operation failed or was completed successfully. class SnapshotTableMetadata; end # 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. # @!attribute [rw] original_request # @return [Google::Bigtable::Admin::V2::CreateTableFromSnapshotRequest] # The request that prompted the initiation of this CreateTableFromSnapshot # operation. # @!attribute [rw] request_time # @return [Google::Protobuf::Timestamp] # The time at which the original request was received. # @!attribute [rw] finish_time # @return [Google::Protobuf::Timestamp] # The time at which the operation failed or was completed successfully. class CreateTableFromSnapshotMetadata; end # The request for # {Google::Bigtable::Admin::V2::BigtableTableAdmin::CreateBackup CreateBackup}. # @!attribute [rw] parent # @return [String] # 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}`. # @!attribute [rw] backup_id # @return [String] # 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]*. # @!attribute [rw] backup # @return [Google::Bigtable::Admin::V2::Backup] # Required. The backup to create. class CreateBackupRequest; end # Metadata type for the operation returned by # {Google::Bigtable::Admin::V2::BigtableTableAdmin::CreateBackup CreateBackup}. # @!attribute [rw] name # @return [String] # The name of the backup being created. # @!attribute [rw] source_table # @return [String] # The name of the table the backup is created from. # @!attribute [rw] start_time # @return [Google::Protobuf::Timestamp] # The time at which this operation started. # @!attribute [rw] end_time # @return [Google::Protobuf::Timestamp] # If set, the time at which this operation finished or was cancelled. class CreateBackupMetadata; end # The request for # {Google::Bigtable::Admin::V2::BigtableTableAdmin::GetBackup GetBackup}. # @!attribute [rw] name # @return [String] # Required. Name of the backup. # Values are of the form # `projects/{project}/instances/{instance}/clusters/{cluster}/backups/{backup}`. class GetBackupRequest; end # The request for # {Google::Bigtable::Admin::V2::BigtableTableAdmin::UpdateBackup UpdateBackup}. # @!attribute [rw] backup # @return [Google::Bigtable::Admin::V2::Backup] # 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`. # @!attribute [rw] update_mask # @return [Google::Protobuf::FieldMask] # 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. class UpdateBackupRequest; end # The request for # {Google::Bigtable::Admin::V2::BigtableTableAdmin::DeleteBackup DeleteBackup}. # @!attribute [rw] name # @return [String] # Required. Name of the backup to delete. # Values are of the form # `projects/{project}/instances/{instance}/clusters/{cluster}/backups/{backup}`. class DeleteBackupRequest; end # The request for # {Google::Bigtable::Admin::V2::BigtableTableAdmin::ListBackups ListBackups}. # @!attribute [rw] parent # @return [String] # 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/-`. # @!attribute [rw] filter # @return [String] # 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 # @!attribute [rw] order_by # @return [String] # An expression for specifying the sort order of the results of the request. # The string value should specify one or more fields in # {Google::Bigtable::Admin::V2::Backup 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. # @!attribute [rw] page_size # @return [Integer] # Number of backups to be returned in the response. If 0 or # less, defaults to the server's maximum allowed page size. # @!attribute [rw] page_token # @return [String] # If non-empty, `page_token` should contain a # {Google::Bigtable::Admin::V2::ListBackupsResponse#next_page_token next_page_token} # from a previous # {Google::Bigtable::Admin::V2::ListBackupsResponse ListBackupsResponse} to the # same `parent` and with the same `filter`. class ListBackupsRequest; end # The response for # {Google::Bigtable::Admin::V2::BigtableTableAdmin::ListBackups ListBackups}. # @!attribute [rw] backups # @return [Array] # The list of matching backups. # @!attribute [rw] next_page_token # @return [String] # `next_page_token` can be sent in a subsequent # {Google::Bigtable::Admin::V2::BigtableTableAdmin::ListBackups ListBackups} call # to fetch more of the matching backups. class ListBackupsResponse; end # The request for # {Google::Bigtable::Admin::V2::BigtableTableAdmin::RestoreTable RestoreTable}. # @!attribute [rw] parent # @return [String] # 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//instances/`. # @!attribute [rw] table_id # @return [String] # 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//instances//tables/`. # @!attribute [rw] backup # @return [String] # Name of the backup from which to restore. Values are of the form # `projects//instances//clusters//backups/`. class RestoreTableRequest; end # Metadata type for the long-running operation returned by # {Google::Bigtable::Admin::V2::BigtableTableAdmin::RestoreTable RestoreTable}. # @!attribute [rw] name # @return [String] # Name of the table being created and restored to. # @!attribute [rw] source_type # @return [Google::Bigtable::Admin::V2::RestoreSourceType] # The type of the restore source. # @!attribute [rw] backup_info # @return [Google::Bigtable::Admin::V2::BackupInfo] # @!attribute [rw] optimize_table_operation_name # @return [String] # 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 # {Google::Protobuf::Empty 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. # @!attribute [rw] progress # @return [Google::Bigtable::Admin::V2::OperationProgress] # The progress of the # {Google::Bigtable::Admin::V2::BigtableTableAdmin::RestoreTable RestoreTable} # operation. class RestoreTableMetadata; end # 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. # @!attribute [rw] name # @return [String] # Name of the restored table being optimized. # @!attribute [rw] progress # @return [Google::Bigtable::Admin::V2::OperationProgress] # The progress of the post-restore optimizations. class OptimizeRestoredTableMetadata; end end end end end