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.



3371
3372
3373
# File 'lib/google/apis/spanner_v1/classes.rb', line 3371

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)


3268
3269
3270
# File 'lib/google/apis/spanner_v1/classes.rb', line 3268

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)


3274
3275
3276
# File 'lib/google/apis/spanner_v1/classes.rb', line 3274

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)


3279
3280
3281
# File 'lib/google/apis/spanner_v1/classes.rb', line 3279

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)


3293
3294
3295
# File 'lib/google/apis/spanner_v1/classes.rb', line 3293

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)


3299
3300
3301
# File 'lib/google/apis/spanner_v1/classes.rb', line 3299

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>)


3319
3320
3321
# File 'lib/google/apis/spanner_v1/classes.rb', line 3319

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>)


3325
3326
3327
# File 'lib/google/apis/spanner_v1/classes.rb', line 3325

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)


3332
3333
3334
# File 'lib/google/apis/spanner_v1/classes.rb', line 3332

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



3338
3339
3340
# File 'lib/google/apis/spanner_v1/classes.rb', line 3338

def optional_replicas
  @optional_replicas
end

#quorum_typeString

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

Returns:

  • (String)


3343
3344
3345
# File 'lib/google/apis/spanner_v1/classes.rb', line 3343

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)


3349
3350
3351
# File 'lib/google/apis/spanner_v1/classes.rb', line 3349

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



3358
3359
3360
# File 'lib/google/apis/spanner_v1/classes.rb', line 3358

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)


3364
3365
3366
# File 'lib/google/apis/spanner_v1/classes.rb', line 3364

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)


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