tidb · Schema

TiDB Cloud Cluster

Schema representing a TiDB Cloud cluster resource, including Dedicated and Serverless variants. Captures the configuration, component specifications, connection details, and operational state of a cluster as managed through the TiDB Cloud API.

Properties

Name Type Description
clusterId string The unique identifier assigned to the cluster by TiDB Cloud.
displayName string The human-readable display name of the cluster.
clusterType string The cluster tier type.
cloudProvider string The cloud provider hosting the cluster.
regionId string The cloud region identifier where the cluster is deployed (e.g., us-east-1 for AWS).
projectId string The TiDB Cloud project ID this cluster belongs to.
tidbVersion string The TiDB database version string running on the cluster (e.g., v7.5.0).
state string The current operational state of the cluster.
createTime string The ISO 8601 timestamp when the cluster was created.
updateTime string The ISO 8601 timestamp when the cluster was last modified.
components object The component node specifications for TiDB, TiKV, and optionally TiFlash.
connectionStrings object The available connection string options for this cluster.
port integer The SQL connection port number for the cluster.
labels object Optional key-value labels attached to the cluster for organizational purposes.
View JSON Schema on GitHub

JSON Schema

tidb-cluster-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://pingcap.com/schemas/tidb/cluster.json",
  "title": "TiDB Cloud Cluster",
  "description": "Schema representing a TiDB Cloud cluster resource, including Dedicated and Serverless variants. Captures the configuration, component specifications, connection details, and operational state of a cluster as managed through the TiDB Cloud API.",
  "type": "object",
  "required": ["clusterId", "displayName", "cloudProvider", "regionId", "state"],
  "properties": {
    "clusterId": {
      "type": "string",
      "description": "The unique identifier assigned to the cluster by TiDB Cloud."
    },
    "displayName": {
      "type": "string",
      "description": "The human-readable display name of the cluster.",
      "minLength": 1,
      "maxLength": 64
    },
    "clusterType": {
      "type": "string",
      "description": "The cluster tier type.",
      "enum": ["DEDICATED", "SERVERLESS"]
    },
    "cloudProvider": {
      "type": "string",
      "description": "The cloud provider hosting the cluster.",
      "enum": ["AWS", "GCP", "AZURE"]
    },
    "regionId": {
      "type": "string",
      "description": "The cloud region identifier where the cluster is deployed (e.g., us-east-1 for AWS)."
    },
    "projectId": {
      "type": "string",
      "description": "The TiDB Cloud project ID this cluster belongs to."
    },
    "tidbVersion": {
      "type": "string",
      "description": "The TiDB database version string running on the cluster (e.g., v7.5.0).",
      "pattern": "^v[0-9]+\\.[0-9]+\\.[0-9]+"
    },
    "state": {
      "type": "string",
      "description": "The current operational state of the cluster.",
      "enum": [
        "CREATING",
        "ACTIVE",
        "PAUSED",
        "RESUMING",
        "DELETING",
        "UPGRADING",
        "MODIFYING",
        "IMPORTING"
      ]
    },
    "createTime": {
      "type": "string",
      "format": "date-time",
      "description": "The ISO 8601 timestamp when the cluster was created."
    },
    "updateTime": {
      "type": "string",
      "format": "date-time",
      "description": "The ISO 8601 timestamp when the cluster was last modified."
    },
    "components": {
      "$ref": "#/$defs/ClusterComponents",
      "description": "The component node specifications for TiDB, TiKV, and optionally TiFlash."
    },
    "connectionStrings": {
      "$ref": "#/$defs/ConnectionStrings",
      "description": "The available connection string options for this cluster."
    },
    "port": {
      "type": "integer",
      "description": "The SQL connection port number for the cluster.",
      "minimum": 1024,
      "maximum": 65535,
      "default": 4000
    },
    "labels": {
      "type": "object",
      "description": "Optional key-value labels attached to the cluster for organizational purposes.",
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "$defs": {
    "ClusterComponents": {
      "type": "object",
      "description": "The component configuration for a TiDB Cloud Dedicated cluster.",
      "properties": {
        "tidb": {
          "$ref": "#/$defs/ComputeComponentSpec",
          "description": "The TiDB compute node configuration."
        },
        "tikv": {
          "$ref": "#/$defs/StorageComponentSpec",
          "description": "The TiKV storage node configuration."
        },
        "tiflash": {
          "$ref": "#/$defs/StorageComponentSpec",
          "description": "The optional TiFlash columnar storage node configuration for analytical queries."
        }
      }
    },
    "ComputeComponentSpec": {
      "type": "object",
      "description": "Specification for a stateless TiDB compute node group.",
      "required": ["nodeSize", "nodeQuantity"],
      "properties": {
        "nodeSize": {
          "type": "string",
          "description": "The node size key identifying the CPU and memory configuration (e.g., 8C16G)."
        },
        "nodeQuantity": {
          "type": "integer",
          "description": "The number of TiDB compute nodes in this group.",
          "minimum": 1
        },
        "vcpu": {
          "type": "integer",
          "description": "The number of virtual CPU cores per node.",
          "minimum": 1
        },
        "memoryGiB": {
          "type": "integer",
          "description": "The amount of memory in GiB per node.",
          "minimum": 1
        }
      }
    },
    "StorageComponentSpec": {
      "type": "object",
      "description": "Specification for a TiKV or TiFlash storage node group with persistent storage.",
      "required": ["nodeSize", "nodeQuantity", "storageSize"],
      "properties": {
        "nodeSize": {
          "type": "string",
          "description": "The node size key identifying the CPU and memory configuration."
        },
        "nodeQuantity": {
          "type": "integer",
          "description": "The number of storage nodes in this group.",
          "minimum": 1
        },
        "storageSize": {
          "type": "integer",
          "description": "The storage capacity per node in GiB.",
          "minimum": 200
        },
        "storageType": {
          "type": "string",
          "description": "The storage class type (e.g., Premium, Basic)."
        }
      }
    },
    "ConnectionStrings": {
      "type": "object",
      "description": "The set of available connection string configurations for a cluster.",
      "properties": {
        "defaultUser": {
          "type": "string",
          "description": "The default database username for this cluster."
        },
        "standard": {
          "$ref": "#/$defs/ConnectionString",
          "description": "The public internet connection string."
        },
        "vpcPeering": {
          "$ref": "#/$defs/ConnectionString",
          "description": "The VPC peering connection string for private network access."
        },
        "privateEndpoint": {
          "$ref": "#/$defs/ConnectionString",
          "description": "The private endpoint connection string."
        }
      }
    },
    "ConnectionString": {
      "type": "object",
      "description": "A connection string specifying the host and port for a cluster.",
      "required": ["host", "port"],
      "properties": {
        "host": {
          "type": "string",
          "description": "The hostname or IP address for the connection."
        },
        "port": {
          "type": "integer",
          "description": "The TCP port number for the connection.",
          "minimum": 1,
          "maximum": 65535
        }
      }
    },
    "ImportTask": {
      "type": "object",
      "description": "A data import task that loads external data files into a TiDB Cloud cluster.",
      "required": ["importId", "clusterId", "sourceType", "state"],
      "properties": {
        "importId": {
          "type": "string",
          "description": "The unique identifier of the import task."
        },
        "clusterId": {
          "type": "string",
          "description": "The ID of the cluster receiving the imported data."
        },
        "sourceType": {
          "type": "string",
          "description": "The source type of the import data.",
          "enum": ["S3", "GCS", "LOCAL"]
        },
        "fileFormat": {
          "type": "string",
          "description": "The file format of the import data.",
          "enum": ["CSV", "SQL", "PARQUET", "AURORA_SNAPSHOT"]
        },
        "state": {
          "type": "string",
          "description": "The current state of the import task.",
          "enum": ["PENDING", "RUNNING", "COMPLETED", "FAILED", "CANCELLED"]
        },
        "progress": {
          "type": "number",
          "description": "The completion percentage of the import task.",
          "minimum": 0,
          "maximum": 100
        },
        "targetDatabase": {
          "type": "string",
          "description": "The target database in the cluster to import data into."
        },
        "createTime": {
          "type": "string",
          "format": "date-time",
          "description": "The ISO 8601 timestamp when the import task was created."
        },
        "errorMessage": {
          "type": "string",
          "description": "An error message if the import task failed."
        },
        "s3Source": {
          "$ref": "#/$defs/S3Source"
        }
      }
    },
    "S3Source": {
      "type": "object",
      "description": "Configuration for importing data from an AWS S3 bucket.",
      "required": ["bucketUri"],
      "properties": {
        "bucketUri": {
          "type": "string",
          "description": "The S3 bucket URI path containing import files (e.g., s3://my-bucket/data/).",
          "pattern": "^s3://"
        },
        "roleArn": {
          "type": "string",
          "description": "The AWS IAM Role ARN granting TiDB Cloud read access to the S3 bucket.",
          "pattern": "^arn:aws:iam::"
        }
      }
    },
    "ApiKey": {
      "type": "object",
      "description": "A TiDB Cloud API key used for authenticating API requests via HTTP Digest Authentication.",
      "required": ["accessKey", "displayName", "role"],
      "properties": {
        "name": {
          "type": "string",
          "description": "The resource name of the API key."
        },
        "accessKey": {
          "type": "string",
          "description": "The public access key used as the username in Digest Authentication."
        },
        "secretKey": {
          "type": "string",
          "description": "The private secret key used as the password. Only returned at creation time and must be stored securely."
        },
        "displayName": {
          "type": "string",
          "description": "The human-readable display name for this API key.",
          "minLength": 1,
          "maxLength": 64
        },
        "role": {
          "type": "string",
          "description": "The permission role assigned to this API key (e.g., Organization Owner, Project Viewer)."
        },
        "projectId": {
          "type": "integer",
          "description": "The project ID this key is scoped to. Zero or absent indicates an organization-level key."
        }
      }
    },
    "AuditLog": {
      "type": "object",
      "description": "A console audit log entry recording an administrative action performed in the TiDB Cloud console.",
      "required": ["eventType", "operationEmail", "result", "timestamp"],
      "properties": {
        "eventType": {
          "type": "string",
          "description": "The type of administrative event that was logged."
        },
        "operationEmail": {
          "type": "string",
          "format": "email",
          "description": "The email address of the user who performed the action."
        },
        "result": {
          "type": "string",
          "description": "The outcome of the action.",
          "enum": ["SUCCESS", "FAILURE"]
        },
        "timestamp": {
          "type": "string",
          "format": "date-time",
          "description": "The ISO 8601 timestamp when the event occurred."
        },
        "clusterId": {
          "type": "string",
          "description": "The cluster ID involved in the event, if applicable."
        },
        "projectId": {
          "type": "string",
          "description": "The project ID involved in the event, if applicable."
        },
        "orgId": {
          "type": "string",
          "description": "The organization ID where the event occurred."
        }
      }
    }
  }
}