Package google.spanner.admin.instance.v1

Index

InstanceAdmin

Cloud Spanner Instance Admin API

The Cloud Spanner Instance Admin API can be used to create, delete, modify and list instances. Instances are dedicated Cloud Spanner serving and storage resources to be used by Cloud Spanner databases.

Each instance has a "configuration", which dictates where the serving resources for the Cloud Spanner instance are located (e.g., US-central, Europe). Configurations are created by Google based on resource availability.

Cloud Spanner billing is based on the instances that exist and their sizes. After an instance exists, there are no additional per-database or per-operation charges for use of the instance (though there may be additional network bandwidth charges). Instances offer isolation: problems with databases in one instance will not affect other instances. However, within an instance databases can affect each other. For example, if one database in an instance receives a lot of requests and consumes most of the instance resources, fewer resources are available for other databases in that instance, and their performance may suffer.

CreateInstance

rpc CreateInstance(CreateInstanceRequest) returns (Operation)

Creates an instance and begins preparing it to begin serving. The returned long-running operation can be used to track the progress of preparing the new instance. The instance name is assigned by the caller. If the named instance already exists, CreateInstance returns ALREADY_EXISTS.

Immediately upon completion of this request:

  • The instance is readable via the API, with all requested attributes but no allocated resources. Its state is CREATING.

Until completion of the returned operation:

  • Cancelling the operation renders the instance immediately unreadable via the API.
  • The instance can be deleted.
  • All other attempts to modify the instance are rejected.

Upon completion of the returned operation:

  • Billing for all successfully-allocated resources begins (some types may have lower than the requested levels).
  • Databases can be created in the instance.
  • The instance's allocated resource levels are readable via the API.
  • The instance's state becomes READY.

The returned long-running operation will have a name of the format <instance_name>/operations/<operation_id> and can be used to track creation of the instance. The metadata field type is CreateInstanceMetadata. The response field type is Instance, if successful.

Authorization scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/spanner.admin
  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

CreateInstanceConfig

rpc CreateInstanceConfig(CreateInstanceConfigRequest) returns (Operation)

Creates an instance config and begins preparing it to be used. The returned long-running operation can be used to track the progress of preparing the new instance config. The instance config name is assigned by the caller. If the named instance config already exists, CreateInstanceConfig returns ALREADY_EXISTS.

Immediately after the request returns:

  • The instance config is readable via the API, with all requested attributes. The instance config's reconciling field is set to true. Its state is CREATING.

While the operation is pending:

  • Cancelling the operation renders the instance config immediately unreadable via the API.
  • Except for deleting the creating resource, all other attempts to modify the instance config are rejected.

Upon completion of the returned operation:

  • Instances can be created using the instance configuration.
  • The instance config's reconciling field becomes false. Its state becomes READY.

The returned long-running operation will have a name of the format <instance_config_name>/operations/<operation_id> and can be used to track creation of the instance config. The metadata field type is CreateInstanceConfigMetadata. The response field type is InstanceConfig, if successful.

Authorization requires spanner.instanceConfigs.create permission on the resource parent.

Authorization scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/spanner.admin
  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

DeleteInstance

rpc DeleteInstance(DeleteInstanceRequest) returns (Empty)

Deletes an instance.

Immediately upon completion of the request:

  • Billing ceases for all of the instance's reserved resources.

Soon afterward:

  • The instance and all of its databases immediately and irrevocably disappear from the API. All data in the databases is permanently deleted.
Authorization scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/spanner.admin
  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

DeleteInstanceConfig

rpc DeleteInstanceConfig(DeleteInstanceConfigRequest) returns (Empty)

Deletes the instance config. Deletion is only allowed when no instances are using the configuration. If any instances are using the config, returns FAILED_PRECONDITION.

Only user managed configurations can be deleted.

Authorization requires spanner.instanceConfigs.delete permission on the resource name.

Authorization scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/spanner.admin
  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

GetIamPolicy

rpc GetIamPolicy(GetIamPolicyRequest) returns (Policy)

Gets the access control policy for an instance resource. Returns an empty policy if an instance exists but does not have a policy set.

Authorization requires spanner.instances.getIamPolicy on resource.

Authorization scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/spanner.admin
  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

GetInstance

rpc GetInstance(GetInstanceRequest) returns (Instance)

Gets information about a particular instance.

Authorization scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/spanner.admin
  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

GetInstanceConfig

rpc GetInstanceConfig(GetInstanceConfigRequest) returns (InstanceConfig)

Gets information about a particular instance configuration.

Authorization scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/spanner.admin
  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

ListInstanceConfigOperations

rpc ListInstanceConfigOperations(ListInstanceConfigOperationsRequest) returns (ListInstanceConfigOperationsResponse)

Lists the user-managed instance config long-running operations in the given project. An instance config operation has a name of the form projects/<project>/instanceConfigs/<instance_config>/operations/<operation>. The long-running operation metadata field type metadata.type_url describes the type of the metadata. Operations returned include those that have completed/failed/canceled within the last 7 days, and pending operations. Operations returned are ordered by operation.metadata.value.start_time in descending order starting from the most recently started operation.

Authorization scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/spanner.admin
  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

ListInstanceConfigs

rpc ListInstanceConfigs(ListInstanceConfigsRequest) returns (ListInstanceConfigsResponse)

Lists the supported instance configurations for a given project.

Authorization scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/spanner.admin
  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

ListInstances

rpc ListInstances(ListInstancesRequest) returns (ListInstancesResponse)

Lists all instances in the given project.

Authorization scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/spanner.admin
  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

SetIamPolicy

rpc SetIamPolicy(SetIamPolicyRequest) returns (Policy)

Sets the access control policy on an instance resource. Replaces any existing policy.

Authorization requires spanner.instances.setIamPolicy on resource.

Authorization scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/spanner.admin
  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

TestIamPermissions

rpc TestIamPermissions(TestIamPermissionsRequest) returns (TestIamPermissionsResponse)

Returns permissions that the caller has on the specified instance resource.

Attempting this RPC on a non-existent Cloud Spanner instance resource will result in a NOT_FOUND error if the user has spanner.instances.list permission on the containing Google Cloud Project. Otherwise returns an empty set of permissions.

Authorization scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/spanner.admin
  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

UpdateInstance

rpc UpdateInstance(UpdateInstanceRequest) returns (Operation)

Updates an instance, and begins allocating or releasing resources as requested. The returned long-running operation can be used to track the progress of updating the instance. If the named instance does not exist, returns NOT_FOUND.

Immediately upon completion of this request:

  • For resource types for which a decrease in the instance's allocation has been requested, billing is based on the newly-requested level.

Until completion of the returned operation:

  • Cancelling the operation sets its metadata's cancel_time, and begins restoring resources to their pre-request values. The operation is guaranteed to succeed at undoing all resource changes, after which point it terminates with a CANCELLED status.
  • All other attempts to modify the instance are rejected.
  • Reading the instance via the API continues to give the pre-request resource levels.

Upon completion of the returned operation:

  • Billing begins for all successfully-allocated resources (some types may have lower than the requested levels).
  • All newly-reserved resources are available for serving the instance's tables.
  • The instance's new resource levels are readable via the API.

The returned long-running operation will have a name of the format <instance_name>/operations/<operation_id> and can be used to track the instance modification. The metadata field type is UpdateInstanceMetadata. The response field type is Instance, if successful.

Authorization requires spanner.instances.update permission on the resource name.

Authorization scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/spanner.admin
  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

UpdateInstanceConfig

rpc UpdateInstanceConfig(UpdateInstanceConfigRequest) returns (Operation)

Updates an instance config. The returned long-running operation can be used to track the progress of updating the instance. If the named instance config does not exist, returns NOT_FOUND.

Only user managed configurations can be updated.

Immediately after the request returns:

  • The instance config's reconciling field is set to true.

While the operation is pending:

  • Cancelling the operation sets its metadata's cancel_time. The operation is guaranteed to succeed at undoing all changes, after which point it terminates with a CANCELLED status.
  • All other attempts to modify the instance config are rejected.
  • Reading the instance config via the API continues to give the pre-request values.

Upon completion of the returned operation:

  • Creating instances using the instance configuration uses the new values.
  • The instance config's new values are readable via the API.
  • The instance config's reconciling field becomes false.

The returned long-running operation will have a name of the format <instance_config_name>/operations/<operation_id> and can be used to track the instance config modification. The metadata field type is UpdateInstanceConfigMetadata. The response field type is InstanceConfig, if successful.

Authorization requires spanner.instanceConfigs.update permission on the resource name.

Authorization scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/spanner.admin
  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

AutoscalingConfig

Autoscaling config for an instance.

Fields
autoscaling_limits

AutoscalingLimits

Required. Autoscaling limits for an instance.

autoscaling_targets

AutoscalingTargets

Required. The autoscaling targets for an instance.

AutoscalingLimits

The autoscaling limits for the instance. Users can define the minimum and maximum compute capacity allocated to the instance, and the autoscaler will only scale within that range. Users can either use nodes or processing units to specify the limits, but should use the same unit to set both the min_limit and max_limit.

Fields
Union field min_limit. The minimum compute capacity for the instance. min_limit can be only one of the following:
min_nodes

int32

Minimum number of nodes allocated to the instance. If set, this number should be greater than or equal to 1.

min_processing_units

int32

Minimum number of processing units allocated to the instance. If set, this number should be multiples of 1000.

Union field max_limit. The maximum compute capacity for the instance. The maximum compute capacity should be less than or equal to 10X the minimum compute capacity. max_limit can be only one of the following:
max_nodes

int32

Maximum number of nodes allocated to the instance. If set, this number should be greater than or equal to min_nodes.

max_processing_units

int32

Maximum number of processing units allocated to the instance. If set, this number should be multiples of 1000 and be greater than or equal to min_processing_units.

AutoscalingTargets

The autoscaling targets for an instance.

Fields
high_priority_cpu_utilization_percent

int32

Required. The target high priority cpu utilization percentage that the autoscaler should be trying to achieve for the instance. This number is on a scale from 0 (no utilization) to 100 (full utilization). The valid range is [10, 90] inclusive.

storage_utilization_percent

int32

Required. The target storage utilization percentage that the autoscaler should be trying to achieve for the instance. This number is on a scale from 0 (no utilization) to 100 (full utilization). The valid range is [10, 99] inclusive.

CreateInstanceConfigMetadata

Metadata type for the operation returned by CreateInstanceConfig.

Fields
instance_config

InstanceConfig

The target instance config end state.

progress

OperationProgress

The progress of the CreateInstanceConfig operation.

cancel_time

Timestamp

The time at which this operation was cancelled.

CreateInstanceConfigRequest

The request for [CreateInstanceConfigRequest][InstanceAdmin.CreateInstanceConfigRequest].

Fields
parent

string

Required. The name of the project in which to create the instance config. Values are of the form projects/<project>.

Authorization requires the following IAM permission on the specified resource parent:

  • spanner.instanceConfigs.create
instance_config_id

string

Required. The ID of the instance config to create. Valid identifiers are of the form custom-[-a-z0-9]*[a-z0-9] and must be between 2 and 64 characters in length. The custom- prefix is required to avoid name conflicts with Google managed configurations.

instance_config

InstanceConfig

Required. The InstanceConfig proto of the configuration to create. instance_config.name must be <parent>/instanceConfigs/<instance_config_id>. instance_config.base_config must be a Google managed configuration name, e.g. /instanceConfigs/us-east1, /instanceConfigs/nam3.

validate_only

bool

An option to validate, but not actually execute, a request, and provide the same response.

CreateInstanceMetadata

Metadata type for the operation returned by CreateInstance.

Fields
instance

Instance

The instance being created.

start_time

Timestamp

The time at which the CreateInstance request was received.

cancel_time

Timestamp

The time at which this operation was cancelled. If set, this operation is in the process of undoing itself (which is guaranteed to succeed) and cannot be cancelled again.

end_time

Timestamp

The time at which this operation failed or was completed successfully.

CreateInstanceRequest

The request for CreateInstance.

Fields
parent

string

Required. The name of the project in which to create the instance. Values are of the form projects/<project>.

Authorization requires the following IAM permission on the specified resource parent:

  • spanner.instances.create
instance_id

string

Required. The ID of the instance to create. Valid identifiers are of the form [a-z][-a-z0-9]*[a-z0-9] and must be between 2 and 64 characters in length.

instance

Instance

Required. The instance to create. The name may be omitted, but if specified must be <parent>/instances/<instance_id>.

DeleteInstanceConfigRequest

The request for [DeleteInstanceConfigRequest][InstanceAdmin.DeleteInstanceConfigRequest].

Fields
name

string

Required. The name of the instance configuration to be deleted. Values are of the form projects/<project>/instanceConfigs/<instance_config>

Authorization requires the following IAM permission on the specified resource name:

  • spanner.instanceConfigs.delete
etag

string

Used for optimistic concurrency control as a way to help prevent simultaneous deletes of an instance config from overwriting each other. If not empty, the API only deletes the instance config when the etag provided matches the current status of the requested instance config. Otherwise, deletes the instance config without checking the current status of the requested instance config.

validate_only

bool

An option to validate, but not actually execute, a request, and provide the same response.

DeleteInstanceRequest

The request for DeleteInstance.

Fields
name

string

Required. The name of the instance to be deleted. Values are of the form projects/<project>/instances/<instance>

Authorization requires the following IAM permission on the specified resource name:

  • spanner.instances.delete

FreeInstanceMetadata

Free instance specific metadata that is kept even after an instance has been upgraded for tracking purposes.

Fields
expire_time

Timestamp

Output only. Timestamp after which the instance will either be upgraded or scheduled for deletion after a grace period. ExpireBehavior is used to choose between upgrading or scheduling the free instance for deletion. This timestamp is set during the creation of a free instance.

upgrade_time

Timestamp

Output only. If present, the timestamp at which the free instance was upgraded to a provisioned instance.

expire_behavior

ExpireBehavior

Specifies the expiration behavior of a free instance. The default of ExpireBehavior is REMOVE_AFTER_GRACE_PERIOD. This can be modified during or after creation, and before expiration.

ExpireBehavior

Allows users to change behavior when a free instance expires.

Enums
EXPIRE_BEHAVIOR_UNSPECIFIED Not specified.
FREE_TO_PROVISIONED When the free instance expires, upgrade the instance to a provisioned instance.
REMOVE_AFTER_GRACE_PERIOD When the free instance expires, disable the instance, and delete it after the grace period passes if it has not been upgraded.

GetInstanceConfigRequest

The request for GetInstanceConfigRequest.

Fields
name

string

Required. The name of the requested instance configuration. Values are of the form projects/<project>/instanceConfigs/<config>.

Authorization requires the following IAM permission on the specified resource name:

  • spanner.instanceConfigs.get

GetInstanceRequest

The request for GetInstance.

Fields
name

string

Required. The name of the requested instance. Values are of the form projects/<project>/instances/<instance>.

Authorization requires the following IAM permission on the specified resource name:

  • spanner.instances.get
field_mask

FieldMask

If field_mask is present, specifies the subset of Instance fields that should be returned. If absent, all Instance fields are returned.

Instance

An isolated set of Cloud Spanner resources on which databases can be hosted.

Fields
name

string

Required. A unique identifier for the instance, which cannot be changed after the instance is created. Values are of the form projects/<project>/instances/[a-z][-a-z0-9]*[a-z0-9]. The final segment of the name must be between 2 and 64 characters in length.

config

string

Required. The name of the instance's configuration. Values are of the form projects/<project>/instanceConfigs/<configuration>. See also InstanceConfig and ListInstanceConfigs.

display_name

string

Required. The descriptive name for this instance as it appears in UIs. Must be unique per project and between 4 and 30 characters in length.

node_count

int32

The number of nodes allocated to this instance. At most one of either node_count or processing_units should be present in the message.

Users can set the node_count field to specify the target number of nodes allocated to the instance.

This may be zero in API responses for instances that are not yet in state READY.

See the documentation for more information about nodes and processing units.

processing_units

int32

The number of processing units allocated to this instance. At most one of processing_units or node_count should be present in the message.

Users can set the processing_units field to specify the target number of processing units allocated to the instance.

This may be zero in API responses for instances that are not yet in state READY.

See the documentation for more information about nodes and processing units.

autoscaling_config

AutoscalingConfig

Optional. The autoscaling configuration. Autoscaling is enabled if this field is set. When autoscaling is enabled, node_count and processing_units are treated as OUTPUT_ONLY fields and reflect the current compute capacity allocated to the instance.

state

State

Output only. The current instance state. For CreateInstance, the state must be either omitted or set to CREATING. For UpdateInstance, the state must be either omitted or set to READY.

labels

map<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-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. And so 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.

instance_type

InstanceType

The InstanceType of the current instance.

endpoint_uris[]

string

Deprecated. This field is not populated.

create_time

Timestamp

Output only. The time at which the instance was created.

update_time

Timestamp

Output only. The time at which the instance was most recently updated.

free_instance_metadata

FreeInstanceMetadata

Free instance metadata. Only populated for free instances.

InstanceType

The type of this instance. The type can be used to distinguish product variants, that can affect aspects like: usage restrictions, quotas and billing. Currently this is used to distinguish FREE_INSTANCE vs PROVISIONED instances.

Enums
INSTANCE_TYPE_UNSPECIFIED Not specified.
PROVISIONED Provisioned instances have dedicated resources, standard usage limits and support.
FREE_INSTANCE Free instances provide no guarantee for dedicated resources, [node_count, processing_units] should be 0. They come with stricter usage limits and limited support.

State

Indicates the current state of the instance.

Enums
STATE_UNSPECIFIED Not specified.
CREATING The instance is still being created. Resources may not be available yet, and operations such as database creation may not work.
READY The instance is fully created and ready to do work such as creating databases.

InstanceConfig

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

Fields
name

string

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

display_name

string

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

config_type

Type

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

replicas[]

ReplicaInfo

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

optional_replicas[]

ReplicaInfo

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

base_config

string

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.

labels

map<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-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.

leader_options[]

string

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

reconciling

bool

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

state

State

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

free_instance_availability

FreeInstanceAvailability

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

storage_limit_per_processing_unit

int64

Output only. The storage limit in bytes per processing unit.

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.

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.

Type

The type of this configuration.

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

ListInstanceConfigOperationsRequest

The request for ListInstanceConfigOperations.

Fields
parent

string

Required. The project of the instance config operations. Values are of the form projects/<project>.

Authorization requires the following IAM permission on the specified resource parent:

  • spanner.instanceConfigOperations.list
filter

string

An expression that filters the list of returned operations.

A filter expression consists of a field name, a comparison operator, and a value for filtering. The value must be a string, a number, or a boolean. The comparison operator must be one of: <, >, <=, >=, !=, =, or :. Colon : is the contains operator. Filter rules are not case sensitive.

The following fields in the Operation are eligible for filtering:

  • name - The name of the long-running operation
  • done - False if the operation is in progress, else true.
  • metadata.@type - the type of metadata. For example, the type string for CreateInstanceConfigMetadata is type.googleapis.com/google.spanner.admin.instance.v1.CreateInstanceConfigMetadata.
  • metadata.<field_name> - any field in metadata.value. metadata.@type must be specified first, if filtering on metadata fields.
  • error - Error associated with the long-running operation.
  • response.@type - the type of response.
  • response.<field_name> - any field in response.value.

You can combine multiple expressions by enclosing each expression in parentheses. By default, expressions are combined with AND logic. However, you can specify AND, OR, and NOT logic explicitly.

Here are a few examples:

  • done:true - The operation is complete.
  • (metadata.@type= \ type.googleapis.com/google.spanner.admin.instance.v1.CreateInstanceConfigMetadata) AND \ (metadata.instance_config.name:custom-config) AND \ (metadata.progress.start_time < \"2021-03-28T14:50:00Z\") AND \ (error:*) - Return operations where:
    • The operation's metadata type is CreateInstanceConfigMetadata.
    • The instance config name contains "custom-config".
    • The operation started before 2021-03-28T14:50:00Z.
    • The operation resulted in an error.
page_size

int32

Number of operations to be returned in the response. If 0 or less, defaults to the server's maximum allowed page size.

page_token

string

If non-empty, page_token should contain a next_page_token from a previous ListInstanceConfigOperationsResponse to the same parent and with the same filter.

ListInstanceConfigOperationsResponse

The response for ListInstanceConfigOperations.

Fields
operations[]

Operation

The list of matching instance config long-running operations. Each operation's name will be prefixed by the instance config's name. The operation's metadata field type metadata.type_url describes the type of the metadata.

next_page_token

string

next_page_token can be sent in a subsequent ListInstanceConfigOperations call to fetch more of the matching metadata.

ListInstanceConfigsRequest

The request for ListInstanceConfigs.

Fields
parent

string

Required. The name of the project for which a list of supported instance configurations is requested. Values are of the form projects/<project>.

Authorization requires the following IAM permission on the specified resource parent:

  • spanner.instanceConfigs.list
page_size

int32

Number of instance configurations to be returned in the response. If 0 or less, defaults to the server's maximum allowed page size.

page_token

string

If non-empty, page_token should contain a next_page_token from a previous ListInstanceConfigsResponse.

ListInstanceConfigsResponse

The response for ListInstanceConfigs.

Fields
instance_configs[]

InstanceConfig

The list of requested instance configurations.

next_page_token

string

next_page_token can be sent in a subsequent ListInstanceConfigs call to fetch more of the matching instance configurations.

ListInstancesRequest

The request for ListInstances.

Fields
parent

string

Required. The name of the project for which a list of instances is requested. Values are of the form projects/<project>.

Authorization requires the following IAM permission on the specified resource parent:

  • spanner.instances.list
page_size

int32

Number of instances to be returned in the response. If 0 or less, defaults to the server's maximum allowed page size.

page_token

string

If non-empty, page_token should contain a next_page_token from a previous ListInstancesResponse.

filter

string

An expression for filtering the results of the request. Filter rules are case insensitive. The fields eligible for filtering are:

  • name
  • display_name
  • labels.key where key is the name of a label

Some examples of using filters are:

  • name:* --> The instance has a name.
  • name:Howl --> The instance's name contains the string "howl".
  • name:HOWL --> Equivalent to above.
  • NAME:howl --> Equivalent to above.
  • labels.env:* --> The instance has the label "env".
  • labels.env:dev --> The instance has the label "env" and the value of the label contains the string "dev".
  • name:howl labels.env:dev --> The instance's name contains "howl" and it has the label "env" with its value containing "dev".
instance_deadline

Timestamp

Deadline used while retrieving metadata for instances. Instances whose metadata cannot be retrieved within this deadline will be added to unreachable in ListInstancesResponse.

ListInstancesResponse

The response for ListInstances.

Fields
instances[]

Instance

The list of requested instances.

next_page_token

string

next_page_token can be sent in a subsequent ListInstances call to fetch more of the matching instances.

unreachable[]

string

The list of unreachable instances. It includes the names of instances whose metadata could not be retrieved within instance_deadline.

OperationProgress

Encapsulates progress related information for a Cloud Spanner long running instance operations.

Fields
progress_percent

int32

Percent completion of the operation. Values are between 0 and 100 inclusive.

start_time

Timestamp

Time the request was received.

end_time

Timestamp

If set, the time at which this operation failed or was completed successfully.

ReplicaInfo

Fields
location

string

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

type

ReplicaType

The type of replica.

default_leader_location

bool

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

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

Read-only replicas only support reads (not writes). 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.

UpdateInstanceConfigMetadata

Metadata type for the operation returned by UpdateInstanceConfig.

Fields
instance_config

InstanceConfig

The desired instance config after updating.

progress

OperationProgress

The progress of the UpdateInstanceConfig operation.

cancel_time

Timestamp

The time at which this operation was cancelled.

UpdateInstanceConfigRequest

The request for [UpdateInstanceConfigRequest][InstanceAdmin.UpdateInstanceConfigRequest].

Fields
instance_config

InstanceConfig

Required. The user instance config to update, which must always include the instance config name. Otherwise, only fields mentioned in update_mask need be included. To prevent conflicts of concurrent updates, etag can be used.

Authorization requires the following IAM permission on the specified resource instanceConfig:

  • spanner.instanceConfigs.update
update_mask

FieldMask

Required. A mask specifying which fields in InstanceConfig should be updated. The field mask must always be specified; this prevents any future fields in InstanceConfig from being erased accidentally by clients that do not know about them. Only display_name and labels can be updated.

validate_only

bool

An option to validate, but not actually execute, a request, and provide the same response.

UpdateInstanceMetadata

Metadata type for the operation returned by UpdateInstance.

Fields
instance

Instance

The desired end state of the update.

start_time

Timestamp

The time at which UpdateInstance request was received.

cancel_time

Timestamp

The time at which this operation was cancelled. If set, this operation is in the process of undoing itself (which is guaranteed to succeed) and cannot be cancelled again.

end_time

Timestamp

The time at which this operation failed or was completed successfully.

UpdateInstanceRequest

The request for UpdateInstance.

Fields
instance

Instance

Required. The instance to update, which must always include the instance name. Otherwise, only fields mentioned in field_mask need be included.

Authorization requires the following IAM permission on the specified resource instance:

  • spanner.instances.update
field_mask

FieldMask

Required. A mask specifying which fields in Instance should be updated. The field mask must always be specified; this prevents any future fields in Instance from being erased accidentally by clients that do not know about them.