Class: Google::Apis::SpannerV1::InstanceConfig

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

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_configString

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

Returns:

  • (String)


3161
3162
3163
# File 'lib/google/apis/spanner_v1/classes.rb', line 3161

def base_config
  @base_config
end

#config_typeString

Output only. Whether this instance configuration is a Google-managed or user- managed configuration. Corresponds to the JSON property configType

Returns:

  • (String)


3167
3168
3169
# File 'lib/google/apis/spanner_v1/classes.rb', line 3167

def config_type
  @config_type
end

#display_nameString

The name of this instance configuration as it appears in UIs. Corresponds to the JSON property displayName

Returns:

  • (String)


3172
3173
3174
# File 'lib/google/apis/spanner_v1/classes.rb', line 3172

def display_name
  @display_name
end

#etagString

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

Returns:

  • (String)


3186
3187
3188
# File 'lib/google/apis/spanner_v1/classes.rb', line 3186

def etag
  @etag
end

#free_instance_availabilityString

Output only. Describes whether free instances are available to be created in this instance configuration. Corresponds to the JSON property freeInstanceAvailability

Returns:

  • (String)


3192
3193
3194
# File 'lib/google/apis/spanner_v1/classes.rb', line 3192

def free_instance_availability
  @free_instance_availability
end

#labelsHash<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

Returns:

  • (Hash<String,String>)


3212
3213
3214
# File 'lib/google/apis/spanner_v1/classes.rb', line 3212

def labels
  @labels
end

#leader_optionsArray<String>

Allowed values of the "default_leader" schema option for databases in instances that use this instance configuration. Corresponds to the JSON property leaderOptions

Returns:

  • (Array<String>)


3218
3219
3220
# File 'lib/google/apis/spanner_v1/classes.rb', line 3218

def leader_options
  @leader_options
end

#nameString

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

Returns:

  • (String)


3225
3226
3227
# File 'lib/google/apis/spanner_v1/classes.rb', line 3225

def name
  @name
end

#optional_replicasArray<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_typeString

Output only. The QuorumType of the instance configuration. Corresponds to the JSON property quorumType

Returns:

  • (String)


3236
3237
3238
# File 'lib/google/apis/spanner_v1/classes.rb', line 3236

def quorum_type
  @quorum_type
end

#reconcilingBoolean 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

Returns:

  • (Boolean)


3242
3243
3244
# File 'lib/google/apis/spanner_v1/classes.rb', line 3242

def reconciling
  @reconciling
end

#replicasArray<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

#stateString

Output only. The current instance configuration state. Applicable only for USER_MANAGED configurations. Corresponds to the JSON property state

Returns:

  • (String)


3257
3258
3259
# File 'lib/google/apis/spanner_v1/classes.rb', line 3257

def state
  @state
end

#storage_limit_per_processing_unitFixnum

Output only. The storage limit in bytes per processing unit. Corresponds to the JSON property storageLimitPerProcessingUnit

Returns:

  • (Fixnum)


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