Method: projects.instanceConfigs.create

Creates an instance configuration 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 configuration name is assigned by the caller. If the named instance configuration already exists, instanceConfigs.create returns ALREADY_EXISTS.

Immediately after the request returns:

  • The instance configuration 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 configuration immediately unreadable via the API.
  • Except for deleting the creating resource, all other attempts to modify the instance configuration 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/<operationId> 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.

HTTP request


The URL uses gRPC Transcoding syntax.

Path parameters



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

Request body

The request body contains data with the following structure:

JSON representation
  "instanceConfigId": string,
  "instanceConfig": {
    object (InstanceConfig)
  "validateOnly": boolean


Required. The ID of the instance configuration 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.


object (InstanceConfig)

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



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

Response body

If successful, the response body contains a newly created instance of Operation.

Authorization scopes

Requires one of the following OAuth scopes:


For more information, see the Authentication Overview.