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.



3446
3447
3448
# File 'lib/google/apis/spanner_v1/classes.rb', line 3446

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)


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

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)


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

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)


3354
3355
3356
# File 'lib/google/apis/spanner_v1/classes.rb', line 3354

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)


3368
3369
3370
# File 'lib/google/apis/spanner_v1/classes.rb', line 3368

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)


3374
3375
3376
# File 'lib/google/apis/spanner_v1/classes.rb', line 3374

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


3394
3395
3396
# File 'lib/google/apis/spanner_v1/classes.rb', line 3394

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


3400
3401
3402
# File 'lib/google/apis/spanner_v1/classes.rb', line 3400

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)


3407
3408
3409
# File 'lib/google/apis/spanner_v1/classes.rb', line 3407

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



3413
3414
3415
# File 'lib/google/apis/spanner_v1/classes.rb', line 3413

def optional_replicas
  @optional_replicas
end

#quorum_typeString

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

Returns:

  • (String)


3418
3419
3420
# File 'lib/google/apis/spanner_v1/classes.rb', line 3418

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)


3424
3425
3426
# File 'lib/google/apis/spanner_v1/classes.rb', line 3424

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



3433
3434
3435
# File 'lib/google/apis/spanner_v1/classes.rb', line 3433

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)


3439
3440
3441
# File 'lib/google/apis/spanner_v1/classes.rb', line 3439

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)


3444
3445
3446
# File 'lib/google/apis/spanner_v1/classes.rb', line 3444

def storage_limit_per_processing_unit
  @storage_limit_per_processing_unit
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
# File 'lib/google/apis/spanner_v1/classes.rb', line 3451

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