# Copyright 2015 Google Inc. # # 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. require 'date' require 'google/apis/core/base_service' require 'google/apis/core/json_representation' require 'google/apis/core/hashable' require 'google/apis/errors' module Google module Apis module BigtableadminV1 # A backup of a Cloud Bigtable table. class Backup include Google::Apis::Core::Hashable # Output only. `end_time` is the time that the backup was finished. The row data # in the backup will be no newer than this timestamp. # Corresponds to the JSON property `endTime` # @return [String] attr_accessor :end_time # Required. The expiration time of the backup, with microseconds granularity # that must be at least 6 hours and at most 30 days from the time the request is # received. Once the `expire_time` has passed, Cloud Bigtable will delete the # backup and free the resources used by the backup. # Corresponds to the JSON property `expireTime` # @return [String] attr_accessor :expire_time # A globally unique identifier for the backup which cannot be changed. Values # are of the form `projects/`project`/instances/`instance`/clusters/`cluster`/ # backups/_a-zA-Z0-9*` The final segment of the name must be between 1 and 50 # characters in length. The backup is stored in the cluster identified by the # prefix of the backup name of the form `projects/`project`/instances/`instance`/ # clusters/`cluster``. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Output only. Size of the backup in bytes. # Corresponds to the JSON property `sizeBytes` # @return [Fixnum] attr_accessor :size_bytes # Required. Immutable. Name of the table from which this backup was created. # This needs to be in the same instance as the backup. Values are of the form ` # projects/`project`/instances/`instance`/tables/`source_table``. # Corresponds to the JSON property `sourceTable` # @return [String] attr_accessor :source_table # Output only. `start_time` is the time that the backup was started (i.e. # approximately the time the CreateBackup request is received). The row data in # this backup will be no older than this timestamp. # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time # Output only. The current state of the backup. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @end_time = args[:end_time] if args.key?(:end_time) @expire_time = args[:expire_time] if args.key?(:expire_time) @name = args[:name] if args.key?(:name) @size_bytes = args[:size_bytes] if args.key?(:size_bytes) @source_table = args[:source_table] if args.key?(:source_table) @start_time = args[:start_time] if args.key?(:start_time) @state = args[:state] if args.key?(:state) end end # Information about a backup. class BackupInfo include Google::Apis::Core::Hashable # Output only. Name of the backup. # Corresponds to the JSON property `backup` # @return [String] attr_accessor :backup # Output only. This time that the backup was finished. Row data in the backup # will be no newer than this timestamp. # Corresponds to the JSON property `endTime` # @return [String] attr_accessor :end_time # Output only. Name of the table the backup was created from. # Corresponds to the JSON property `sourceTable` # @return [String] attr_accessor :source_table # Output only. The time that the backup was started. Row data in the backup will # be no older than this timestamp. # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @backup = args[:backup] if args.key?(:backup) @end_time = args[:end_time] if args.key?(:end_time) @source_table = args[:source_table] if args.key?(:source_table) @start_time = args[:start_time] if args.key?(:start_time) end end # A resizable group of nodes in a particular cloud location, capable of serving # all Tables in the parent Instance. class Cluster include Google::Apis::Core::Hashable # Immutable. The type of storage used by this cluster to serve its parent # instance's tables, unless explicitly overridden. # Corresponds to the JSON property `defaultStorageType` # @return [String] attr_accessor :default_storage_type # Immutable. The location where this cluster's nodes and storage reside. For # best performance, clients should be located as close as possible to this # cluster. Currently only zones are supported, so values should be of the form ` # projects/`project`/locations/`zone``. # Corresponds to the JSON property `location` # @return [String] attr_accessor :location # The unique name of the cluster. Values are of the form `projects/`project`/ # instances/`instance`/clusters/a-z*`. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Required. The number of nodes allocated to this cluster. More nodes enable # higher throughput and more consistent performance. # Corresponds to the JSON property `serveNodes` # @return [Fixnum] attr_accessor :serve_nodes # Output only. The current state of the cluster. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @default_storage_type = args[:default_storage_type] if args.key?(:default_storage_type) @location = args[:location] if args.key?(:location) @name = args[:name] if args.key?(:name) @serve_nodes = args[:serve_nodes] if args.key?(:serve_nodes) @state = args[:state] if args.key?(:state) end end # Metadata type for the operation returned by CreateBackup. class CreateBackupMetadata include Google::Apis::Core::Hashable # If set, the time at which this operation finished or was cancelled. # Corresponds to the JSON property `endTime` # @return [String] attr_accessor :end_time # The name of the backup being created. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The name of the table the backup is created from. # Corresponds to the JSON property `sourceTable` # @return [String] attr_accessor :source_table # The time at which this operation started. # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @end_time = args[:end_time] if args.key?(:end_time) @name = args[:name] if args.key?(:name) @source_table = args[:source_table] if args.key?(:source_table) @start_time = args[:start_time] if args.key?(:start_time) end end # The metadata for the Operation returned by CreateCluster. class CreateClusterMetadata include Google::Apis::Core::Hashable # The time at which the operation failed or was completed successfully. # Corresponds to the JSON property `finishTime` # @return [String] attr_accessor :finish_time # Request message for BigtableInstanceAdmin.CreateCluster. # Corresponds to the JSON property `originalRequest` # @return [Google::Apis::BigtableadminV1::CreateClusterRequest] attr_accessor :original_request # The time at which the original request was received. # Corresponds to the JSON property `requestTime` # @return [String] attr_accessor :request_time # Keys: the full `name` of each table that existed in the instance when # CreateCluster was first called, i.e. `projects//instances//tables/`. Any table # added to the instance by a later API call will be created in the new cluster # by that API call, not this one. Values: information on how much of a table's # data has been copied to the newly-created cluster so far. # Corresponds to the JSON property `tables` # @return [Hash] attr_accessor :tables def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @finish_time = args[:finish_time] if args.key?(:finish_time) @original_request = args[:original_request] if args.key?(:original_request) @request_time = args[:request_time] if args.key?(:request_time) @tables = args[:tables] if args.key?(:tables) end end # Request message for BigtableInstanceAdmin.CreateCluster. class CreateClusterRequest include Google::Apis::Core::Hashable # A resizable group of nodes in a particular cloud location, capable of serving # all Tables in the parent Instance. # Corresponds to the JSON property `cluster` # @return [Google::Apis::BigtableadminV1::Cluster] attr_accessor :cluster # Required. The ID to be used when referring to the new cluster within its # instance, e.g., just `mycluster` rather than `projects/myproject/instances/ # myinstance/clusters/mycluster`. # Corresponds to the JSON property `clusterId` # @return [String] attr_accessor :cluster_id # Required. The unique name of the instance in which to create the new cluster. # Values are of the form `projects/`project`/instances/`instance``. # Corresponds to the JSON property `parent` # @return [String] attr_accessor :parent def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @cluster = args[:cluster] if args.key?(:cluster) @cluster_id = args[:cluster_id] if args.key?(:cluster_id) @parent = args[:parent] if args.key?(:parent) end end # The metadata for the Operation returned by CreateInstance. class CreateInstanceMetadata include Google::Apis::Core::Hashable # The time at which the operation failed or was completed successfully. # Corresponds to the JSON property `finishTime` # @return [String] attr_accessor :finish_time # Request message for BigtableInstanceAdmin.CreateInstance. # Corresponds to the JSON property `originalRequest` # @return [Google::Apis::BigtableadminV1::CreateInstanceRequest] attr_accessor :original_request # The time at which the original request was received. # Corresponds to the JSON property `requestTime` # @return [String] attr_accessor :request_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @finish_time = args[:finish_time] if args.key?(:finish_time) @original_request = args[:original_request] if args.key?(:original_request) @request_time = args[:request_time] if args.key?(:request_time) end end # Request message for BigtableInstanceAdmin.CreateInstance. class CreateInstanceRequest include Google::Apis::Core::Hashable # Required. The clusters to be created within the instance, mapped by desired # cluster ID, e.g., just `mycluster` rather than `projects/myproject/instances/ # myinstance/clusters/mycluster`. Fields marked `OutputOnly` must be left blank. # Currently, at most four clusters can be specified. # Corresponds to the JSON property `clusters` # @return [Hash] attr_accessor :clusters # A collection of Bigtable Tables and the resources that serve them. All tables # in an instance are served from all Clusters in the instance. # Corresponds to the JSON property `instance` # @return [Google::Apis::BigtableadminV1::Instance] attr_accessor :instance # Required. The ID to be used when referring to the new instance within its # project, e.g., just `myinstance` rather than `projects/myproject/instances/ # myinstance`. # Corresponds to the JSON property `instanceId` # @return [String] attr_accessor :instance_id # Required. The unique name of the project in which to create the new instance. # Values are of the form `projects/`project``. # Corresponds to the JSON property `parent` # @return [String] attr_accessor :parent def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @clusters = args[:clusters] if args.key?(:clusters) @instance = args[:instance] if args.key?(:instance) @instance_id = args[:instance_id] if args.key?(:instance_id) @parent = args[:parent] if args.key?(:parent) end end # Added to the error payload. class FailureTrace include Google::Apis::Core::Hashable # # Corresponds to the JSON property `frames` # @return [Array] attr_accessor :frames def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @frames = args[:frames] if args.key?(:frames) end end # class Frame include Google::Apis::Core::Hashable # # Corresponds to the JSON property `targetName` # @return [String] attr_accessor :target_name # # Corresponds to the JSON property `workflowGuid` # @return [String] attr_accessor :workflow_guid # # Corresponds to the JSON property `zoneId` # @return [String] attr_accessor :zone_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @target_name = args[:target_name] if args.key?(:target_name) @workflow_guid = args[:workflow_guid] if args.key?(:workflow_guid) @zone_id = args[:zone_id] if args.key?(:zone_id) end end # A collection of Bigtable Tables and the resources that serve them. All tables # in an instance are served from all Clusters in the instance. class Instance include Google::Apis::Core::Hashable # Required. The descriptive name for this instance as it appears in UIs. Can be # changed at any time, but should be kept globally unique to avoid confusion. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Required. Labels are a flexible and lightweight mechanism for organizing cloud # resources into groups that reflect a customer's organizational needs and # deployment strategies. They can be used to filter resources and aggregate # metrics. * Label keys must be between 1 and 63 characters long and must # conform to the regular expression: `\p`Ll`\p`Lo``0,62``. * Label values must # be between 0 and 63 characters long and must conform to the regular expression: # `[\p`Ll`\p`Lo`\p`N`_-]`0,63``. * No more than 64 labels can be associated # with a given resource. * Keys and values must both be under 128 bytes. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # The unique name of the instance. Values are of the form `projects/`project`/ # instances/a-z+[a-z0-9]`. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Output only. The current state of the instance. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state # Required. The type of the instance. Defaults to `PRODUCTION`. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @display_name = args[:display_name] if args.key?(:display_name) @labels = args[:labels] if args.key?(:labels) @name = args[:name] if args.key?(:name) @state = args[:state] if args.key?(:state) @type = args[:type] if args.key?(:type) end end # Encapsulates progress related information for a Cloud Bigtable long running # operation. class OperationProgress include Google::Apis::Core::Hashable # If set, the time at which this operation failed or was completed successfully. # Corresponds to the JSON property `endTime` # @return [String] attr_accessor :end_time # Percent completion of the operation. Values are between 0 and 100 inclusive. # Corresponds to the JSON property `progressPercent` # @return [Fixnum] attr_accessor :progress_percent # Time the request was received. # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @end_time = args[:end_time] if args.key?(:end_time) @progress_percent = args[:progress_percent] if args.key?(:progress_percent) @start_time = args[:start_time] if args.key?(:start_time) end 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. class OptimizeRestoredTableMetadata include Google::Apis::Core::Hashable # Name of the restored table being optimized. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Encapsulates progress related information for a Cloud Bigtable long running # operation. # Corresponds to the JSON property `progress` # @return [Google::Apis::BigtableadminV1::OperationProgress] attr_accessor :progress def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @name = args[:name] if args.key?(:name) @progress = args[:progress] if args.key?(:progress) end end # Request message for BigtableInstanceAdmin.PartialUpdateInstance. class PartialUpdateInstanceRequest include Google::Apis::Core::Hashable # A collection of Bigtable Tables and the resources that serve them. All tables # in an instance are served from all Clusters in the instance. # Corresponds to the JSON property `instance` # @return [Google::Apis::BigtableadminV1::Instance] attr_accessor :instance # Required. The subset of Instance fields which should be replaced. Must be # explicitly set. # Corresponds to the JSON property `updateMask` # @return [String] attr_accessor :update_mask def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @instance = args[:instance] if args.key?(:instance) @update_mask = args[:update_mask] if args.key?(:update_mask) end end # Metadata type for the long-running operation returned by RestoreTable. class RestoreTableMetadata include Google::Apis::Core::Hashable # Information about a backup. # Corresponds to the JSON property `backupInfo` # @return [Google::Apis::BigtableadminV1::BackupInfo] attr_accessor :backup_info # Name of the table being created and restored to. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # 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. 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. # Corresponds to the JSON property `optimizeTableOperationName` # @return [String] attr_accessor :optimize_table_operation_name # Encapsulates progress related information for a Cloud Bigtable long running # operation. # Corresponds to the JSON property `progress` # @return [Google::Apis::BigtableadminV1::OperationProgress] attr_accessor :progress # The type of the restore source. # Corresponds to the JSON property `sourceType` # @return [String] attr_accessor :source_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @backup_info = args[:backup_info] if args.key?(:backup_info) @name = args[:name] if args.key?(:name) @optimize_table_operation_name = args[:optimize_table_operation_name] if args.key?(:optimize_table_operation_name) @progress = args[:progress] if args.key?(:progress) @source_type = args[:source_type] if args.key?(:source_type) end end # Progress info for copying a table's data to the new cluster. class TableProgress include Google::Apis::Core::Hashable # Estimate of the number of bytes copied so far for this table. This will # eventually reach 'estimated_size_bytes' unless the table copy is CANCELLED. # Corresponds to the JSON property `estimatedCopiedBytes` # @return [Fixnum] attr_accessor :estimated_copied_bytes # Estimate of the size of the table to be copied. # Corresponds to the JSON property `estimatedSizeBytes` # @return [Fixnum] attr_accessor :estimated_size_bytes # # Corresponds to the JSON property `state` # @return [String] attr_accessor :state def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @estimated_copied_bytes = args[:estimated_copied_bytes] if args.key?(:estimated_copied_bytes) @estimated_size_bytes = args[:estimated_size_bytes] if args.key?(:estimated_size_bytes) @state = args[:state] if args.key?(:state) end end # The metadata for the Operation returned by UpdateAppProfile. class UpdateAppProfileMetadata include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # The metadata for the Operation returned by UpdateCluster. class UpdateClusterMetadata include Google::Apis::Core::Hashable # The time at which the operation failed or was completed successfully. # Corresponds to the JSON property `finishTime` # @return [String] attr_accessor :finish_time # A resizable group of nodes in a particular cloud location, capable of serving # all Tables in the parent Instance. # Corresponds to the JSON property `originalRequest` # @return [Google::Apis::BigtableadminV1::Cluster] attr_accessor :original_request # The time at which the original request was received. # Corresponds to the JSON property `requestTime` # @return [String] attr_accessor :request_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @finish_time = args[:finish_time] if args.key?(:finish_time) @original_request = args[:original_request] if args.key?(:original_request) @request_time = args[:request_time] if args.key?(:request_time) end end # The metadata for the Operation returned by UpdateInstance. class UpdateInstanceMetadata include Google::Apis::Core::Hashable # The time at which the operation failed or was completed successfully. # Corresponds to the JSON property `finishTime` # @return [String] attr_accessor :finish_time # Request message for BigtableInstanceAdmin.PartialUpdateInstance. # Corresponds to the JSON property `originalRequest` # @return [Google::Apis::BigtableadminV1::PartialUpdateInstanceRequest] attr_accessor :original_request # The time at which the original request was received. # Corresponds to the JSON property `requestTime` # @return [String] attr_accessor :request_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @finish_time = args[:finish_time] if args.key?(:finish_time) @original_request = args[:original_request] if args.key?(:original_request) @request_time = args[:request_time] if args.key?(:request_time) end end end end end