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.
3538 3539 3540 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3538 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
3435 3436 3437 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3435 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
3441 3442 3443 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3441 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
3446 3447 3448 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3446 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
3460 3461 3462 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3460 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
3466 3467 3468 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3466 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
3486 3487 3488 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3486 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
3492 3493 3494 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3492 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
3499 3500 3501 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3499 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
3505 3506 3507 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3505 def optional_replicas @optional_replicas end |
#quorum_type ⇒ String
Output only. The QuorumType of the instance configuration.
Corresponds to the JSON property quorumType
3510 3511 3512 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3510 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
3516 3517 3518 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3516 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
3525 3526 3527 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3525 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
3531 3532 3533 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3531 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
3536 3537 3538 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3536 def storage_limit_per_processing_unit @storage_limit_per_processing_unit end |
Instance Method Details
#update!(**args) ⇒ Object
Update properties of this object
3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3543 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 |