Google Cloud Spanner · Schema
InstanceConfig
A possible configuration for a Cloud Spanner instance. Configurations define the geographic placement of nodes and their replication.
DatabaseDistributedGoogle CloudRelationalSQL
Properties
| Name | Type | Description |
|---|---|---|
| displayName | string | The name of this instance configuration as it appears in UIs. |
| quorumType | string | Output only. The `QuorumType` of the instance configuration. |
| state | string | Output only. The current instance configuration state. Applicable only for `USER_MANAGED` configurations. |
| etag | string | 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 |
| reconciling | boolean | Output only. If true, the instance configuration is being created or updated. If false, there are no ongoing operations for the instance configuration. |
| storageLimitPerProcessingUnit | string | Output only. The storage limit in bytes per processing unit. |
| baseConfig | 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 typ |
| name | string | A unique identifier for the instance configuration. Values are of the form `projects//instanceConfigs/a-z*`. User instance configuration must start with `custom-`. |
| labels | object | 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 f |
| freeInstanceAvailability | string | Output only. Describes whether free instances are available to be created in this instance configuration. |
| optionalReplicas | array | Output only. The available optional replicas to choose from for user-managed configurations. Populated for Google-managed configurations. |
| leaderOptions | array | Allowed values of the "default_leader" schema option for databases in instances that use this instance configuration. |
| replicas | array | 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 th |
| configType | string | Output only. Whether this instance configuration is a Google-managed or user-managed configuration. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/google-cloud-spanner/json-schema/google-cloud-spanner-instance-config-schema.json",
"title": "InstanceConfig",
"description": "A possible configuration for a Cloud Spanner instance. Configurations define the geographic placement of nodes and their replication.",
"x-generated": "2026-11-11",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/google-cloud-spanner-projects-api-openapi.yml#/components/schemas/InstanceConfig",
"properties": {
"displayName": {
"type": "string",
"description": "The name of this instance configuration as it appears in UIs."
},
"quorumType": {
"type": "string",
"readOnly": true,
"description": "Output only. The `QuorumType` of the instance configuration.",
"enum": [
"QUORUM_TYPE_UNSPECIFIED",
"REGION",
"DUAL_REGION",
"MULTI_REGION"
]
},
"state": {
"type": "string",
"enum": [
"STATE_UNSPECIFIED",
"CREATING",
"READY"
],
"description": "Output only. The current instance configuration state. Applicable only for `USER_MANAGED` configurations.",
"readOnly": true
},
"etag": {
"description": "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.",
"type": "string"
},
"reconciling": {
"type": "boolean",
"readOnly": true,
"description": "Output only. If true, the instance configuration is being created or updated. If false, there are no ongoing operations for the instance configuration."
},
"storageLimitPerProcessingUnit": {
"readOnly": true,
"description": "Output only. The storage limit in bytes per processing unit.",
"format": "int64",
"type": "string"
},
"baseConfig": {
"description": "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.",
"type": "string"
},
"name": {
"description": "A unique identifier for the instance configuration. Values are of the form `projects//instanceConfigs/a-z*`. User instance configuration must start with `custom-`.",
"type": "string"
},
"labels": {
"description": "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{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.",
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"freeInstanceAvailability": {
"readOnly": true,
"enum": [
"FREE_INSTANCE_AVAILABILITY_UNSPECIFIED",
"AVAILABLE",
"UNSUPPORTED",
"DISABLED",
"QUOTA_EXCEEDED"
],
"description": "Output only. Describes whether free instances are available to be created in this instance configuration.",
"type": "string"
},
"optionalReplicas": {
"readOnly": true,
"description": "Output only. The available optional replicas to choose from for user-managed configurations. Populated for Google-managed configurations.",
"type": "array",
"items": {
"$ref": "#/$defs/ReplicaInfo"
}
},
"leaderOptions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Allowed values of the \"default_leader\" schema option for databases in instances that use this instance configuration."
},
"replicas": {
"type": "array",
"items": {
"$ref": "#/$defs/ReplicaInfo"
},
"description": "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`."
},
"configType": {
"enum": [
"TYPE_UNSPECIFIED",
"GOOGLE_MANAGED",
"USER_MANAGED"
],
"readOnly": true,
"type": "string",
"description": "Output only. Whether this instance configuration is a Google-managed or user-managed configuration."
}
},
"type": "object",
"$defs": {
"ReplicaInfo": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The type of replica.",
"enum": [
"TYPE_UNSPECIFIED",
"READ_WRITE",
"READ_ONLY",
"WITNESS"
]
},
"defaultLeaderLocation": {
"type": "boolean",
"description": "If true, this location is designated as the default leader location where leader replicas are placed. See the [region types documentation](https://cloud.google.com/spanner/docs/instances#region_types) for more details."
},
"location": {
"type": "string",
"description": "The location of the serving resources, e.g., \"us-central1\"."
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/google-cloud-spanner-instance-config"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.