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.
3371 3372 3373 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3371 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
3268 3269 3270 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3268 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
3274 3275 3276 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3274 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
3279 3280 3281 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3279 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
3293 3294 3295 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3293 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
3299 3300 3301 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3299 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
3319 3320 3321 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3319 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
3325 3326 3327 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3325 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
3332 3333 3334 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3332 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
3338 3339 3340 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3338 def optional_replicas @optional_replicas end |
#quorum_type ⇒ String
Output only. The QuorumType of the instance configuration.
Corresponds to the JSON property quorumType
3343 3344 3345 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3343 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
3349 3350 3351 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3349 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
3358 3359 3360 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3358 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
3364 3365 3366 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3364 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
3369 3370 3371 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3369 def storage_limit_per_processing_unit @storage_limit_per_processing_unit end |
Instance Method Details
#update!(**args) ⇒ Object
Update properties of this object
3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3376 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 |