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.
3550 3551 3552 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3550 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
3447 3448 3449 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3447 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
3453 3454 3455 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3453 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
3458 3459 3460 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3458 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
3472 3473 3474 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3472 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
3478 3479 3480 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3478 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
3498 3499 3500 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3498 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
3504 3505 3506 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3504 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
3511 3512 3513 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3511 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
3517 3518 3519 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3517 def optional_replicas @optional_replicas end |
#quorum_type ⇒ String
Output only. The QuorumType of the instance configuration.
Corresponds to the JSON property quorumType
3522 3523 3524 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3522 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
3528 3529 3530 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3528 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
3537 3538 3539 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3537 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
3543 3544 3545 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3543 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
3548 3549 3550 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3548 def storage_limit_per_processing_unit @storage_limit_per_processing_unit end |
Instance Method Details
#update!(**args) ⇒ Object
Update properties of this object
3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3555 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 |