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.



3531
3532
3533
# File 'lib/google/apis/spanner_v1/classes.rb', line 3531

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)


3428
3429
3430
# File 'lib/google/apis/spanner_v1/classes.rb', line 3428

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)


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

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)


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

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)


3453
3454
3455
# File 'lib/google/apis/spanner_v1/classes.rb', line 3453

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)


3459
3460
3461
# File 'lib/google/apis/spanner_v1/classes.rb', line 3459

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


3479
3480
3481
# File 'lib/google/apis/spanner_v1/classes.rb', line 3479

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


3485
3486
3487
# File 'lib/google/apis/spanner_v1/classes.rb', line 3485

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)


3492
3493
3494
# File 'lib/google/apis/spanner_v1/classes.rb', line 3492

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



3498
3499
3500
# File 'lib/google/apis/spanner_v1/classes.rb', line 3498

def optional_replicas
  @optional_replicas
end

#quorum_typeString

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

Returns:

  • (String)


3503
3504
3505
# File 'lib/google/apis/spanner_v1/classes.rb', line 3503

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)


3509
3510
3511
# File 'lib/google/apis/spanner_v1/classes.rb', line 3509

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



3518
3519
3520
# File 'lib/google/apis/spanner_v1/classes.rb', line 3518

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)


3524
3525
3526
# File 'lib/google/apis/spanner_v1/classes.rb', line 3524

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)


3529
3530
3531
# File 'lib/google/apis/spanner_v1/classes.rb', line 3529

def storage_limit_per_processing_unit
  @storage_limit_per_processing_unit
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
# File 'lib/google/apis/spanner_v1/classes.rb', line 3536

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