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.



3550
3551
3552
# File 'lib/google/apis/spanner_v1/classes.rb', line 3550

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)


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

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)


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

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)


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

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)


3472
3473
3474
# File 'lib/google/apis/spanner_v1/classes.rb', line 3472

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)


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

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


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

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


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

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)


3511
3512
3513
# File 'lib/google/apis/spanner_v1/classes.rb', line 3511

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



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

def optional_replicas
  @optional_replicas
end

#quorum_typeString

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

Returns:

  • (String)


3522
3523
3524
# File 'lib/google/apis/spanner_v1/classes.rb', line 3522

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)


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

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



3537
3538
3539
# File 'lib/google/apis/spanner_v1/classes.rb', line 3537

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)


3543
3544
3545
# File 'lib/google/apis/spanner_v1/classes.rb', line 3543

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)


3548
3549
3550
# File 'lib/google/apis/spanner_v1/classes.rb', line 3548

def storage_limit_per_processing_unit
  @storage_limit_per_processing_unit
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
# File 'lib/google/apis/spanner_v1/classes.rb', line 3555

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