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.
3264 3265 3266 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3264 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
3161 3162 3163 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3161 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
3167 3168 3169 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3167 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
3172 3173 3174 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3172 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
3186 3187 3188 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3186 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
3192 3193 3194 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3192 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
3212 3213 3214 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3212 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
3218 3219 3220 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3218 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
3225 3226 3227 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3225 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
3231 3232 3233 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3231 def optional_replicas @optional_replicas end |
#quorum_type ⇒ String
Output only. The QuorumType of the instance configuration.
Corresponds to the JSON property quorumType
3236 3237 3238 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3236 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
3242 3243 3244 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3242 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
3251 3252 3253 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3251 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
3257 3258 3259 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3257 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
3262 3263 3264 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3262 def storage_limit_per_processing_unit @storage_limit_per_processing_unit end |
Instance Method Details
#update!(**args) ⇒ Object
Update properties of this object
3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 |
# File 'lib/google/apis/spanner_v1/classes.rb', line 3269 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 |