openapi: 3.2.0 info: contact: email: support@cockroachlabs.com name: Cockroach Labs Support url: https://support.cockroachlabs.com description: An API for managing CockroachDB Cloud resources title: CockroachDB Cloud Virtual Cluster Workspaces API version: '2026-09-15' servers: - url: https://cockroachlabs.cloud security: - Bearer: [] tags: - name: Virtual Cluster Workspaces paths: /api/v1/virtual-cluster-workspaces: get: operationId: CockroachCloud_ListVirtualClusterWorkspaces summary: List workspaces in the organization description: 'Sort order: workspace name Can be used by the following roles assigned at the organization scope: - ORG_ADMIN - CLUSTER_ADMIN - CLUSTER_OPERATOR_WRITER - CLUSTER_DEVELOPER - CLUSTER_CREATOR - AUDITOR' parameters: - name: pagination.page in: query schema: type: string - name: pagination.limit in: query schema: type: integer format: int32 - name: pagination.as_of_time in: query schema: type: string format: date-time - name: pagination.sort_order in: query description: " - ASC: Sort in ascending order. This is the default unless otherwise specified.\n - DESC: Sort in descending order." schema: type: string enum: - ASC - DESC responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/ListVirtualClusterWorkspacesResponse' '400': description: Returned when a request field is invalid. content: application/json: schema: {} '401': description: Returned when the token bearer cannot be authenticated. content: application/json: schema: {} '403': description: Returned when the user does not have permission to access the resource. content: application/json: schema: {} '404': description: Returned when the resource does not exist. content: application/json: schema: {} '500': description: Server error content: application/json: schema: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Status' tags: - Virtual Cluster Workspaces x-badges: - color: green label: CONTINUUM - color: blue label: PREVIEW x-codeSamples: - lang: Shell + Curl source: "curl --request GET \\\n --url 'https://cockroachlabs.cloud/api/v1/virtual-cluster-workspaces?pagination.page=SOME_STRING_VALUE&pagination.limit=SOME_INTEGER_VALUE&pagination.as_of_time=SOME_STRING_VALUE&pagination.sort_order=SOME_STRING_VALUE' \\\n --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'" /api/v1/virtual-cluster-workspaces/{workspace_id}: get: operationId: CockroachCloud_GetVirtualClusterWorkspace summary: Show details for a specific workspace description: 'Can be used by the following roles assigned at the organization scope: - ORG_ADMIN - CLUSTER_ADMIN - CLUSTER_OPERATOR_WRITER - CLUSTER_DEVELOPER - CLUSTER_CREATOR - AUDITOR' parameters: - name: workspace_id in: path description: The unique identifier of the workspace. required: true schema: type: string responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/VirtualClusterWorkspace' '400': description: Returned when a request field is invalid. content: application/json: schema: {} '401': description: Returned when the token bearer cannot be authenticated. content: application/json: schema: {} '403': description: Returned when the user does not have permission to access the resource. content: application/json: schema: {} '404': description: Returned when the resource does not exist. content: application/json: schema: {} '500': description: Server error content: application/json: schema: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Status' tags: - Virtual Cluster Workspaces x-badges: - color: green label: CONTINUUM - color: blue label: PREVIEW x-codeSamples: - lang: Shell + Curl source: "curl --request GET \\\n --url https://cockroachlabs.cloud/api/v1/virtual-cluster-workspaces/{workspace_id} \\\n --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'" patch: operationId: CockroachCloud_UpdateVirtualClusterWorkspace summary: Update the configuration of a specific workspace description: 'Can be used by the following roles assigned at the organization, folder or cluster scope: - CLUSTER_ADMIN - CLUSTER_OPERATOR_WRITER Changes to a workspace''s configuration apply only to virtual clusters created after the change, not to virtual clusters that already exist. To modify existing virtual clusters, see CockroachCloud_UpdateVirtualCluster. The role must be assigned on the host cluster backing the workspace, not on the workspace itself.' parameters: - name: workspace_id in: path description: The unique identifier of the workspace. required: true schema: type: string requestBody: description: The changes to apply to the workspace. required: true content: application/json: schema: $ref: '#/components/schemas/UpdateVirtualClusterWorkspaceSpecification' responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/VirtualClusterWorkspace' '400': description: Returned when a request field is invalid. content: application/json: schema: {} '401': description: Returned when the token bearer cannot be authenticated. content: application/json: schema: {} '403': description: Returned when the user does not have permission to access the resource. content: application/json: schema: {} '404': description: Returned when the resource does not exist. content: application/json: schema: {} '500': description: Server error content: application/json: schema: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Status' tags: - Virtual Cluster Workspaces x-badges: - color: green label: CONTINUUM - color: blue label: PREVIEW x-codeSamples: - lang: Shell + Curl source: "curl --request PATCH \\\n --url https://cockroachlabs.cloud/api/v1/virtual-cluster-workspaces/{workspace_id} \\\n --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n --json '{\"default_virtual_cpu_burst_limit\":8,\"name\":\"production\"}'" /api/v1/virtual-cluster-workspaces/{workspace_id}/clusters: post: operationId: CockroachCloud_CreateVirtualCluster summary: Create a virtual cluster in a workspace description: 'Can be used by the following roles assigned at the organization or folder scope: - CLUSTER_ADMIN - CLUSTER_CREATOR Setting a custom virtual_cpu_burst_limit for this cluster additionally requires a role with edit permission assigned on the host cluster backing the workspace.' parameters: - name: workspace_id in: path description: The unique identifier of the workspace to create the cluster in. required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateVirtualClusterBody' responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/Cluster' '400': description: Returned when a request field is invalid. content: application/json: schema: {} '401': description: Returned when the token bearer cannot be authenticated. content: application/json: schema: {} '403': description: Returned when the user does not have permission to access the resource. content: application/json: schema: {} '404': description: Returned when the resource does not exist. content: application/json: schema: {} '500': description: Server error content: application/json: schema: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Status' tags: - Virtual Cluster Workspaces x-badges: - color: green label: CONTINUUM - color: blue label: PREVIEW x-codeSamples: - lang: Shell + Curl source: "curl --request POST \\\n --url https://cockroachlabs.cloud/api/v1/virtual-cluster-workspaces/{workspace_id}/clusters \\\n --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n --json '{\"name\":\"reporting\",\"primary_region\":\"us-east-1\",\"regions\":[\"us-east-1\",\"us-west-2\"]}'" /api/v1/virtual-cluster-workspaces/{workspace_id}/clusters/{cluster_id}: patch: operationId: CockroachCloud_UpdateVirtualCluster summary: Update a specific virtual cluster description: 'Can be used by the following roles assigned at the organization, folder or cluster scope: - CLUSTER_ADMIN - CLUSTER_OPERATOR_WRITER Setting a custom virtual_cpu_burst_limit for this cluster additionally requires a role with edit permission assigned on the host cluster backing the workspace, not on the virtual cluster.' parameters: - name: workspace_id in: path description: The unique identifier of the workspace the cluster belongs to. required: true schema: type: string - name: cluster_id in: path description: The unique identifier of the cluster. required: true schema: type: string requestBody: description: The changes to apply to the cluster. required: true content: application/json: schema: $ref: '#/components/schemas/UpdateVirtualClusterSpecification' responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/Cluster' '400': description: Returned when a request field is invalid. content: application/json: schema: {} '401': description: Returned when the token bearer cannot be authenticated. content: application/json: schema: {} '403': description: Returned when the user does not have permission to access the resource. content: application/json: schema: {} '404': description: Returned when the resource does not exist. content: application/json: schema: {} '500': description: Server error content: application/json: schema: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Status' tags: - Virtual Cluster Workspaces x-badges: - color: green label: CONTINUUM - color: blue label: PREVIEW x-codeSamples: - lang: Shell + Curl source: "curl --request PATCH \\\n --url https://cockroachlabs.cloud/api/v1/virtual-cluster-workspaces/{workspace_id}/clusters/{cluster_id} \\\n --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n --json '{\"delete_protection\":\"ENABLED\",\"labels\":{\"env\":\"prod\",\"team\":\"checkout\"},\"parent_id\":\"c1c3d0b8-1f3a-4a1e-9a2b-6f0c9d4e8b71\",\"primary_region\":\"us-east-1\",\"regions\":[\"us-east-1\",\"us-west-2\"],\"virtual_cpu_burst_limit\":8}'" components: schemas: DedicatedHardwareConfig: type: object properties: disk_iops: description: 'disk_iops is the number of disk I/O operations per second that are permitted on each node in the cluster. This value reflects the actual provisioned IOPS, which may differ from the value specified during cluster creation or update. Only AWS clusters support user-specified IOPS; for GCP and Azure clusters, IOPS is determined by the cloud provider based on disk size. A value of zero indicates the cloud provider-specific default.' type: integer format: int32 machine_type: description: 'machine_type is the machine type identifier within the given cloud provider, ex. m5.xlarge, n2-standard-4.' type: string memory_gib: description: memory_gib is the memory GiB per node in the cluster. type: number format: float num_virtual_cpus: description: num_virtual_cpus is the number of virtual CPUs per node in the cluster. type: integer format: int32 storage_gib: description: storage_gib is the number of storage GiB per node in the cluster. type: integer format: int32 required: - machine_type - num_virtual_cpus - storage_gib - memory_gib - disk_iops NetworkVisibility.Type: type: string enum: - PUBLIC - PRIVATE Status: type: object properties: code: type: integer format: int32 details: type: array items: $ref: '#/components/schemas/Any' message: type: string ListVirtualClusterWorkspacesResponse: type: object properties: pagination: $ref: '#/components/schemas/KeysetPaginationResponse' workspaces: description: The workspaces in the organization. type: array items: $ref: '#/components/schemas/VirtualClusterWorkspace' example: pagination: {} workspaces: - cloud_provider: AWS created_at: '2026-03-22T20:23:11.285067Z' default_virtual_cpu_burst_limit: 4 id: 35c4abb2-bb66-46d7-afed-25ebef5ed2aa name: production regions: - us-east-1 - us-west-2 updated_at: '2026-04-01T09:14:02.114930Z' required: - workspaces CloudProvider.Type: description: " - GCP: The Google Cloud Platform cloud provider.\n - AWS: The Amazon Web Services cloud provider.\n - AZURE: The Azure cloud provider." type: string enum: - GCP - AWS - AZURE Cluster: type: object properties: account_id: description: 'account_id is a cloud provider account ID representing the CockroachDB cluster. This ID can be used for setting up trust relationships with cloud resources. For GCP clusters, this value is a project name that can be used to construct principal service account names for authentication.' type: string azure_cluster_identity_client_id: description: 'The client ID of the Azure cluster identity associated with this cluster. This field is only populated for clusters deployed on Azure and is used to support customer-managed encryption keys (CMEK).' type: string cidr_range: description: 'cidr_range is the IPv4 range in CIDR format that will be used by the cluster. It is only set on GCP Advanced tier clusters and is otherwise empty.' type: string cloud_provider: $ref: '#/components/schemas/CloudProvider.Type' cockroach_version: type: string config: $ref: '#/components/schemas/ClusterConfig' created_at: type: string format: date-time creator_id: type: string customer_cloud_account: $ref: '#/components/schemas/CustomerCloudAccount' delete_protection: $ref: '#/components/schemas/DeleteProtectionState.Type' deleted_at: type: string format: date-time edition: $ref: '#/components/schemas/Edition.Type' egress_traffic_policy: $ref: '#/components/schemas/EgressTrafficPolicy.Type' id: type: string labels: description: labels are key-value pairs used to organize and categorize resources. type: object additionalProperties: type: string name: type: string network_visibility: $ref: '#/components/schemas/NetworkVisibility.Type' operation_status: $ref: '#/components/schemas/ClusterStatus.Type' parent_id: description: 'Preview: The parent ID is a folder ID. A "root" valued parent ID refers to a cluster at the root level.' type: string plan: $ref: '#/components/schemas/Plan.Type' regions: type: array items: $ref: '#/components/schemas/Region' sql_dns: description: sql_dns is the DNS name of SQL interface of the cluster. type: string state: $ref: '#/components/schemas/ClusterState.Type' updated_at: type: string format: date-time upgrade_status: $ref: '#/components/schemas/ClusterUpgradeStatus.Type' example: account_id: '' cidr_range: 172.28.0.0/14 cloud_provider: GCP cockroach_version: v21.2.4 config: serverless: routing_id: example-cluster-1533 upgrade_type: AUTOMATIC usage_limits: provisioned_virtual_cpus: '2' created_at: '2022-03-22T20:23:11.285067Z' creator_id: 7cde0cd9-0d8a-4008-8f90-45092ce8afc1 id: 35c4abb2-bb66-46d7-afed-25ebef5ed2aa is_customer_cloud_account: false labels: cost_center: '12345' env: prod name: example-cluster operation_status: UNSPECIFIED plan: STANDARD regions: - internal_dns: internal-free-tier7.gcp-us-central1.crdb.io name: us-central1 node_count: 0 private_endpoint_dns: private-free-tier7.gcp-us-central1.crdb.io sql_dns: free-tier7.gcp-us-central1.crdb.io ui_dns: '' state: CREATED updated_at: '2022-03-22T20:23:11.879593Z' upgrade_status: UPGRADE_AVAILABLE required: - id - name - cockroach_version - upgrade_status - cloud_provider - state - creator_id - operation_status - config - regions - cidr_range - labels - is_customer_cloud_account EgressTrafficPolicy.Type: description: " - UNSPECIFIED: UNSPECIFIED signifies the egress traffic policy is unspecified.\n - ERROR: ERROR signifies there has been an internal server error during\nan update to the egress traffic policy.\n - ALLOW_ALL: ALLOW_ALL signifies all outbound connections from CockroachDB are allowed.\n - DEFAULT_DENY: DEFAULT_DENY signifies that CockroachDB can only initiate network\nconnections to destinations explicitly allowed by the user or CockroachDB\nCloud operators.\n - UPDATING: UPDATING signifies the egress traffic policy is updating." type: string enum: - UNSPECIFIED - ERROR - ALLOW_ALL - DEFAULT_DENY - UPDATING HostClusterConfig: description: HostClusterConfig describes the hardware of a host cluster. type: object properties: disk_iops: description: 'disk_iops is the number of disk I/O operations per second that are permitted on each node in the cluster. This value reflects the actual provisioned IOPS, which may differ from the value specified during cluster creation or update. Only AWS clusters support user-specified IOPS; for GCP and Azure clusters, IOPS is determined by the cloud provider based on disk size. A value of zero indicates the cloud provider-specific default.' type: integer format: int32 machine_type: description: 'machine_type is the machine type identifier within the given cloud provider, ex. m5.xlarge, n2-standard-4.' type: string memory_gib: description: memory_gib is the memory GiB per node in the cluster. type: number format: float num_virtual_cpus: description: num_virtual_cpus is the number of virtual CPUs per node in the cluster. type: integer format: int32 storage_gib: description: storage_gib is the number of storage GiB per node in the cluster. type: integer format: int32 example: disk_iops: 1500 machine_type: m6i.2xlarge memory_gib: 32 num_virtual_cpus: 8 storage_gib: 500 required: - machine_type - num_virtual_cpus - storage_gib - memory_gib - disk_iops AwsCustomerCloudAccount: type: object properties: arn: description: 'The ARN string of the role that CockroachDB Cloud will assume to perform actions in the customer-owned AWS account. The ARN contains the account ID so CockroachDB Cloud doesn''t require it to be passed separately.' type: string required: - arn ClusterUpgradeStatus.Type: description: " - FINALIZED: The cluster is running the latest available CockroachDB version, and all upgrades have been finalized.\n - MAJOR_UPGRADE_RUNNING: An major version upgrade is currently in progress.\n - UPGRADE_AVAILABLE: An upgrade is available. If preview builds are enabled for the parent organization, this could indicate that a preview upgrade is available.\n - PENDING_FINALIZATION: An upgrade is complete, but pending finalization. Upgrades are automatically finalized after 72 hours. For more information, see https://www.cockroachlabs.com/docs/stable/upgrade-cockroach-version.html\n - ROLLBACK_RUNNING: A rollback operation is currently in progress." type: string enum: - FINALIZED - MAJOR_UPGRADE_RUNNING - UPGRADE_AVAILABLE - PENDING_FINALIZATION - ROLLBACK_RUNNING KeysetPaginationResponse: type: object properties: next_page: type: string previous_page: type: string ClusterState.Type: description: ' - LOCKED: An exclusive operation is being performed on this cluster. Other operations should not proceed if they did not set a cluster into the LOCKED state.' type: string enum: - CREATING - CREATED - CREATION_FAILED - DELETED - LOCKED Plan.Type: description: " - BASIC: The Basic plan includes essential operational features, is available in\nselect regions, and offers on-demand capacity, making it ideal for small\nteams with unpredictable workloads.\n - STANDARD: The Standard plan includes standard enterprise security and monitoring\nfeatures, is available in all supported regions, and offers provisioned\npricing, making it the default choice for most CockroachDB production\nworkloads.\n - ADVANCED: The Advanced plan is ideal for workloads with stringent isolation,\ncompliance, and security requirements such as CMEK, PCI and HIPAA-readiness,\nand support for dedicated hardware. Customers are advised to have their\naccount team and/or Cockroach Labs Support \ninvolved when provisioning Advanced clusters." type: string enum: - BASIC - STANDARD - ADVANCED UpdateVirtualClusterSpecification: type: object properties: delete_protection: $ref: '#/components/schemas/DeleteProtectionState.Type' labels: description: 'labels are key-value pairs used to organize and categorize resources. If the labels field is included in the request, any existing labels on the cluster that are not included are removed, and any new labels specified are added. If the labels field is omitted from the request entirely, all existing labels remain unchanged.' type: object additionalProperties: type: string parent_id: description: 'The parent ID is a folder ID. An empty string or "root" moves the cluster to the root level. Omit to leave the cluster where it is.' type: string primary_region: description: 'Specify which region should be made the primary region. It must be one the cluster will span, either from the regions above or, when those are omitted, from the regions the cluster already has. When omitted, the current primary region is kept if it is still listed.' type: string regions: description: 'The regions the cluster should span, as cloud provider region codes, for example "us-east-1". Get the workspace to see which are available. Omit to leave the current regions alone.' type: array items: type: string virtual_cpu_burst_limit: description: 'Sets a custom value for the maximum vCPUs this cluster may use at once. Setting a custom vCPU burst limit requires edit permission on the host cluster backing the workspace. Omit to leave the current limit alone.' type: integer format: int32 example: delete_protection: ENABLED labels: env: prod team: checkout parent_id: c1c3d0b8-1f3a-4a1e-9a2b-6f0c9d4e8b71 primary_region: us-east-1 regions: - us-east-1 - us-west-2 virtual_cpu_burst_limit: 8 UpdateVirtualClusterWorkspaceSpecification: type: object properties: default_virtual_cpu_burst_limit: description: 'Omitted leaves the current default. Applies only to virtual clusters created after this change.' type: integer format: int32 name: description: Omitted leaves the current name. type: string example: default_virtual_cpu_burst_limit: 8 name: production AzureCustomerCloudAccount: type: object properties: subscription_id: description: 'The ID of the subscription in the customer-owned Azure tenant in which clusters will be created.' type: string tenant_id: description: The ID of the customer-owned tenant in which the subscription exists. type: string required: - subscription_id - tenant_id Region: type: object properties: disk_iops: description: 'disk_iops is the provisioned disk I/O operations per second for nodes in this region. Only meaningful for Advanced clusters on AWS; for GCP and Azure the cloud provider chooses based on disk size.' type: integer format: int32 internal_dns: description: 'internal_dns is the internal DNS name of the cluster within the cloud provider''s network. It is used to connect to the cluster with AWS PrivateLink, Azure Private Link, and GCP VPC Peering, but not GCP Private Service Connect.' type: string machine_type: description: 'machine_type is the machine type identifier within the cloud provider for nodes in this region (e.g. m5.xlarge, n2-standard-4). May differ across regions in a heterogeneous Advanced cluster. Only populated for Advanced clusters.' type: string name: type: string node_count: description: node_count will be 0 for Serverless clusters. type: integer format: int32 num_virtual_cpus: description: 'num_virtual_cpus is the number of virtual CPUs per node in this region, derived from machine_type. Only populated for Advanced clusters.' type: integer format: int32 primary: description: primary is true only for the primary region in a Multi Region Serverless cluster. type: boolean private_endpoint_dns: description: 'private_endpoint_dns is the DNS name of the cluster which is used to connect to the cluster with GCP Private Service Connect.' type: string s3_vpc_endpoint_id: description: 's3_vpc_endpoint_id is the ID of the AWS S3 VPC gateway endpoint associated with this cluster region. This can be used to configure S3 bucket policies that restrict access to traffic from this VPC endpoint. Only populated for Advanced clusters on AWS.' type: string sql_dns: description: sql_dns is the DNS name of SQL interface of the cluster. It is used to connect to the cluster with IP allowlisting. type: string ui_dns: description: ui_dns is the DNS name used when connecting to the DB Console for the cluster. type: string required: - name - sql_dns - ui_dns - node_count - internal_dns - private_endpoint_dns VirtualClusterConfig: description: 'VirtualClusterConfig describes a virtual cluster: a tenant running on a customer-owned host cluster, as a member of a workspace.' type: object properties: routing_id: description: routing_id is used to identify the cluster in a connection string. type: string virtual_cpu_burst_limit: description: virtual_cpu_burst_limit is a positive integer describing the most vCPUs the cluster can use at once. type: integer format: int32 workspace_id: description: workspace_id is the workspace the cluster is currently a member of. type: string example: routing_id: example-cluster-1533 virtual_cpu_burst_limit: 4 workspace_id: b7a1c8e2-6d4f-4f9a-9b3e-2c5d8f1a4e70 required: - routing_id - workspace_id - virtual_cpu_burst_limit title: VirtualClusterConfig CustomerCloudAccount: type: object properties: aws: $ref: '#/components/schemas/AwsCustomerCloudAccount' azure: $ref: '#/components/schemas/AzureCustomerCloudAccount' gcp: $ref: '#/components/schemas/GcpCustomerCloudAccount' GcpCustomerCloudAccount: type: object properties: service_account_email: description: 'The customer-owned GCP service account email. This is the principal that will be impersonated by CockroachDB Cloud to perform actions in the customer-owned GCP project. The service account email contains the project ID, so CockroachDB Cloud doesn''t require it to be passed separately.' type: string required: - service_account_email VirtualClusterWorkspace: description: 'A workspace is a named handle for the infrastructure a set of virtual clusters runs on.' type: object properties: cloud_provider: $ref: '#/components/schemas/CloudProvider.Type' created_at: description: The date and time the workspace was created. type: string format: date-time default_virtual_cpu_burst_limit: description: 'The vCPU burst limit a virtual cluster gets when its create request does not ask for a specific one. Changing this value in a workspace does not affect clusters that already exist in the workspace, only newly created clusters.' type: integer format: int32 id: description: The unique identifier of the workspace. type: string name: description: The name of the workspace. type: string regions: description: 'The regions the workspace spans. A virtual cluster created into it may use any subset of these and no others.' type: array items: type: string updated_at: description: The date and time the workspace was last modified. type: string format: date-time example: cloud_provider: AWS created_at: '2026-03-22T20:23:11.285067Z' default_virtual_cpu_burst_limit: 4 id: 35c4abb2-bb66-46d7-afed-25ebef5ed2aa name: production regions: - us-east-1 - us-west-2 updated_at: '2026-04-01T09:14:02.114930Z' required: - id - name - cloud_provider - regions - default_virtual_cpu_burst_limit - created_at - updated_at title: VirtualClusterWorkspace Edition.Type: description: "A Continuum edition, which determines the capabilities a cluster's license\ngrants. Editions are available only to clusters in Cockroach Continuum\norganizations, and a request that sets an edition from a non-Continuum\norganization is rejected. Editions and plans are mutually exclusive, so a\ncluster reports one or the other, never both.\n\n - STANDARD: The Standard edition grants the Standard capability set. See\n[Editions and add-ons](https://www.cockroachlabs.com/docs/continuum/editions-and-add-ons)\nfor the capabilities each edition includes.\n - MISSION_CRITICAL: The Mission Critical edition grants the Standard capability set plus the\nMission Critical capabilities. See\n[Editions and add-ons](https://www.cockroachlabs.com/docs/continuum/editions-and-add-ons)\nfor the capabilities each edition includes." type: string enum: - STANDARD - MISSION_CRITICAL CreateVirtualClusterBody: type: object properties: delete_protection: $ref: '#/components/schemas/DeleteProtectionState.Type' labels: description: labels are key-value pairs used to organize and categorize resources. type: object additionalProperties: type: string name: description: The name of the cluster. type: string parent_id: description: 'The parent ID is a folder ID. An empty string or "root" will create a cluster at the root level.' type: string primary_region: description: 'Specify which region should be made the primary region. This field is required if the cluster spans more than one region, and must be one of the regions the cluster spans.' type: string regions: description: 'regions is the subset of the workspace''s regions to create this cluster in. Omit to use every region in the workspace. Gives an error if a region is specified that is not in the workspace. Values are the cloud provider''s region codes, for example "us-east-1".' type: array items: type: string virtual_cpu_burst_limit: description: 'Sets a custom value for the maximum vCPUs this cluster may use at once. Omit to inherit the workspace''s default. Setting a custom vCPU burst limit requires edit permission on the workspace.' type: integer format: int32 example: name: reporting primary_region: us-east-1 regions: - us-east-1 - us-west-2 required: - name title: CreateVirtualClusterRequest ServerlessClusterConfig: type: object properties: routing_id: description: routing_id is used to identify the cluster in a connection string. type: string upgrade_type: $ref: '#/components/schemas/UpgradeType.Type' usage_limits: $ref: '#/components/schemas/UsageLimits' required: - routing_id - upgrade_type UpgradeType.Type: type: string enum: - MANUAL - AUTOMATIC Any: description: "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nIn its binary encoding, an `Any` is an ordinary message; but in other wire\nforms like JSON, it has a special encoding. The format of the type URL is\ndescribed on the `type_url` field.\n\nProtobuf APIs provide utilities to interact with `Any` values:\n\n- A 'pack' operation accepts a message and constructs a generic `Any` wrapper\n around it.\n- An 'unpack' operation reads the content of an `Any` message, either into an\n existing message or a new one. Unpack operations must check the type of the\n value they unpack against the declared `type_url`.\n- An 'is' operation decides whether an `Any` contains a message of the given\n type, i.e. whether it can 'unpack' that type.\n\nThe JSON format representation of an `Any` follows one of these cases:\n\n- For types without special-cased JSON encodings, the JSON format\n representation of the `Any` is the same as that of the message, with an\n additional `@type` field which contains the type URL.\n- For types with special-cased JSON encodings (typically called 'well-known'\n types, listed in https://protobuf.dev/programming-guides/json/#any), the\n JSON format representation has a key `@type` which contains the type URL\n and a key `value` which contains the JSON-serialized value.\n\nThe text format representation of an `Any` is like a message with one field\nwhose name is the type URL in brackets. For example, an `Any` containing a\n`foo.Bar` message may be written `[type.googleapis.com/foo.Bar] { a: 2 }`." type: object properties: '@type': description: 'Identifies the type of the serialized Protobuf message with a URI reference consisting of a prefix ending in a slash and the fully-qualified type name. Example: type.googleapis.com/google.protobuf.StringValue This string must contain at least one `/` character, and the content after the last `/` must be the fully-qualified name of the type in canonical form, without a leading dot. Do not write a scheme on these URI references so that clients do not attempt to contact them. The prefix is arbitrary and Protobuf implementations are expected to simply strip off everything up to and including the last `/` to identify the type. `type.googleapis.com/` is a common default prefix that some legacy implementations require. This prefix does not indicate the origin of the type, and URIs containing it are not expected to respond to any requests. All type URL strings must be legal URI references with the additional restriction (for the text format) that the content of the reference must consist only of alphanumeric characters, percent-encoded escapes, and characters in the following set (not including the outer backticks): `/-.~_!$&()*+,;=`. Despite our allowing percent encodings, implementations should not unescape them to prevent confusion with existing parsers. For example, `type.googleapis.com%2FFoo` should be rejected. In the original design of `Any`, the possibility of launching a type resolution service at these type URLs was considered but Protobuf never implemented one and considers contacting these URLs to be problematic and a potential security issue. Do not attempt to contact type URLs.' type: string additionalProperties: {} DeleteProtectionState.Type: type: string enum: - ENABLED - DISABLED ClusterConfig: type: object properties: dedicated: $ref: '#/components/schemas/DedicatedHardwareConfig' host: $ref: '#/components/schemas/HostClusterConfig' serverless: $ref: '#/components/schemas/ServerlessClusterConfig' virtual: $ref: '#/components/schemas/VirtualClusterConfig' ClusterStatus.Type: description: " - UNSPECIFIED: No ongoing operation. The cluster is running normally.\n - CRDB_MAJOR_UPGRADE_RUNNING: A major CockroachDB version upgrade is in progress.\n - CRDB_MAJOR_UPGRADE_FAILED: A major CockroachDB version upgrade has failed.\n - CRDB_MAJOR_ROLLBACK_RUNNING: A major CockroachDB version rollback is in progress.\n - CRDB_MAJOR_ROLLBACK_FAILED: A major CockroachDB version rollback has failed.\n - CRDB_PATCH_RUNNING: A CockroachDB patch version update is in progress.\n - CRDB_PATCH_FAILED: A CockroachDB patch version update has failed.\n - CRDB_SCALE_RUNNING: A cluster scale operation is in progress.\n - CRDB_SCALE_FAILED: A cluster scale operation has failed.\n - MAINTENANCE_RUNNING: A cluster maintenance operation is in progress.\n - CRDB_INSTANCE_UPDATE_RUNNING: A cluster instance update is in progress.\n - CRDB_INSTANCE_UPDATE_FAILED: A cluster instance update has failed.\n - CRDB_EDIT_CLUSTER_RUNNING: A cluster edit operation is in progress.\n - CRDB_EDIT_CLUSTER_FAILED: A cluster edit operation has failed.\n - CRDB_CMEK_OPERATION_RUNNING: A CMEK key operation is in progress.\n - CRDB_CMEK_OPERATION_FAILED: A CMEK key operation has failed.\n - TENANT_RESTORE_RUNNING: A tenant restore operation is in progress.\n - TENANT_RESTORE_FAILED: A tenant restore operation has failed.\n - CRDB_LOG_EXPORT_OPERATION_RUNNING: A log export configuration operation is in progress.\n - CRDB_LOG_EXPORT_OPERATION_FAILED: A log export configuration operation has failed.\n - CRDB_CLUSTER_DISRUPTION_RUNNING: A cluster disruption operation is in progress.\n - CRDB_CLUSTER_DISRUPTION_FAILED: A cluster disruption operation has failed.\n - CRDB_REPAVE_RUNNING: A cluster node repave operation is in progress.\n - CRDB_REPAVE_FAILED: A cluster node repave operation has failed.\n - CRDB_CUSTOM_CLIENT_CA_RUNNING: A custom client CA certificate operation is in progress.\n - CRDB_CUSTOM_CLIENT_CA_FAILED: A custom client CA certificate operation has failed.\n - DEDICATED_FULL_CLUSTER_RESTORE_RUNNING: A dedicated cluster full restore is in progress.\n - DEDICATED_FULL_CLUSTER_RESTORE_FAILED: A dedicated cluster full restore has failed." type: string enum: - UNSPECIFIED - CRDB_MAJOR_UPGRADE_RUNNING - CRDB_MAJOR_UPGRADE_FAILED - CRDB_MAJOR_ROLLBACK_RUNNING - CRDB_MAJOR_ROLLBACK_FAILED - CRDB_PATCH_RUNNING - CRDB_PATCH_FAILED - CRDB_SCALE_RUNNING - CRDB_SCALE_FAILED - MAINTENANCE_RUNNING - CRDB_INSTANCE_UPDATE_RUNNING - CRDB_INSTANCE_UPDATE_FAILED - CRDB_EDIT_CLUSTER_RUNNING - CRDB_EDIT_CLUSTER_FAILED - CRDB_CMEK_OPERATION_RUNNING - CRDB_CMEK_OPERATION_FAILED - TENANT_RESTORE_RUNNING - TENANT_RESTORE_FAILED - CRDB_LOG_EXPORT_OPERATION_RUNNING - CRDB_LOG_EXPORT_OPERATION_FAILED - CRDB_CLUSTER_DISRUPTION_RUNNING - CRDB_CLUSTER_DISRUPTION_FAILED - CRDB_REPAVE_RUNNING - CRDB_REPAVE_FAILED - CRDB_CUSTOM_CLIENT_CA_RUNNING - CRDB_CUSTOM_CLIENT_CA_FAILED - DEDICATED_FULL_CLUSTER_RESTORE_RUNNING - DEDICATED_FULL_CLUSTER_RESTORE_FAILED UsageLimits: type: object properties: provisioned_virtual_cpus: description: 'provisioned_virtual_cpus is the maximum number of vCPUs that the cluster can use. Once this limit is reached, operation latency may increase due to throttling. It is an error for this to be zero.' type: string format: int64 request_unit_limit: description: 'request_unit_limit is the maximum number of request units that the cluster can consume during the month. If this limit is exceeded, then the cluster is disabled until the limit is increased, or until the beginning of the next month when more free request units are granted. It is an error for this to be zero.' type: string format: int64 storage_mib_limit: description: 'storage_mib_limit is the maximum number of Mebibytes of storage that the cluster can have at any time during the month. If this limit is exceeded, then the cluster is throttled; only one SQL connection is allowed at a time, with the expectation that it is used to delete data to reduce storage usage. It is an error for this to be zero.' type: string format: int64 securitySchemes: Bearer: type: http scheme: bearer externalDocs: description: Use the CockroachDB Cloud API url: https://www.cockroachlabs.com/docs/cockroachcloud/cloud-api.html