REST Resource: projects.instanceConfigs

Resource: InstanceConfig

A possible configuration for a Cloud Spanner instance. Configurations define the geographic placement of nodes and their replication.

JSON representation
{
  "name": string,
  "displayName": string,
  "configType": enum (Type),
  "replicas": [
    {
      object (ReplicaInfo)
    }
  ],
  "optionalReplicas": [
    {
      object (ReplicaInfo)
    }
  ],
  "baseConfig": string,
  "labels": {
    string: string,
    ...
  },
  "etag": string,
  "leaderOptions": [
    string
  ],
  "reconciling": boolean,
  "state": enum (State),
  "freeInstanceAvailability": enum (FreeInstanceAvailability)
}
Fields
name

string

A unique identifier for the instance configuration. Values are of the form projects/<project>/instanceConfigs/[a-z][-a-z0-9]*.

displayName

string

The name of this instance configuration as it appears in UIs.

configType

enum (Type)

Output only. Whether this instance config is a Google or User Managed Configuration.

replicas[]

object (ReplicaInfo)

The geographic placement of nodes in this instance configuration and their replication properties.

optionalReplicas[]

object (ReplicaInfo)

Output only. The available optional replicas to choose from for user managed configurations. Populated for Google managed configurations.

baseConfig

string

Base configuration name, e.g. projects//instanceConfigs/nam3, based on which this configuration is created. Only set for user managed configurations. baseConfig must refer to a configuration of type GOOGLE_MANAGED in the same project as this configuration.

labels

map (key: string, value: 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-z][a-z0-9_-]{0,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.

etag

string

etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a instance config from overwriting each other. It is strongly suggested that systems make use of the etag in the read-modify-write cycle to perform instance config updates in order to avoid race conditions: An etag is returned in the response which contains instance configs, and systems are expected to put that etag in the request to update instance config to ensure that their change will be applied to the same version of the instance config. If no etag is provided in the call to update instance config, then the existing instance config is overwritten blindly.

leaderOptions[]

string

Allowed values of the "defaultLeader" schema option for databases in instances that use this instance configuration.

reconciling

boolean

Output only. If true, the instance config is being created or updated. If false, there are no ongoing operations for the instance config.

state

enum (State)

Output only. The current instance config state. Applicable only for USER_MANAGED configs.

freeInstanceAvailability

enum (FreeInstanceAvailability)

Output only. Describes whether free instances are available to be created in this instance config.

Type

The type of this configuration.

Enums
TYPE_UNSPECIFIED Unspecified.
GOOGLE_MANAGED Google managed configuration.
USER_MANAGED User managed configuration.

ReplicaInfo

JSON representation
{
  "location": string,
  "type": enum (ReplicaType),
  "defaultLeaderLocation": boolean
}
Fields
location

string

The location of the serving resources, e.g. "us-central1".

type

enum (ReplicaType)

The type of replica.

defaultLeaderLocation

boolean

If true, this location is designated as the default leader location where leader replicas are placed. See the region types documentation for more details.

ReplicaType

Indicates the type of replica. See the replica types documentation for more details.

Enums
TYPE_UNSPECIFIED Not specified.
READ_WRITE

sessions.read-write replicas support both reads and writes. These replicas:

  • Maintain a full copy of your data.
  • Serve reads.
  • Can vote whether to commit a write.
  • Participate in leadership election.
  • Are eligible to become a leader.
READ_ONLY

sessions.read-only replicas only support reads (not writes). sessions.read-only replicas:

  • Maintain a full copy of your data.
  • Serve reads.
  • Do not participate in voting to commit writes.
  • Are not eligible to become a leader.
WITNESS

Witness replicas don't support reads but do participate in voting to commit writes. Witness replicas:

  • Do not maintain a full copy of data.
  • Do not serve reads.
  • Vote whether to commit writes.
  • Participate in leader election but are not eligible to become leader.

State

Indicates the current state of the instance config.

Enums
STATE_UNSPECIFIED Not specified.
CREATING The instance config is still being created.
READY The instance config is fully created and ready to be used to create instances.

FreeInstanceAvailability

Describes the availability for free instances to be created in an instance config.

Enums
FREE_INSTANCE_AVAILABILITY_UNSPECIFIED Not specified.
AVAILABLE Indicates that free instances are available to be created in this instance config.
UNSUPPORTED Indicates that free instances are not supported in this instance config.
DISABLED Indicates that free instances are currently not available to be created in this instance config.
QUOTA_EXCEEDED Indicates that additional free instances cannot be created in this instance config because the project has reached its limit of free instances.

Methods

create

Creates an instance config and begins preparing it to be used.

delete

Deletes the instance config.

get

Gets information about a particular instance configuration.

list

Lists the supported instance configurations for a given project.

patch

Updates an instance config.