Class: Google::Apis::SpannerV1::InstanceConfig
- Inherits:
-
Object
- Object
- Google::Apis::SpannerV1::InstanceConfig
- Includes:
- Core::Hashable, Core::JsonObjectSupport
- Defined in:
- lib/google/apis/spanner_v1/classes.rb,
lib/google/apis/spanner_v1/representations.rb,
lib/google/apis/spanner_v1/representations.rb
Overview
A possible configuration for a Cloud Spanner instance. Configurations define the geographic placement of nodes and their replication.
Instance Attribute Summary collapse
-
#base_config ⇒ String
Base configuration name, e.g.
-
#config_type ⇒ String
Output only.
-
#display_name ⇒ String
The name of this instance configuration as it appears in UIs.
-
#etag ⇒ String
etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a instance configuration from overwriting each other.
-
#free_instance_availability ⇒ String
Output only.
-
#labels ⇒ Hash<String,String>
Cloud Labels are a flexible and lightweight mechanism for organizing cloud resources into groups that reflect a customer's organizational needs and deployment strategies.
-
#leader_options ⇒ Array<String>
Allowed values of the "default_leader" schema option for databases in instances that use this instance configuration.
-
#name ⇒ String
A unique identifier for the instance configuration.
-
#optional_replicas ⇒ Array<Google::Apis::SpannerV1::ReplicaInfo>
Output only.
-
#quorum_type ⇒ String
Output only.
-
#reconciling ⇒ Boolean
(also: #reconciling?)
Output only.
-
#replicas ⇒ Array<Google::Apis::SpannerV1::ReplicaInfo>
The geographic placement of nodes in this instance configuration and their replication properties.
-
#state ⇒ String
Output only.
-
#storage_limit_per_processing_unit ⇒ Fixnum
Output only.
Instance Method Summary collapse
-
#initialize(**args) ⇒ InstanceConfig
constructor
A new instance of InstanceConfig.
-
#update!(**args) ⇒ Object
Update properties of this object.
Constructor Details
#initialize(**args) ⇒ InstanceConfig
Returns a new instance of InstanceConfig.
3531 3532 3533 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3531 def initialize(**args) update!(**args) end |
Instance Attribute Details
#base_config ⇒ String
Base configuration name, e.g. projects//instanceConfigs/nam3, based on which
this configuration is created. Only set for user-managed configurations.
base_config must refer to a configuration of type GOOGLE_MANAGED in the
same project as this configuration.
Corresponds to the JSON property baseConfig
3428 3429 3430 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3428 def base_config @base_config end |
#config_type ⇒ String
Output only. Whether this instance configuration is a Google-managed or user-
managed configuration.
Corresponds to the JSON property configType
3434 3435 3436 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3434 def config_type @config_type end |
#display_name ⇒ String
The name of this instance configuration as it appears in UIs.
Corresponds to the JSON property displayName
3439 3440 3441 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3439 def display_name @display_name end |
#etag ⇒ String
etag is used for optimistic concurrency control as a way to help prevent
simultaneous updates of a instance configuration from overwriting each other.
It is strongly suggested that systems make use of the etag in the read-modify-
write cycle to perform instance configuration updates in order to avoid race
conditions: An etag is returned in the response which contains instance
configurations, and systems are expected to put that etag in the request to
update instance configuration to ensure that their change is applied to the
same version of the instance configuration. If no etag is provided in the call
to update the instance configuration, then the existing instance configuration
is overwritten blindly.
Corresponds to the JSON property etag
3453 3454 3455 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3453 def etag @etag end |
#free_instance_availability ⇒ String
Output only. Describes whether free instances are available to be created in
this instance configuration.
Corresponds to the JSON property freeInstanceAvailability
3459 3460 3461 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3459 def free_instance_availability @free_instance_availability end |
#labels ⇒ Hash<String,String>
Cloud Labels are a flexible and lightweight mechanism for organizing cloud
resources into groups that reflect a customer's organizational needs and
deployment strategies. Cloud Labels can be used to filter collections of
resources. They can be used to control how resource metrics are aggregated.
And they can be used as arguments to policy management rules (e.g. route,
firewall, load balancing, etc.). * Label keys must be between 1 and 63
characters long and must conform to the following regular expression: a-z0,
62. * Label values must be between 0 and 63 characters long and must conform
to the regular expression `[a-z0-9_-]`0,63. * No more than 64 labels can be
associated with a given resource. See https://goo.gl/xmQnxf for more
information on and examples of labels. If you plan to use labels in your own
code, please note that additional characters may be allowed in the future.
Therefore, you are advised to use an internal label representation, such as
JSON, which doesn't rely upon specific characters being disallowed. For
example, representing labels as the string: name + "" + value would prove
problematic if we were to allow "" in a future release.
Corresponds to the JSON property labels
3479 3480 3481 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3479 def labels @labels end |
#leader_options ⇒ Array<String>
Allowed values of the "default_leader" schema option for databases in
instances that use this instance configuration.
Corresponds to the JSON property leaderOptions
3485 3486 3487 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3485 def @leader_options end |
#name ⇒ String
A unique identifier for the instance configuration. Values are of the form
projects//instanceConfigs/a-z*. User instance configuration must start with
custom-.
Corresponds to the JSON property name
3492 3493 3494 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3492 def name @name end |
#optional_replicas ⇒ Array<Google::Apis::SpannerV1::ReplicaInfo>
Output only. The available optional replicas to choose from for user-managed
configurations. Populated for Google-managed configurations.
Corresponds to the JSON property optionalReplicas
3498 3499 3500 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3498 def optional_replicas @optional_replicas end |
#quorum_type ⇒ String
Output only. The QuorumType of the instance configuration.
Corresponds to the JSON property quorumType
3503 3504 3505 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3503 def quorum_type @quorum_type end |
#reconciling ⇒ Boolean Also known as: reconciling?
Output only. If true, the instance configuration is being created or updated.
If false, there are no ongoing operations for the instance configuration.
Corresponds to the JSON property reconciling
3509 3510 3511 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3509 def reconciling @reconciling end |
#replicas ⇒ Array<Google::Apis::SpannerV1::ReplicaInfo>
The geographic placement of nodes in this instance configuration and their
replication properties. To create user-managed configurations, input replicas
must include all replicas in replicas of the base_config and include one
or more replicas in the optional_replicas of the base_config.
Corresponds to the JSON property replicas
3518 3519 3520 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3518 def replicas @replicas end |
#state ⇒ String
Output only. The current instance configuration state. Applicable only for
USER_MANAGED configurations.
Corresponds to the JSON property state
3524 3525 3526 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3524 def state @state end |
#storage_limit_per_processing_unit ⇒ Fixnum
Output only. The storage limit in bytes per processing unit.
Corresponds to the JSON property storageLimitPerProcessingUnit
3529 3530 3531 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3529 def storage_limit_per_processing_unit @storage_limit_per_processing_unit end |
Instance Method Details
#update!(**args) ⇒ Object
Update properties of this object
3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3536 def update!(**args) @base_config = args[:base_config] if args.key?(:base_config) @config_type = args[:config_type] if args.key?(:config_type) @display_name = args[:display_name] if args.key?(:display_name) @etag = args[:etag] if args.key?(:etag) @free_instance_availability = args[:free_instance_availability] if args.key?(:free_instance_availability) @labels = args[:labels] if args.key?(:labels) @leader_options = args[:leader_options] if args.key?(:leader_options) @name = args[:name] if args.key?(:name) @optional_replicas = args[:optional_replicas] if args.key?(:optional_replicas) @quorum_type = args[:quorum_type] if args.key?(:quorum_type) @reconciling = args[:reconciling] if args.key?(:reconciling) @replicas = args[:replicas] if args.key?(:replicas) @state = args[:state] if args.key?(:state) @storage_limit_per_processing_unit = args[:storage_limit_per_processing_unit] if args.key?(:storage_limit_per_processing_unit) end |