PingCAP Cluster API

Create, get, update, delete, pause, resume, reset the root password, and list node quotas of a cluster.

Documentation

Specifications

Other Resources

OpenAPI Specification

pingcap-cluster-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Pingcap Cluster API
  version: '1.0'
  description: 'Operations tagged Cluster across 4 of this provider''s published API definitions: pingcap-tidb-cloud-dedicated-v1beta1-openapi-original.json, pingcap-tidb-cloud-starter-essential-v1beta1-openapi-original.json, pingcap-tidb-cloud-v1beta-openapi-original.json, pingcap-tidb-dm-openapi-original.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://you.domain.com/
tags:
- name: Cluster
  description: Create, get, update, delete, pause, resume, reset the root password, and list node quotas of a cluster.
paths:
  /clusters:
    get:
      summary: List clusters
      description: Lists all clusters in your organization. You can filter results by project, region, cluster state, or specific cluster IDs.
      operationId: ClusterService_ListClusters
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/tidb_cloud_open_apidedicatedv1beta1ListClustersResponse'
        '400':
          description: A request field is invalid.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '401':
          description: The API key cannot be authenticated.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '403':
          description: The API key does not have permission to access the resource.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '429':
          description: You have exceed the rate limit.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '500':
          description: Internal server error.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
      - name: projectId
        description: The ID of the project. If not specified, the project ID of the default project is used.
        in: query
        required: false
        type: string
      - name: clusterIds
        description: A list of cluster IDs. If specified, only clusters matching these IDs are returned.
        in: query
        required: false
        type: array
        items:
          type: string
        collectionFormat: multi
      - name: regionIds
        description: A list of region IDs. If specified, only clusters in these regions are returned.
        in: query
        required: false
        type: array
        items:
          type: string
        collectionFormat: multi
      - name: clusterStates
        description: "A list of cluster states. If specified, only clusters in these states are returned.\n\n`\"UPGRADING\"`, `\"IMPORTING\"`, `\"MODIFYING\"`, `\"PAUSING\"`, `\"PAUSED\"`, and `\"RESUMING\"` states are only available for [TiDB Cloud Dedicated](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#tidb-cloud-dedicated) clusters.\n\n - CREATING: Cluster is being created.\n - DELETING: Cluster is being deleted.\n - ACTIVE: Cluster is active for use.\n - RESTORING: Cluster data is being restored.\n - MAINTENANCE: Cluster is under maintenance.\n - DELETED: Cluster has been deleted.\n - INACTIVE: Cluster is not active, but not being deleted.\n - UPGRADING: Cluster is being updated.\nOnly for Dedicated Cluster.\n - IMPORTING: Cluster is being imported.\nOnly for Dedicated Cluster.\n - MODIFYING: Cluster is being modified.\nOnly for Dedicated Cluster.\n - PAUSING: Cluster is being paused.\nOnly for Dedicated Cluster.\n - PAUSED: Cluster is paused.\nOnly for Dedicated Cluster.\n - RESUMING: Cluster is resuming.\nOnly for Dedicated Cluster."
        in: query
        required: false
        type: array
        items:
          type: string
          enum:
          - CREATING
          - DELETING
          - ACTIVE
          - RESTORING
          - MAINTENANCE
          - DELETED
          - INACTIVE
          - UPGRADING
          - IMPORTING
          - MODIFYING
          - PAUSING
          - PAUSED
          - RESUMING
        collectionFormat: multi
      - name: pageSize
        description: The maximum number of clusters to return. If not specified, at most 10 clusters will be returned. The maximum value is `100`. Values greater than `100` are set to `100`.
        in: query
        required: false
        type: integer
        format: int32
        default: 10
        minimum: 1
        maximum: 100
      - name: pageToken
        description: 'The pagination token received from a previous [List clusters](#tag/Cluster/operation/ClusterService_ListClusters) request. Use this token to retrieve the next page of results.


          **Note**: When paginating, all other parameters must match the original request.'
        in: query
        required: false
        type: string
      - name: skip
        description: The number of clusters to skip before returning results. If the value exceeds the total number of clusters, the response is `200` with an empty list and no `nextPageToken`.
        in: query
        required: false
        type: integer
        format: int32
      tags:
      - Cluster
      x-code-samples:
      - lang: curl
        label: curl
        source: "curl --digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n  --location 'https://dedicated.tidbapi.com/v1beta1/clusters'"
    post:
      summary: Create a cluster
      description: Creates a new [TiDB Cloud Dedicated](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#tidb-cloud-dedicated) cluster. Before creating a TiDB Cloud Dedicated cluster, you must set a [Project CIDR on TiDB Cloud console](https://docs.pingcap.com/tidbcloud/set-up-vpc-peering-connections/#prerequisite-set-a-cidr-for-a-region).
      operationId: ClusterService_CreateCluster
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/tidb_cloud_open_apidedicatedv1beta1Cluster'
        '400':
          description: A request field is invalid.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '401':
          description: The API key cannot be authenticated.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '403':
          description: The API key does not have permission to access the resource.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '429':
          description: You have exceed the rate limit.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '500':
          description: Internal server error.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
      - name: cluster
        description: Required.
        in: body
        required: true
        schema:
          $ref: '#/definitions/tidb_cloud_open_apidedicatedv1beta1Cluster'
      - name: validateOnly
        description: If set to `true`, the request is validated but not executed. Defaults to `false`.
        in: query
        required: false
        type: boolean
      tags:
      - Cluster
      x-code-samples:
      - lang: curl
        label: curl
        source: "curl --digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n  --location 'https://dedicated.tidbapi.com/v1beta1/clusters' --header 'Content-Type: application/json' --data '{\n  \"displayName\": \"foo-bar\",\n  \"regionId\": \"aws-us-west-2\",\n  \"labels\": {\n    \"tidb.cloud/project\": \"YOUR_PROJECT_ID\"\n  },\n  \"tidbNodeSetting\": {\n    \"nodeSpecKey\": \"8C32G\",\n    \"tidbNodeGroups\": [\n      {\n        \"nodeCount\": 2\n      }\n    ]\n  },\n  \"tikvNodeSetting\": {\n    \"nodeCount\": 3,\n    \"nodeSpecKey\": \"8C32G\",\n    \"storageSizeGi\": 500,\n    \"storageType\": \"Standard\"\n  }\n}'"
  /clusters/{clusterId}:
    get:
      summary: Get a cluster
      description: Retrieves details of a specific cluster.
      operationId: ClusterService_GetCluster
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/tidb_cloud_open_apidedicatedv1beta1Cluster'
        '400':
          description: A request field is invalid.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '401':
          description: The API key cannot be authenticated.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '403':
          description: The API key does not have permission to access the resource.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '429':
          description: You have exceed the rate limit.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '500':
          description: Internal server error.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
      - name: clusterId
        description: The ID of the cluster.
        in: path
        required: true
        type: string
      tags:
      - Cluster
      x-code-samples:
      - lang: curl
        label: curl
        source: "curl --digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n  --location 'https://dedicated.tidbapi.com/v1beta1/clusters/{clusterId}'"
    delete:
      summary: Delete a cluster
      description: Deletes a cluster by `clusterId`.
      operationId: ClusterService_DeleteCluster
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/tidb_cloud_open_apidedicatedv1beta1Cluster'
        '400':
          description: A request field is invalid.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '401':
          description: The API key cannot be authenticated.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '403':
          description: The API key does not have permission to access the resource.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '429':
          description: You have exceed the rate limit.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '500':
          description: Internal server error.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
      - name: clusterId
        description: The ID of the cluster to delete.
        in: path
        required: true
        type: string
      - name: validateOnly
        description: If set to `true`, the request is validated but not executed. Defaults to `false`.
        in: query
        required: false
        type: boolean
      tags:
      - Cluster
      x-code-samples:
      - lang: curl
        label: curl
        source: "curl --digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n  --location --request DELETE 'https://dedicated.tidbapi.com/v1beta1/clusters/{clusterId}'"
    patch:
      summary: Update a cluster
      description: 'Updates the configuration of a specific cluster. You can modify the following fields: `tidbNodeSetting`, `tikvNodeSetting`, `tiflashNodeSetting` and `displayName`.'
      operationId: ClusterService_UpdateCluster
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/tidb_cloud_open_apidedicatedv1beta1Cluster'
        '400':
          description: A request field is invalid.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '401':
          description: The API key cannot be authenticated.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '403':
          description: The API key does not have permission to access the resource.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '429':
          description: You have exceed the rate limit.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '500':
          description: Internal server error.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
      - name: clusterId
        description: The ID of the cluster to update.
        in: path
        required: true
        type: string
      - name: cluster
        description: The updated cluster configuration.
        in: body
        required: true
        schema:
          type: object
          properties:
            tidbNodeSetting:
              description: "The TiDB node setting for updating a cluster. \n\nTo get the node spec available configurations of a specific region for a cloud provider, refer to [List node specs](#tag/Region/operation/RegionService_ListNodeSpecs) API."
              allOf:
              - $ref: '#/definitions/v1beta1UpdateClusterRequestTidbNodeSetting'
            tikvNodeSetting:
              description: "The TiKV node setting for updating a cluster. \n\nTo get the node spec available configurations of a specific region for a cloud provider, refer to [List node specs](#tag/Region/operation/RegionService_ListNodeSpecs) API."
              allOf:
              - $ref: '#/definitions/v1beta1UpdateClusterRequestStorageNodeSetting'
            tiflashNodeSetting:
              example:
                nodeCount: 3
                nodeSpecKey: 16C128G
                storageSizeGi: 500
                storageType: Basic
              description: "The TiFlash node setting for updating a cluster. \n\nTo get the node spec available configurations of a specific region for a cloud provider, refer to [List node specs](#tag/Region/operation/RegionService_ListNodeSpecs) API."
              allOf:
              - $ref: '#/definitions/v1beta1UpdateClusterRequestStorageNodeSetting'
            displayName:
              type: string
              example: My Cluster
              description: The display name of the cluster.
            labels:
              type: object
              example: {}
              additionalProperties:
                type: string
              description: "The labels of the cluster. Each label consists of a string key and a string value. \n\n**Note**: Currently, `labels` updates are not supported."
          title: The updated cluster configuration.
      - name: validateOnly
        description: If set to `true`, the request is validated but not executed. Defaults to `false`.
        in: query
        required: false
        type: boolean
      tags:
      - Cluster
      x-code-samples:
      - lang: curl
        label: curl
        source: "curl --digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n  --location --request PATCH 'https://dedicated.tidbapi.com/v1beta1/clusters/{clusterId}' --header 'Content-Type: application/json' --data '{\n  \"displayName\": \"My Cluster Updated By API\",\n  \"tikvNodeSetting\": {\n    \"storageSizeGi\": 500\n  }\n}'"
  /clusters/{clusterId}:pauseCluster:
    post:
      summary: Pause a cluster
      description: Pauses a cluster by ID.
      operationId: ClusterService_PauseCluster
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/v1beta1PauseClusterResponse'
        '400':
          description: A request field is invalid.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '401':
          description: The API key cannot be authenticated.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '403':
          description: The API key does not have permission to access the resource.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '429':
          description: You have exceed the rate limit.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '500':
          description: Internal server error.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
      - name: clusterId
        description: The ID of the cluster to pause.
        in: path
        required: true
        type: string
      tags:
      - Cluster
      x-code-samples:
      - lang: curl
        label: curl
        source: "curl --digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n  --location --request POST 'https://dedicated.tidbapi.com/v1beta1/clusters/{clusterId}:pauseCluster'"
  /clusters/{clusterId}:resumeCluster:
    post:
      summary: Resume a cluster
      description: Resumes a paused cluster. Only clusters in the `PAUSED` state can be resumed.
      operationId: ClusterService_ResumeCluster
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/v1beta1ResumeClusterResponse'
        '400':
          description: A request field is invalid.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '401':
          description: The API key cannot be authenticated.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '403':
          description: The API key does not have permission to access the resource.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '429':
          description: You have exceed the rate limit.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '500':
          description: Internal server error.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
      - name: clusterId
        description: The ID of the cluster to resume.
        in: path
        required: true
        type: string
      tags:
      - Cluster
      x-code-samples:
      - lang: curl
        label: curl
        source: "curl --digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n  --location --request POST 'https://dedicated.tidbapi.com/v1beta1/clusters/{clusterId}:resumeCluster'"
  /clusters/{clusterId}:resetRootPassword:
    post:
      summary: Reset the root password of a cluster
      description: 'Sets a new password for the cluster''s root user. The new password is not returned in the response for security reasons, so save your password in a secure location.


        The cluster must be in the `READY` state. If the cluster is not `READY`, wait until it is before retrying.'
      operationId: ClusterService_ResetRootPassword
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/dedicatedv1beta1ResetRootPasswordResponse'
        '400':
          description: A request field is invalid.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '401':
          description: The API key cannot be authenticated.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '403':
          description: The API key does not have permission to access the resource.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '429':
          description: You have exceed the rate limit.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '500':
          description: Internal server error.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
      - name: clusterId
        description: The ID of the cluster for which to reset the root password.
        in: path
        required: true
        type: string
      - name: body
        in: body
        required: true
        schema:
          $ref: '#/definitions/v1beta1ClusterServiceResetRootPasswordBody'
      tags:
      - Cluster
      x-code-samples:
      - lang: curl
        label: curl
        source: "curl --digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n  --location 'https://dedicated.tidbapi.com/v1beta1/clusters/{clusterId}:resetRootPassword' --header 'Content-Type: application/json' --data '{\n  \"rootPassword\": \"your_new_password\"\n}'"
  /clusters:showNodeQuota:
    get:
      summary: List node quotas for your organization
      description: Lists the node quotas for your organization, including the maximum number of nodes allowed for each component type.
      operationId: ClusterService_ShowNodeQuota
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/v1beta1ShowNodeQuotaResponse'
        '400':
          description: A request field is invalid.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '401':
          description: The API key cannot be authenticated.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '403':
          description: The API key does not have permission to access the resource.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '429':
          description: You have exceed the rate limit.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '500':
          description: Internal server error.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      tags:
      - Cluster
      x-code-samples:
      - lang: curl
        label: curl
        source: "curl --digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n  --location 'https://dedicated.tidbapi.com/v1beta1/clusters:showNodeQuota'"
  /clusters/{clusterId}/logRedactionPolicy:
    get:
      summary: Get log redaction policy
      description: Gets the log redaction policy for a cluster.
      operationId: ClusterService_GetLogRedactionPolicy
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/dedicatedv1beta1LogRedactionPolicy'
        '400':
          description: A request field is invalid.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '401':
          description: The API key cannot be authenticated.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '403':
          description: The API key does not have permission to access the resource.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '429':
          description: You have exceed the rate limit.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        '500':
          description: Internal server error.
          schema:
            $ref: '#/definitions/googlerpcStatus'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
      - name: clusterId
        description: The ID of the cluster for which to get the log redaction policy.
        in: path
        required: true
        type: string
      tags:
      - Cluster
      x-code-samples:
      - lang: curl
        label: curl
        source: "curl --digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n  --location 'https://dedicated.tidbapi.com/v1beta1/clusters/{clusterId}/logRedactionPolicy'"
  /clusters/{cluster.clusterId}:
    patch:
      summary: Update a TiDB Cloud Starter or Essential instance
      operationId: ClusterService_PartialUpdateCluster
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/tidb_cloud_open_apiserverlessv1beta1Cluster'
        '400':
          description: A request field is invalid.
          schema:
            $ref: '#/definitions/googlerpcStatus_2'
        '401':
          description: The API key cannot be authenticated.
          schema:
            $ref: '#/definitions/googlerpcStatus_2'
        '403':
          description: The API key does not have permission to access the resource.
          schema:
            $ref: '#/definitions/googlerpcStatus_2'
        '429':
          description: You have exceed the rate limit.
          schema:
            $ref: '#/definitions/googlerpcStatus_2'
        '500':
          description: Internal server error.
          schema:
            $ref: '#/definitions/googlerpcStatus_2'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus_2'
      parameters:
      - name: cluster.clusterId
        description: The ID of the TiDB Cloud Starter or Essential instance to update.
        in: path
        required: true
        type: string
      - name: body
        in: body
        required: true
        schema:
          $ref: '#/definitions/v1beta1ClusterServicePartialUpdateClusterBody'
      tags:
      - Cluster
      x-codeSamples:
      - label: curl
        lang: cURL
        source: "curl --location --request PATCH 'https://serverless.tidbapi.com/v1beta1/clusters/{cluster_id}' \\\n--digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n--header 'Content-Type: application/json' \\\n--header 'Accept: application/json' \\\n--data '{\n  \"updateMask\": \"displayName\",\n  \"cluster\": {\n    \"displayName\": \"test\",\n    \"spendingLimit\": {\n      \"monthly\": 10000\n    },\n    \"automatedBackupPolicy\": {\n      \"startTime\": \"10:00\"\n    },\n    \"endpoints\": {\n      \"public\": {\n        \"disabled\": false,\n        \"authorizedNetworks\": [\n          {\n            \"startIpAddress\": \"0.0.0.0\",\n            \"endIpAddress\": \"255.255.255.255\",\n            \"displayName\": \"allow-all\"\n          }\n        ]\n      }\n    },\n    \"labels\": {\n      \"label1\": \"label1\"\n    },\n    \"auditLogConfig\": {\n      \"enabled\": true,\n      \"unredacted\": true\n    },\n    \"autoScaling\": {\n      \"minRcu\": 20000,\n      \"maxRcu\": 30000\n    }\n  }\n}'"
  /regions:
    get:
      summary: List available regions for an organization
      description: Before creating a TiDB Cloud Starter or Essential instance, you can use this endpoint to list available regions in your organization.
      operationId: ClusterService_ListRegions
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/tidb_cloud_open_apiserverlessv1beta1ListRegionsResponse'
        '400':
          description: A request field is invalid.
          schema:
            $ref: '#/definitions/googlerpcStatus_2'
        '401':
          description: The API key cannot be authenticated.
          schema:
            $ref: '#/definitions/googlerpcStatus_2'
        '403':
          description: The API key does not have permission to access the resource.
          schema:
            $ref: '#/definitions/googlerpcStatus_2'
        '429':
          description: You have exceed the rate limit.
          schema:
            $ref: '#/definitions/googlerpcStatus_2'
        '500':
          description: Internal server error.
          schema:
            $ref: '#/definitions/googlerpcStatus_2'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus_2'
      tags:
      - Cluster
      x-codeSamples:
      - label: curl
        lang: cURL
        source: 'curl --location ''https://serverless.tidbapi.com/v1beta1/regions'' \

          --digest --user ''YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY'' \

          --header ''Accept: application/json'''
  /api/v1beta/clusters/provider/regions:
    get:
      summary: List the cloud providers, regions and available specifications.
      operationId: ListProviderRegions
      responses:
        '200':
          description: A successful response.
          schema:
            type: object
            properties:
              items:
                type: array
                format: array
                example:
                - cluster_type: DEDICATED
                  cloud_provider: AWS
                  region: us-west-2
                  tidb:
                  - node_size: 8C16G
                    node_quantity_range:
                      min: 1
                      step: 1
                  tikv:
                  - node_size: 8C32G
                    node_quantity_range:
                      min: 3
                      step: 3
                    storage_size_gib_range:
                      min: 500
                      max: 4096
                  tiflash:
                  - node_size: 8C64G
                    node_quantity_range:
                      min: 0
                      step: 1
                    storage_size_gib_range:
                      min: 500
                      max: 2048
                - cluster_type: DEVELOPER
                  cloud_provider: AWS
                  region: us-west-2
                  tidb:
                  - node_size: Shared0
                    node_quantity_range:
                      min: 1
                      step: 1
                  tikv:
                  - node_size: Shared0
                    node_quantity_range:
                      min: 1
                      step: 1
                    storage_size_gib_range:
                      min: 1
                      max: 1
                  tiflash:
                  - node_size: Shared0
                    node_quantity_range:
                      min: 1
                      step: 1
                    storage_size_gib_range:
                      min: 1
                      max: 1
                items:
                  type: object
                  properties:
                    cluster_type:
                      format: enum
                      example: DEDICATED
                      description: 'The cluster type.

                        - `"DEVELOPER"`: a [TiDB Cloud Starter](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#tidb-cloud-serverless) cluster

                        - `"DEDICATED"`: a [TiDB Cloud Dedicated](https://docs.pingcap.com/tidbcloud/select-cluster-tier#tidb-cloud-dedicated) cluster.'
                      type: string
                      enum:
                      - DEDICATED
                      - DEVELOPER
                    cloud_provider:
                      format: string
                      example: AWS
                      description: 'The cloud provider on which your TiDB cluster is hosted.

                        - `"AWS"`: the Amazon Web Services cloud provider

                        - `"GCP"`: the Google Cloud cloud provider'
                      type: string
                      enum:
                      - AWS
                      - GCP
                    region:
                      type: string
                      example: us-west-2
                      description: 'The region in which your TiDB cluster is hosted.


                        For the detailed information on each region, refer to the documentation of the corresponding cloud provider ([AWS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html) | [GCP](https://cloud.google.com/about/locations#americas)).


                        For example, `"us-west-2"` refers to Oregon for AWS.'
                    tidb:
                      type: array
                      items:
                        type: object
                        properties:
                          node_size:
                            type: string
                            example: 8C16G
                            description: The size of the TiDB component in the cluster.
                          node_quantity_range:
                            description: The range and step of node quantity of the TiDB component in the cluster.
                            type: object
                            properties:
                              min:
     

# --- truncated at 32 KB (243 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/pingcap/refs/heads/main/openapi/pingcap-cluster-api-openapi.yml