{ "swagger": "2.0", "info": { "title": "TiDB Cloud Starter and Essential API", "description": "*TiDB Cloud API is in beta.*\n\nThis API manages [TiDB Cloud Starter](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#tidb-cloud-serverless) and [TiDB Cloud Essential](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#essential) instances. For [TiDB Cloud Dedicated](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#tidb-cloud-dedicated) clusters, use the [TiDB Cloud Dedicated API](https://docs.pingcap.com/tidbcloud/api/v1beta1/dedicated/). For more information about TiDB Cloud API, see [TiDB Cloud API Overview](https://docs.pingcap.com/tidbcloud/api-overview/).\n\n# Overview\n\nThe TiDB Cloud Starter and Essential API is a [REST interface](https://en.wikipedia.org/wiki/Representational_state_transfer) that provides you with programmatic access to manage TiDB Cloud Starter and Essential instances and related resources within TiDB Cloud.\n\nThe API has the following features:\n\n- **JSON entities.** All entities are expressed in JSON.\n- **HTTPS-only.** You can only access the API via HTTPS, ensuring all the data sent over the network is encrypted with TLS.\n- **Key-based access and digest authentication.** Before you access TiDB Cloud API, you must generate an API key. All requests are authenticated through [HTTP Digest Authentication](https://en.wikipedia.org/wiki/Digest_access_authentication), ensuring the API key is never sent over the network.\n\n# Get Started\n\nThis guide helps you make your first API call to TiDB Cloud API. You'll learn how to authenticate a request, build a request, and interpret the response.\n\n## Prerequisites\n\nTo complete this guide, you need to perform the following tasks:\n\n- Create a [TiDB Cloud account](https://tidbcloud.com/free-trial)\n- Install [curl](https://curl.se/)\n\n## Step 1. Create an API key\n\nTo create an API key, log in to your TiDB Cloud console. Navigate to the [**API Keys**](https://tidbcloud.com/org-settings/api-keys) page of your organization, and create an API key.\n\nAn API key contains a public key and a private key. Copy and save them in a secure location. You will need to use the API key later in this guide.\n\nFor more details about creating API keys, refer to [API Key Management](#section/Authentication/API-Key-Management).\n\n## Step 2. Make your first API call\n\n### Build an API call\n\nTiDB Cloud API call consists of the following components:\n\n- **A host**. The host for TiDB Cloud API is \u003chttps://serverless.tidbapi.com\u003e.\n- **An API Key**. The public key and the private key are required for authentication.\n- **A request**. When submitting data to a resource via `POST`, `PATCH`, or `PUT`, you must submit your payload in JSON.\n\nIn this guide, you call the [List all clusters](#tag/Cluster/operation/ClusterService_ListClusters) endpoint. For the detailed description of the endpoint, see the [API reference](#tag/Cluster/operation/ClusterService_ListClusters).\n\n### Call an API endpoint\n\nTo get all TiDB Cloud Starter and Essential instances in your organization, run the following command in your terminal. Remember to change `YOUR_PUBLIC_KEY` to your public key and `YOUR_PRIVATE_KEY` to your private key.\n\n```shell\ncurl --digest \\\n --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n --request GET \\\n --url 'https://serverless.tidbapi.com/v1beta1/clusters'\n```\n\n## Step 3. Check the response\n\nAfter making the API call, if the status code in response is `200` and you see details about all TiDB Cloud Starter and Essential instances in your organization, your request is successful.\n\n# Authentication\n\nThe TiDB Cloud API uses [HTTP Digest Authentication](https://en.wikipedia.org/wiki/Digest_access_authentication). It protects your private key from being sent over the network. For more details about HTTP Digest Authentication, refer to the [IETF RFC](https://datatracker.ietf.org/doc/html/rfc7616).\n\n## API key overview\n\n- The API key contains a public key and a private key, which act as the username and password required in the HTTP Digest Authentication. The private key only displays upon the key creation.\n- The API key belongs to your organization and acts as the `Organization Owner` role. You can check [permissions of owner](https://docs.pingcap.com/tidbcloud/manage-user-access#configure-member-roles).\n- You must provide the correct API key in every request. Otherwise, TiDB Cloud responds with a `401` error.\n\n## API key management\n\n### Create an API key\n\nOnly the **owner** of an organization can create an API key.\n\nTo create an API key in an organization, perform the following steps:\n\n1. In the [TiDB Cloud console](https://tidbcloud.com), switch to your target organization using the combo box in the upper-left corner.\n2. In the left navigation pane, click **Organization Settings** > **API Keys**.\n3. On the **API Keys** page, click **Create API Key**.\n4. Enter a description for your API key.\n5. Configure the role and scope for the API key. For more information about the permissions of a role, see [User roles](https://docs.pingcap.com/tidbcloud/manage-user-access/#user-roles).\n6. Click **Generate API Key**. Copy and save the public key and the private key.\n7. Make sure that you have copied and saved the private key in a secure location. The private key only displays upon the creation. After leaving this page, you will not be able to get the full private key again.\n8. Click **Done**.\n\n### View details of an API key\n\nTo view details of an API key, perform the following steps:\n\n1. In the [TiDB Cloud console](https://tidbcloud.com), switch to your target organization using the combo box in the upper-left corner.\n2. In the left navigation pane, click **Organization Settings** > **API Keys**.\n3. You can view the details of the API keys on the page.\n\n### Edit an API key\n\nOnly the **owner** of an organization can modify an API key.\n\nTo edit an API key in an organization, perform the following steps:\n\n1. In the [TiDB Cloud console](https://tidbcloud.com), switch to your target organization using the combo box in the upper-left corner.\n2. In the left navigation pane, click **Organization Settings** > **API Keys**.\n3. On the **API Keys** page, click **...** in the API key row that you want to change, and then click **Update Role**.\n4. You can update the description and role of the API key.\n5. Click **Update**.\n\n### Delete an API key\n\nOnly the **owner** of an organization can delete an API key.\n\nTo delete an API key in an organization, perform the following steps:\n\n1. In the [TiDB Cloud console](https://tidbcloud.com), switch to your target organization using the combo box in the upper-left corner.\n2. In the left navigation pane, click **Organization Settings** > **API Keys**.\n3. On the **API Keys** page, click **...** in the API key row that you want to delete, and then click **Delete**.\n4. Click **I understand, delete it.**\n\n# Rate Limiting\n\nThe TiDB Cloud API allows up to 100 requests per minute per API key. If you exceed the rate limit, the API returns a `429` error. For more quota, you can [submit a request](https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519) to contact our support team.\n\nEach API request returns the following headers about the limit.\n\n- `X-Ratelimit-Limit-Minute`: The number of requests allowed per minute. It is 100 currently.\n- `X-Ratelimit-Remaining-Minute`: The number of remaining requests in the current minute. When it reaches `0`, the API returns a `429` error and indicates that you exceed the rate limit.\n- `X-Ratelimit-Reset`: The time in seconds at which the current rate limit resets.\n\nIf you exceed the rate limit, an error response returns like this.\n\n```\n\u003e HTTP/2 429\n\u003e date: Fri, 22 Jul 2022 05:28:37 GMT\n\u003e content-type: application/json\n\u003e content-length: 66\n\u003e x-ratelimit-reset: 23\n\u003e x-ratelimit-remaining-minute: 0\n\u003e x-ratelimit-limit-minute: 100\n\u003e x-kong-response-latency: 2\n\u003e server: kong/2.8.1\n\n\u003e {\"details\":[],\"code\":49900007,\"message\":\"The request exceeded the limit of 100 times per apikey per minute. For more quota, please contact us: https://support.pingcap.com/hc/en-us/requests/new?ticket_form_id=7800003722519\"}\n```\n\n# API Changelog\n\nThis changelog lists all changes to the TiDB Cloud API.\n\n\u003c!-- In reverse chronological order --\u003e\n\n## 20260414\n\n- Rename TiDB Cloud Starter and Essential clusters to TiDB Cloud Starter and Essential instances. This is only a terminology change in the API descriptions, which does not affect your API usage.\n\n## 20250812\n\n- Initial release of the TiDB Cloud Starter and Essential API, including the following resources and endpoints:\n\n - Cluster:\n - [List TiDB Cloud Starter and Essential instances](#tag/Cluster/operation/ClusterService_ListClusters)\n - [Create a new TiDB Cloud Starter or Essential instance](#tag/Cluster/operation/ClusterService_CreateCluster)\n - [Get details of a TiDB Cloud Starter or Essential instance](#tag/Cluster/operation/ClusterService_GetCluster)\n - [Delete a TiDB Cloud Starter or Essential instance](#tag/Cluster/operation/ClusterService_DeleteCluster)\n - [Update a TiDB Cloud Starter or Essential instance](#tag/Cluster/operation/ClusterService_PartialUpdateCluster)\n - [List available regions for an organization](#tag/Cluster/operation/ClusterService_ListRegions)\n - Branch:\n - [List branches](#tag/Branch/operation/BranchService_ListBranches)\n - [Create a branch](#tag/Branch/operation/BranchService_CreateBranch)\n - [Get details of a branch](#tag/Branch/operation/BranchService_GetBranch)\n - [Delete a branch](#tag/Branch/operation/BranchService_DeleteBranch)\n - [Reset a branch](#tag/Branch/operation/BranchService_ResetBranch)\n - Export:\n - [List export tasks for a cluster](#tag/Export/operation/ExportService_ListExports)\n - [Create an export task](#tag/Export/operation/ExportService_CreateExport)\n - [Get details of an export task](#tag/Export/operation/ExportService_GetExport)\n - [Delete an export task](#tag/Export/operation/ExportService_DeleteExport)\n - [Cancel an export task](#tag/Export/operation/ExportService_CancelExport)\n - Import:\n - [List import tasks for a cluster](#tag/Import/operation/ImportService_ListImports)\n - [Create an import task](#tag/Import/operation/ImportService_CreateImport)\n - [Get an import task](#tag/Import/operation/ImportService_GetImport)\n - [Cancel an import task](#tag/Import/operation/ImportService_CancelImport)\n", "version": "v1beta1" }, "tags": [ { "name": "Cluster" }, { "name": "Branch" }, { "name": "Export" }, { "name": "Import" } ], "host": "serverless.tidbapi.com", "basePath": "/v1beta1", "schemes": [ "https" ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "paths": { "/clusters": { "get": { "summary": "List TiDB Cloud Starter and Essential instances", "operationId": "ClusterService_ListClusters", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/tidb_cloud_open_apiserverlessv1beta1ListClustersResponse" } }, "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": "pageSize", "description": "The maximum number of TiDB Cloud Starter and Essential instances to return. If not specified, at most 10 instances 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, "maximum": 100, "minimum": 1 }, { "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.\n\n**Note**: When paginating, all other parameters must match the original request.", "in": "query", "required": false, "type": "string" }, { "name": "filter", "description": "An expression that filters the list of TiDB Cloud Starter and Essential instances based on specific criteria. Uses Google AIP syntax with `=` and `AND` operators. You can filter by `region`, `state`, `projectId`, `clusterId`, `displayName`, and `labels`.\n\n**Available filters**:\n- `region.provider`: the cloud provider where the TiDB Cloud Starter or Essential instance is located, such as `aws` or `alicloud`.\n- `region.name`: the name of the region where the TiDB Cloud Starter or Essential instance is located, in the format of `regions/{provider}-{region}`, such as `regions/aws-us-east-1`.\n- `state`: the state of the TiDB Cloud Starter or Essential instance, such as `ACTIVE` or `CREATING`.\n- `projectId`: the ID of the project ID. You can specify multiple values separated by commas.\n- `clusterId`: the ID of the TiDB Cloud Starter or Essential instance. You can specify multiple values separated by commas.\n- `displayName`: the display name of the TiDB Cloud Starter or Essential instance.\n- `labels.{key}`: the labels of the TiDB Cloud Starter or Essential instance, such as `labels.environment=production`.\n\n**Examples**:\n- `filter=region.provider=\"aws\" AND state=\"ACTIVE\"`\n- `filter=projectId=12345 AND displayName=\"my-cluster\"`", "in": "query", "required": false, "type": "string" }, { "name": "skip", "description": "The number of TiDB Cloud Starter and Essential instances to skip before returning results. If the value exceeds the total number of these instances, the response is `200` with an empty list and no `nextPageToken`.", "in": "query", "required": false, "type": "integer", "format": "int32" } ], "tags": [ "Cluster" ], "x-codeSamples": [ { "label": "curl", "lang": "cURL", "source": "curl --location 'https://serverless.tidbapi.com/v1beta1/clusters' \\\n--digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n--header 'Accept: application/json'" } ] }, "post": { "summary": "Create a new TiDB Cloud Starter or Essential instance", "description": "**Note**: To create a TiDB Cloud Essential instance, you must specify valid `autoScaling.minRcu` and `autoScaling.maxRcu` values. Otherwise, a TiDB Cloud Starter instance is created by default.", "operationId": "ClusterService_CreateCluster", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/tidb_cloud_open_apiserverlessv1beta1Cluster" } }, "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": "The TiDB Cloud Starter or Essential instance to create.", "in": "body", "required": true, "schema": { "$ref": "#/definitions/tidb_cloud_open_apiserverlessv1beta1Cluster" } } ], "tags": [ "Cluster" ], "x-codeSamples": [ { "label": "curl", "lang": "cURL", "source": "curl --location 'https://serverless.tidbapi.com/v1beta1/clusters' \\\n--digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n--header 'Content-Type: application/json' \\\n--header 'Accept: application/json' \\\n--data '{\n \"displayName\": \"test\",\n \"labels\": {\n \"tidb.cloud/project\": \"2293484\"\n },\n \"region\": {\n \"name\": \"regions/aws-us-east-1\"\n }\n}'" } ] } }, "/clusters/{clusterId}": { "get": { "summary": "Get details of a TiDB Cloud Starter or Essential instance", "operationId": "ClusterService_GetCluster", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/tidb_cloud_open_apiserverlessv1beta1Cluster" } }, "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 TiDB Cloud Starter or Essential instance to retrieve.", "in": "path", "required": true, "type": "string" }, { "name": "view", "description": "The detail level of the instance information to return.\n\n- `BASIC`: returns only basic instance information.\n- `FULL`: returns complete instance details.", "in": "query", "required": false, "type": "string", "default": "FULL", "enum": [ "BASIC", "FULL" ] } ], "tags": [ "Cluster" ], "x-codeSamples": [ { "label": "curl", "lang": "cURL", "source": "curl --location 'https://serverless.tidbapi.com/v1beta1/clusters/{cluster_id}' \\\n--digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n--header 'Accept: application/json'" } ] }, "delete": { "summary": "Delete a TiDB Cloud Starter or Essential instance", "operationId": "ClusterService_DeleteCluster", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/tidb_cloud_open_apiserverlessv1beta1Cluster" } }, "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 TiDB Cloud Starter or Essential instance to delete.", "in": "path", "required": true, "type": "string" } ], "tags": [ "Cluster" ], "x-codeSamples": [ { "label": "curl", "lang": "cURL", "source": "curl --location --request DELETE 'https://serverless.tidbapi.com/v1beta1/clusters/{cluster_id}' \\\n--digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n--header 'Accept: application/json'" } ] } }, "/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" } }, "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.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" } }, "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-codeSamples": [ { "label": "curl", "lang": "cURL", "source": "curl --location 'https://serverless.tidbapi.com/v1beta1/regions' \\\n--digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n--header 'Accept: application/json'" } ] } }, "/clusters/{clusterId}/branches": { "get": { "summary": "List branches", "operationId": "BranchService_ListBranches", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1beta1ListBranchesResponse" } }, "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 TiDB Cloud Starter or Essential instance to which the [branch](https://docs.pingcap.com/tidbcloud/branch-overview/) belongs.", "in": "path", "required": true, "type": "string" }, { "name": "pageSize", "description": "The maximum number of branches to return. If not specified, at most 10 branches 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, "maximum": 100, "minimum": 1 }, { "name": "pageToken", "description": "The pagination token received from a previous [List branches](#tag/Branch/operation/BranchService_ListBranches) request. Use this token to retrieve the next page of results.\n\n**Note**: When paginating, all other parameters must match the original request.", "in": "query", "required": false, "type": "string" } ], "tags": [ "Branch" ], "x-codeSamples": [ { "label": "curl", "lang": "cURL", "source": "curl --location 'https://serverless.tidbapi.com/v1beta1/clusters/{cluster_id}/branches' \\\n--digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n--header 'Accept: application/json'" } ] }, "post": { "summary": "Create a branch", "operationId": "BranchService_CreateBranch", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1beta1Branch" } }, "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 TiDB Cloud Starter or Essential instance to which the branch belongs.", "in": "path", "required": true, "type": "string" }, { "name": "branch", "description": "The branch being created.", "in": "body", "required": true, "schema": { "$ref": "#/definitions/v1beta1Branch" } } ], "tags": [ "Branch" ], "x-codeSamples": [ { "label": "curl", "lang": "cURL", "source": "curl --location 'https://serverless.tidbapi.com/v1beta1/clusters/{cluster_id}/branches' \\\n--digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n--header 'Content-Type: application/json' \\\n--header 'Accept: application/json' \\\n--data '{\n \"displayName\": \"test\"\n}'" } ] } }, "/clusters/{clusterId}/branches/{branchId}": { "get": { "summary": "Get details of a branch", "operationId": "BranchService_GetBranch", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1beta1Branch" } }, "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 TiDB Cloud Starter or Essential instance to which the branch belongs.", "in": "path", "required": true, "type": "string" }, { "name": "branchId", "description": "The ID of the branch.", "in": "path", "required": true, "type": "string" }, { "name": "view", "description": "The detail level of the branch information to return.\n\n- `BASIC`: returns only basic branch information.\n- `FULL`: returns complete branch details.", "in": "query", "required": false, "type": "string", "default": "FULL", "enum": [ "BASIC", "FULL" ] } ], "tags": [ "Branch" ], "x-codeSamples": [ { "label": "curl", "lang": "cURL", "source": "curl --location 'https://serverless.tidbapi.com/v1beta1/clusters/{cluster_id}/branches/{branch_id}' \\\n--digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n--header 'Accept: application/json'" } ] }, "delete": { "summary": "Delete a branch", "operationId": "BranchService_DeleteBranch", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1beta1Branch" } }, "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 TiDB Cloud Starter or Essential instance to which the branch belongs.", "in": "path", "required": true, "type": "string" }, { "name": "branchId", "description": "The ID of the branch.", "in": "path", "required": true, "type": "string" } ], "tags": [ "Branch" ], "x-codeSamples": [ { "label": "curl", "lang": "cURL", "source": "curl --location --request DELETE 'https://serverless.tidbapi.com/v1beta1/clusters/{cluster_id}/branches/{branch_id}' \\\n--digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n--header 'Accept: application/json'" } ] } }, "/clusters/{clusterId}/branches/{branchId}:reset": { "post": { "summary": "Reset a branch", "description": "Resets a branch to match the current state of its parent branch.", "operationId": "BranchService_ResetBranch", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1beta1Branch" } }, "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 TiDB Cloud Starter or Essential instance to which the branch belongs.", "in": "path", "required": true, "type": "string" }, { "name": "branchId", "description": "The ID of the branch.", "in": "path", "required": true, "type": "string" } ], "tags": [ "Branch" ], "x-codeSamples": [ { "label": "curl", "lang": "cURL", "source": "curl --location --request POST 'https://serverless.tidbapi.com/v1beta1/clusters/{cluster_id}/branches/{branch_id}:reset' \\\n--digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n--header 'Accept: application/json'" } ] } }, "/clusters/{clusterId}/exports": { "get": { "summary": "List export tasks for a TiDB Cloud Starter or Essential instance", "operationId": "ExportService_ListExports", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1beta1ListExportsResponse" } }, "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 TiDB Cloud Starter or Essential instance to list export tasks for.", "in": "path", "required": true, "type": "string" }, { "name": "pageSize", "description": "The maximum number of exports to return. If not specified, at most 10 exports 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, "maximum": 100, "minimum": 1 }, { "name": "pageToken", "description": "The pagination token received from a previous [List export tasks](#tag/Export/operation/ExportService_ListExports) request. Use this token to retrieve the next page of results.\n\n**Note**: When paginating, all other parameters must match the original request.", "in": "query", "required": false, "type": "string" }, { "name": "orderBy", "description": "Specifies the sorting order of results. Use a comma-separated list of field names, optionally appending `desc` for descending order. For example, `createTime desc`. By default, fields are sorted in ascending order.\n\nSupported field: `createTime`.", "in": "query", "required": false, "type": "string" } ], "tags": [ "Export" ], "x-codeSamples": [ { "label": "curl", "lang": "cURL", "source": "curl --location 'https://serverless.tidbapi.com/v1beta1/clusters/{cluster_id}/exports' \\\n--digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n--header 'Content-Type: application/json' \\\n--header 'Accept: application/json' \\\n--data '{\n \"exportOptions\": {\n \"fileType\": \"PARQUET\",\n \"filter\": {\n \"table\": {\n \"patterns\": [\n \"test.*\"\n ]\n }\n },\n \"parquetFormat\": {\n \"compression\": \"GZIP\"\n }\n },\n \"target\": {\n \"type\": \"LOCAL\"\n }\n}'" } ] }, "post": { "summary": "Create an export task", "operationId": "ExportService_CreateExport", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1beta1Export" } }, "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 TiDB Cloud Starter or Essential instance.", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ExportServiceCreateExportBody" } } ], "tags": [ "Export" ], "x-codeSamples": [ { "label": "curl", "lang": "cURL", "source": "curl --location 'https://serverless.tidbapi.com/v1beta1/clusters/{cluster_id}/exports' \\\n--digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n--header 'Content-Type: application/json' \\\n--header 'Accept: application/json' \\\n--data '{\n \"exportOptions\": {\n \"fileType\": \"PARQUET\",\n \"filter\": {\n \"table\": {\n \"patterns\": [\n \"test.*\"\n ]\n }\n },\n \"parquetFormat\": {\n \"compression\": \"GZIP\"\n }\n },\n \"target\": {\n \"type\": \"LOCAL\"\n }\n}'" } ] } }, "/clusters/{clusterId}/exports/{exportId}": { "get": { "summary": "Get details of an export task", "operationId": "ExportService_GetExport", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1beta1Export" } }, "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 TiDB Cloud Starter or Essential instance.", "in": "path", "required": true, "type": "string" }, { "name": "exportId", "description": "The ID of the export task to retrieve.", "in": "path", "required": true, "type": "string" } ], "tags": [ "Export" ], "x-codeSamples": [ { "label": "curl", "lang": "cURL", "source": "curl --location 'https://serverless.tidbapi.com/v1beta1/clusters/{cluster_id}/exports/{export_id}' \\\n--digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n--header 'Accept: application/json'" } ] }, "delete": { "summary": "Delete an export task", "operationId": "ExportService_DeleteExport", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1beta1Export" } }, "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 TiDB Cloud Starter or Essential instance.", "in": "path", "required": true, "type": "string" }, { "name": "exportId", "description": "The ID of the export task to delete.", "in": "path", "required": true, "type": "string" } ], "tags": [ "Export" ], "x-codeSamples": [ { "label": "curl", "lang": "cURL", "source": "curl --location --request DELETE 'https://serverless.tidbapi.com/v1beta1/clusters/{cluster_id}/exports/{export_id}' \\\n--digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n--header 'Accept: application/json'" } ] } }, "/clusters/{clusterId}/exports/{exportId}:cancel": { "post": { "summary": "Cancel an export task", "operationId": "ExportService_CancelExport", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1beta1Export" } }, "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 TiDB Cloud Starter or Essential instance.", "in": "path", "required": true, "type": "string" }, { "name": "exportId", "description": "The ID of the export task to cancel.", "in": "path", "required": true, "type": "string" } ], "tags": [ "Export" ], "x-codeSamples": [ { "label": "curl", "lang": "cURL", "source": "curl --location --request POST 'https://serverless.tidbapi.com/v1beta1/clusters/{cluster_id}/exports/{export_id}:cancel' \\\n--digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n--header 'Accept: application/json'" } ] } }, "/clusters/{clusterId}/imports": { "get": { "summary": "List import tasks for a TiDB Cloud Starter or Essential instance", "operationId": "ImportService_ListImports", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1beta1ListImportsResponse" } }, "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 TiDB Cloud Starter or Essential instance to list import tasks for.", "in": "path", "required": true, "type": "string" }, { "name": "pageToken", "description": "The pagination token received from a previous [List import tasks](#tag/Import/operation/ImportService_ListImports) request. Use this token to retrieve the next page of results.\n\n**Note**: When paginating, all other parameters must match the original request.", "in": "query", "required": false, "type": "string" }, { "name": "pageSize", "description": "The maximum number of import tasks to return. If not specified, at most 10 import tasks 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, "maximum": 100, "minimum": 1 }, { "name": "orderBy", "description": "Specifies the sorting order of results. Use a comma-separated list of field names, optionally appending `desc` for descending order. For example, `createTime desc`. By default, fields are sorted in ascending order.\n\nSupported field: `createTime`.", "in": "query", "required": false, "type": "string" } ], "tags": [ "Import" ], "x-codeSamples": [ { "label": "curl", "lang": "cURL", "source": "curl --location 'https://serverless.tidbapi.com/v1beta1/clusters/{cluster_id}/imports' \\\n--digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n--header 'Accept: application/json'" } ] }, "post": { "summary": "Create an import task", "operationId": "ImportService_CreateImport", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1beta1Import" } }, "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 target TiDB Cloud Starter or Essential instance where data will be imported.", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ImportServiceCreateImportBody" } } ], "tags": [ "Import" ], "x-codeSamples": [ { "label": "curl", "lang": "cURL", "source": "curl --location 'https://serverless.tidbapi.com/v1beta1/clusters/{cluster_id}/imports' \\\n--digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n--header 'Content-Type: application/json' \\\n--header 'Accept: application/json' \\\n--data '{\n \"importOptions\": {\n \"fileType\": \"SQL\"\n },\n \"source\": {\n \"type\": \"S3\",\n \"s3\": {\n \"uri\": \"s3://tidbcloud-sample-data/data-ingestion/\",\n \"authType\": \"ROLE_ARN\",\n \"roleArn\": \"arn:aws:iam::801626783489:role/import-sample-access\"\n }\n }\n}'" } ] } }, "/clusters/{clusterId}/imports/{id}": { "get": { "summary": "Get details of an import task", "operationId": "ImportService_GetImport", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1beta1Import" } }, "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 TiDB Cloud Starter or Essential instance.", "in": "path", "required": true, "type": "string" }, { "name": "id", "description": "The ID of the import task.", "in": "path", "required": true, "type": "string" } ], "tags": [ "Import" ], "x-codeSamples": [ { "label": "curl", "lang": "cURL", "source": "curl --location 'https://serverless.tidbapi.com/v1beta1/clusters/{cluster_id}/imports/{import_id}' \\\n--digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n--header 'Accept: application/json'" } ] } }, "/clusters/{clusterId}/imports/{id}:cancel": { "post": { "summary": "Cancel an import task", "operationId": "ImportService_CancelImport", "responses": { "200": { "description": "A successful response.", "schema": { "type": "object", "properties": {} } }, "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 TiDB Cloud Starter or Essential instance.", "in": "path", "required": true, "type": "string" }, { "name": "id", "description": "The ID of the import task.", "in": "path", "required": true, "type": "string" } ], "tags": [ "Import" ], "x-codeSamples": [ { "label": "curl", "lang": "cURL", "source": "curl --location --request POST 'https://serverless.tidbapi.com/v1beta1/clusters/{cluster_id}/imports/{import_id}:cancel' \\\n--digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n--header 'Accept: application/json'" } ] } } }, "definitions": { "ClusterSpendingLimit": { "type": "object", "properties": { "monthly": { "type": "integer", "format": "int32", "description": "The maximum spending limit for the TiDB Cloud Starter instance per month, in USD cents." } }, "description": "Message for spending limit configuration." }, "ExportOptionsFilterTable": { "type": "object", "properties": { "patterns": { "type": "array", "items": { "type": "string" }, "description": "A list of [table-filter](https://docs.pingcap.com/tidb/stable/table-filter/#syntax) patterns." }, "where": { "type": "string", "description": "Filters the exported tables with the `WHERE` condition." } } }, "ExportOptionsParquetFormat": { "type": "object", "properties": { "compression": { "description": "The Parquet compression algorithm.", "allOf": [ { "$ref": "#/definitions/v1beta1ExportParquetCompressionTypeEnum" } ] } } }, "ExportServiceCreateExportBody": { "type": "object", "properties": { "exportOptions": { "description": "The configuration options for the export task.", "allOf": [ { "$ref": "#/definitions/v1beta1ExportOptions" } ] }, "target": { "description": "The destination configuration for where the exported data is stored.", "allOf": [ { "$ref": "#/definitions/v1beta1ExportTarget" } ] }, "displayName": { "type": "string", "default": "SNAPSHOT_{snapshot_time}", "description": "The display name of the export task." } } }, "ImportServiceCreateImportBody": { "type": "object", "properties": { "importOptions": { "description": "The configuration options for the import task.", "allOf": [ { "$ref": "#/definitions/v1beta1ImportOptions" } ] }, "source": { "description": "The data source for the import task.", "allOf": [ { "$ref": "#/definitions/v1beta1ImportSource" } ] } }, "required": [ "importOptions", "source" ] }, "PrivateALICLOUD": { "type": "object", "properties": { "serviceName": { "type": "string", "description": "The Alibaba Cloud service name for private access.", "readOnly": true }, "availabilityZone": { "type": "array", "items": { "type": "string" }, "description": "A list of availability zones where the service is available.", "readOnly": true } }, "description": "The [Alibaba Cloud PrivateLink](https://www.alibabacloud.com/help/en/privatelink/product-overview/what-is-a-private-network-connection) configuration for private access." }, "commonv1beta1ClusterState": { "type": "string", "enum": [ "CREATING", "ACTIVE", "RESTORING", "DELETED" ], "description": "Enum of possible states of a TiDB Cloud Starter or Essential instance.\n\n - CREATING: Instance is being created.\n - ACTIVE: Instance is active for use.\n - RESTORING: Instance data is being restored.\n - DELETED: Instance has been deleted." }, "commonv1beta1Region": { "type": "object", "properties": { "name": { "type": "string", "example": "regions/aws-us-west-2", "description": "The unique name of the region, in the format of `regions/{region_id}`. For example, `regions/aws-us-west-2`.", "pattern": "^regions/(aws|alicloud)-(.+)$" }, "regionId": { "type": "string", "example": "aws-us-west-2", "description": "The unique identifier of the region, in the format of `{cloud_provider}-{region_code}`. For example, `aws-us-west-2`.", "readOnly": true, "pattern": "^(aws|alicloud)-[a-z0-9-]+$" }, "cloudProvider": { "example": "aws", "description": "The cloud provider that offers the region.\n\n- `\"aws\"`: Amazon Web Services\n\n- `\"alicloud\"`: Alibaba Cloud", "readOnly": true, "allOf": [ { "$ref": "#/definitions/v1beta1RegionCloudProvider" } ] }, "displayName": { "type": "string", "example": "Oregon (us-west-2)", "description": "A human-readable name for the region. For example, `Oregon (us-west-2)`.", "readOnly": true }, "provider": { "type": "string", "x-nullable": true, "example": "aws", "description": "**Deprecated.** Use `cloudProvider` instead. The name of the cloud provider. For example, `aws` or `alicloud`.", "readOnly": true }, "servicePlans": { "type": "array", "example": [ "Starter", "Essential" ], "items": { "$ref": "#/definitions/commonv1beta1ServicePlan" }, "description": "The plan of the service.\n\n- `Starter`: [TiDB Cloud Starter](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#tidb-cloud-serverless)\n- `Essential`: [TiDB Cloud Essential](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#essential)", "readOnly": true } }, "description": "A representation of a region for deploying TiDB Cloud Starter and Essential instances." }, "commonv1beta1ServicePlan": { "type": "string", "enum": [ "Starter", "Essential" ] }, "googlerpcStatus": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "description": "The error code returned with this error." }, "message": { "type": "string", "description": "The error message returned with this error." }, "details": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/protobufAny" }, "description": "A list of messages with additional error details." } }, "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). Each `Status` message contains\nthree pieces of data: error code, error message, and error details.\n\nYou can find out more about this error model and how to work with it in the\n[API Design Guide](https://cloud.google.com/apis/design/errors)." }, "protobufAny": { "type": "object", "properties": { "@type": { "type": "string", "description": "A URL or resource name that uniquely identifies the type of the serialized protocol buffer message." } }, "additionalProperties": {}, "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" }, "serverlessv1beta1ClusterHighAvailabilityType": { "type": "string", "enum": [ "ZONAL", "REGIONAL" ], "description": "The high availability configuration for the cluster.\n\n- `ZONAL`: high availability within a single availability zone. For more information, see [Zonal high availability architecture](https://docs.pingcap.com/tidbcloud/serverless-high-availability/#zonal-high-availability-architecture).\n- `REGIONAL`: high availability across multiple availability zones within a region. For more information, see [Regional high availability architecture](https://docs.pingcap.com/tidbcloud/serverless-high-availability/#regional-high-availability-architecture)." }, "tidb_cloud_open_apiserverlessv1beta1Cluster": { "type": "object", "properties": { "name": { "type": "string", "description": "The unique identifier for the TiDB Cloud Starter or Essential instance, which is generated by the API and follows the format `clusters/{clusterId}`.", "readOnly": true }, "clusterId": { "type": "string", "description": "The ID of the TiDB Cloud Starter or Essential instance.", "readOnly": true }, "displayName": { "type": "string", "example": "foo-bar", "description": "The user-defined name of the TiDB Cloud Starter or Essential instance.", "maxLength": 64, "minLength": 4, "pattern": "^[A-Za-z0-9][-A-Za-z0-9]{2,62}[A-Za-z0-9]$" }, "region": { "description": "The region where the TiDB Cloud Starter or Essential instance is deployed.", "allOf": [ { "$ref": "#/definitions/commonv1beta1Region" } ] }, "spendingLimit": { "description": "The [spending limit](https://docs.pingcap.com/tidbcloud/tidb-cloud-glossary/#spending-limit) for the TiDB Cloud Starter instance.", "allOf": [ { "$ref": "#/definitions/ClusterSpendingLimit" } ] }, "automatedBackupPolicy": { "description": "The schedule and retention rules for automated database backups.", "allOf": [ { "$ref": "#/definitions/v1beta1ClusterAutomatedBackupPolicy" } ] }, "endpoints": { "description": "The connection endpoints for accessing the TiDB Cloud Starter or Essential instance.", "allOf": [ { "$ref": "#/definitions/v1beta1ClusterEndpoints" } ] }, "rootPassword": { "type": "string", "example": "my-shining-password", "description": "The root password of the TiDB Cloud Starter or Essential instance. It must be between 8 and 64 characters long and can contain letters, numbers, and special characters.", "maxLength": 64, "minLength": 8, "pattern": "^.{8,64}$" }, "encryptionConfig": { "description": "The data encryption settings for the TiDB Cloud Starter or Essential instance.", "allOf": [ { "$ref": "#/definitions/v1beta1ClusterEncryptionConfig" } ] }, "highAvailabilityType": { "$ref": "#/definitions/serverlessv1beta1ClusterHighAvailabilityType" }, "version": { "type": "string", "description": "The TiDB version of the TiDB Cloud Starter or Essential instance.", "readOnly": true }, "createdBy": { "type": "string", "description": "The email address of the user who create the TiDB Cloud Starter or Essential instance.", "readOnly": true }, "userPrefix": { "type": "string", "description": "The unique prefix automatically generated for SQL usernames on this TiDB Cloud Starter or Essential instance. TiDB Cloud uses this prefix to distinguish between TiDB Cloud Starter and Essential instances. For more information, see [User name prefix](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#user-name-prefix).", "readOnly": true }, "state": { "description": "The current state of the TiDB Cloud Starter or Essential instance.", "readOnly": true, "allOf": [ { "$ref": "#/definitions/commonv1beta1ClusterState" } ] }, "labels": { "type": "object", "additionalProperties": { "type": "string" }, "description": "The labels for the TiDB Cloud Starter or Essential instance.\n\n- `tidb.cloud/organization`: the ID of the organization where the TiDB Cloud Starter or Essential instance belongs.\n- `tidb.cloud/project`: the ID of the project where the TiDB Cloud Starter or Essential instance belongs." }, "annotations": { "type": "object", "additionalProperties": { "type": "string" }, "description": "The annotations for the TiDB Cloud Starter or Essential instance. The following lists some predefined annotations.\n\n- `tidb.cloud/has-set-password`: indicates whether the TiDB Cloud Starter or Essential instance has a root password set.\n- `tidb.cloud/available-features`: lists available features of the TiDB Cloud Starter or Essential instance.", "readOnly": true }, "createTime": { "type": "string", "format": "date-time", "description": "The timestamp when the TiDB Cloud Starter or Essential instance was created, in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.", "readOnly": true }, "updateTime": { "type": "string", "format": "date-time", "description": "The timestamp when the TiDB Cloud Starter or Essential instance was last updated, in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.", "readOnly": true }, "autoScaling": { "description": "The auto-scaling configuration for the TiDB Cloud Essential instance. This field is required to create a TiDB Cloud Essential instance.", "allOf": [ { "$ref": "#/definitions/v1beta1ClusterAutoScaling" } ] }, "servicePlan": { "description": "The plan of the service.\n\n- `Starter`: [TiDB Cloud Starter](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#tidb-cloud-serverless)\n- `Essential`: [TiDB Cloud Essential](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#essential)", "readOnly": true, "allOf": [ { "$ref": "#/definitions/commonv1beta1ServicePlan" } ] } }, "description": "Message for a TiDB Cloud Starter or Essential instance.", "required": [ "displayName", "region" ] }, "tidb_cloud_open_apiserverlessv1beta1ListClustersResponse": { "type": "object", "properties": { "clusters": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/tidb_cloud_open_apiserverlessv1beta1Cluster" }, "description": "A list of TiDB Cloud Starter and Essential instances that match the query." }, "nextPageToken": { "type": "string", "description": "The token to retrieve the next page of results. Use this value as the `pageToken` parameter in the next request. This field is empty when there are no more pages." }, "totalSize": { "type": "integer", "format": "int64", "description": "The total number of TiDB Cloud Starter and Essential instances that match the query." } }, "description": "Responses message to the request for listing of TiDB Cloud Starter and Essential instances." }, "tidb_cloud_open_apiserverlessv1beta1ListRegionsResponse": { "type": "object", "properties": { "regions": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/commonv1beta1Region" }, "description": "A list of available regions." } }, "description": "Responses message to the request for listing of available regions in TiDB Cloud Starter and Essential." }, "v1beta1AzureBlobSource": { "type": "object", "properties": { "authType": { "description": "The authentication method for accessing the Azure Blob Storage source.", "allOf": [ { "$ref": "#/definitions/v1beta1ImportAzureBlobAuthTypeEnum" } ] }, "sasToken": { "type": "string", "description": "The Shared Access Signature (SAS) token for accessing the Azure Blob Storage source." }, "uri": { "type": "string", "description": "The Azure Blob Storage URI of the import source, in the format of `azure://\u003caccount\u003e.blob.core.windows.net/\u003ccontainer\u003e/\u003cpath\u003e` or `https://\u003caccount\u003e.blob.core.windows.net/\u003ccontainer\u003e/\u003cpath\u003e`." } }, "required": [ "authType", "uri" ] }, "v1beta1AzureBlobTarget": { "type": "object", "properties": { "authType": { "description": "The authentication method for accessing Azure Blob Storage.", "allOf": [ { "$ref": "#/definitions/v1beta1ExportAzureBlobAuthTypeEnum" } ] }, "sasToken": { "type": "string", "description": "The Shared Access Signature (SAS) token for accessing Azure Blob Storage." }, "uri": { "type": "string", "description": "The Azure Blob URI of the export target, in the format of `azure://\u003caccount\u003e.blob.core.windows.net/\u003ccontainer\u003e/\u003cpath\u003e` or `https://\u003caccount\u003e.blob.core.windows.net/\u003ccontainer\u003e/\u003cpath\u003e`." } }, "required": [ "authType", "uri" ] }, "v1beta1Branch": { "type": "object", "properties": { "name": { "type": "string", "description": "The unique identifier for the branch.", "readOnly": true }, "branchId": { "type": "string", "description": "The system-generated ID of the branch.", "readOnly": true }, "displayName": { "type": "string", "description": "The user-defined name of the branch." }, "clusterId": { "type": "string", "description": "The ID of the TiDB Cloud Starter or Essential instance to which the branch belongs.", "readOnly": true }, "parentId": { "type": "string", "description": "The ID of the branch parent." }, "createdBy": { "type": "string", "description": "The email address of the user who create the branch.", "readOnly": true }, "state": { "description": "The state of the branch.", "readOnly": true, "allOf": [ { "$ref": "#/definitions/v1beta1BranchState" } ] }, "endpoints": { "description": "The connection endpoints for accessing the branch.", "readOnly": true, "allOf": [ { "$ref": "#/definitions/v1beta1BranchEndpoints" } ] }, "userPrefix": { "type": "string", "x-nullable": true, "description": "The unique prefix automatically generated for SQL usernames on this TiDB Cloud Starter or Essential instance. TiDB Cloud uses this prefix to distinguish between TiDB Cloud Starter and Essential instances. For more information, see [User name prefix](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#user-name-prefix).", "readOnly": true }, "createTime": { "type": "string", "format": "date-time", "description": "The timestamp when the branch was created, in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.", "readOnly": true }, "updateTime": { "type": "string", "format": "date-time", "description": "The timestamp when the branch was last updated, in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.", "readOnly": true }, "annotations": { "type": "object", "additionalProperties": { "type": "string" }, "description": "The annotations for the branch." }, "parentDisplayName": { "type": "string", "description": "The display name of the parent branch from which the branch was created.", "readOnly": true }, "parentTimestamp": { "type": "string", "format": "date-time", "x-nullable": true, "description": "The point in time on the parent branch from which the branch is created. The timestamp is truncated to seconds without rounding." } }, "description": "Message for branch.", "required": [ "displayName" ] }, "v1beta1BranchEndpoints": { "type": "object", "properties": { "public": { "description": "The public endpoint configuration for connecting to the branch.", "allOf": [ { "$ref": "#/definitions/v1beta1BranchEndpointsPublic" } ] }, "private": { "description": "The private endpoint for securely connecting to the branch.", "readOnly": true, "allOf": [ { "$ref": "#/definitions/v1beta1BranchEndpointsPrivate" } ] } }, "description": "Message for the Endpoints for this branch." }, "v1beta1BranchEndpointsPrivate": { "type": "object", "properties": { "host": { "type": "string", "description": "The hostname of the private endpoint.", "readOnly": true }, "port": { "type": "integer", "format": "int32", "description": "The port number of the private endpoint.", "readOnly": true }, "aws": { "description": "The [AWS PrivateLink](https://aws.amazon.com/privatelink/) configuration details for private access.", "readOnly": true, "allOf": [ { "$ref": "#/definitions/v1beta1BranchEndpointsPrivateAWS" } ] } }, "description": "Message for Private Endpoint for this branch." }, "v1beta1BranchEndpointsPrivateAWS": { "type": "object", "properties": { "serviceName": { "type": "string", "description": "The AWS service name for private access.", "readOnly": true }, "availabilityZone": { "type": "array", "items": { "type": "string" }, "description": "A list of availability zones where the service is available.", "readOnly": true } }, "description": "Message for AWS Private Link Service." }, "v1beta1BranchEndpointsPublic": { "type": "object", "properties": { "host": { "type": "string", "description": "The hostname of the public endpoint.", "readOnly": true }, "port": { "type": "integer", "format": "int32", "description": "The port number of the public endpoint.", "readOnly": true }, "disabled": { "type": "boolean", "description": "Indicates whether the public endpoint is disabled." }, "authorizedNetworks": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/v1beta1BranchEndpointsPublicAuthorizedNetwork" }, "description": "The list of networks that are allowed to connect to the branch.", "readOnly": true } }, "description": "Message for Public Endpoint for this branch." }, "v1beta1BranchEndpointsPublicAuthorizedNetwork": { "type": "object", "properties": { "displayName": { "type": "string", "description": "The display name of the authorized network." }, "startIpAddress": { "type": "string", "description": "The starting IP address of the authorized network range." }, "endIpAddress": { "type": "string", "description": "The ending IP address of the authorized network range." } } }, "v1beta1BranchState": { "type": "string", "enum": [ "CREATING", "ACTIVE", "DELETED", "RESTORING" ], "description": "Branch State.\n\n - CREATING: The branch is creating.\n - ACTIVE: The branch is active and running.\n - DELETED: The branch is deleted.\n - RESTORING: The branch is restoring." }, "v1beta1BranchViewEnum": { "type": "string", "enum": [ "BASIC", "FULL" ] }, "v1beta1ClusterAutoScaling": { "type": "object", "properties": { "minRcu": { "type": "integer", "format": "int64", "description": "The minimum number of Request Capacity Units (RCUs) for auto-scaling. The value must be greater than or equal to `2000` and less than or equal to `maxRcu`.", "minimum": 2000 }, "maxRcu": { "type": "integer", "format": "int64", "description": "The maximum number of Request Capacity Units (RCUs) for auto-scaling. The value must be less than or equal to `100000` and greater than or equal to `minRcu`.", "maximum": 100000 } }, "description": "Message for auto scaling configuration." }, "v1beta1ClusterAutomatedBackupPolicy": { "type": "object", "properties": { "startTime": { "type": "string", "description": "The UTC time of day in `HH:mm` format when the automated backup starts." }, "retentionDays": { "type": "integer", "format": "int32", "description": "The number of days to retain automated backups." } }, "description": "Message for automated backup configuration for a cluster." }, "v1beta1ClusterEncryptionConfig": { "type": "object", "properties": { "enhancedEncryptionEnabled": { "type": "boolean", "description": "Indicates whether enhanced data encryption is enabled." } }, "description": "Message for encryption settings for a TiDB Cloud Starter or Essential instance." }, "v1beta1ClusterEndpoints": { "type": "object", "properties": { "public": { "description": "The public endpoint configuration for connecting to the TiDB Cloud Starter or Essential instance. For more information, see [Network](https://docs.pingcap.com/tidbcloud/connect-to-tidb-cluster-serverless/#network).", "allOf": [ { "$ref": "#/definitions/v1beta1ClusterEndpointsPublic" } ] }, "private": { "description": "The private endpoint for securely connecting to the TiDB Cloud Starter or Essential instance. For more information, see [Network](https://docs.pingcap.com/tidbcloud/connect-to-tidb-cluster-serverless/#network).", "readOnly": true, "allOf": [ { "$ref": "#/definitions/v1beta1ClusterEndpointsPrivate" } ] } }, "description": "Message for endpoint information for connecting to a TiDB Cloud Starter or Essential instance." }, "v1beta1ClusterEndpointsPrivate": { "type": "object", "properties": { "host": { "type": "string", "description": "The hostname of the private endpoint.", "readOnly": true }, "port": { "type": "integer", "format": "int32", "description": "The port number of the private endpoint.", "readOnly": true }, "aws": { "readOnly": true, "allOf": [ { "$ref": "#/definitions/v1beta1ClusterEndpointsPrivateAWS" } ] }, "alicloud": { "readOnly": true, "allOf": [ { "$ref": "#/definitions/PrivateALICLOUD" } ] } }, "description": "Message for private endpoint to securely connect to the TiDB Cloud Starter or Essential instance." }, "v1beta1ClusterEndpointsPrivateAWS": { "type": "object", "properties": { "serviceName": { "type": "string", "description": "The AWS service name for private access.", "readOnly": true }, "availabilityZone": { "type": "array", "items": { "type": "string" }, "description": "A list of availability zones where the service is available.", "readOnly": true } }, "description": "The [AWS PrivateLink](https://aws.amazon.com/privatelink/) configuration details for private access." }, "v1beta1ClusterEndpointsPublic": { "type": "object", "properties": { "host": { "type": "string", "description": "The hostname of the public endpoint.", "readOnly": true }, "port": { "type": "integer", "format": "int32", "description": "The port number of the public endpoint.", "readOnly": true }, "disabled": { "type": "boolean", "description": "Indicates whether the public endpoint is disabled." }, "authorizedNetworks": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/v1beta1ClusterEndpointsPublicAuthorizedNetwork" }, "description": "The list of networks that are allowed to connect to the TiDB Cloud Starter or Essential instance." } }, "description": "Message for public endpoint to connect to the TiDB Cloud Starter or Essential instance." }, "v1beta1ClusterEndpointsPublicAuthorizedNetwork": { "type": "object", "properties": { "startIpAddress": { "type": "string", "description": "The starting IP address of the authorized network range." }, "endIpAddress": { "type": "string", "description": "The ending IP address of the authorized network range." }, "displayName": { "type": "string", "description": "The display name of the authorized network." } }, "required": [ "startIpAddress", "endIpAddress", "displayName" ] }, "v1beta1ClusterServicePartialUpdateClusterBody": { "type": "object", "properties": { "cluster": { "type": "object", "properties": { "displayName": { "type": "string", "description": "The user-defined name of the TiDB Cloud Starter or Essential instance." }, "spendingLimit": { "description": "The [spending limit](https://docs.pingcap.com/tidbcloud/tidb-cloud-glossary/#spending-limit) for the TiDB Cloud Starter instance.", "allOf": [ { "$ref": "#/definitions/ClusterSpendingLimit" } ] }, "automatedBackupPolicy": { "description": "The schedule and retention rules for automated database backups.", "allOf": [ { "$ref": "#/definitions/v1beta1ClusterAutomatedBackupPolicy" } ] }, "endpoints": { "description": "The connection endpoints for accessing the TiDB Cloud Starter or Essential instance.", "allOf": [ { "$ref": "#/definitions/v1beta1ClusterEndpoints" } ] }, "labels": { "type": "object", "additionalProperties": { "type": "string" }, "description": "The labels for the TiDB Cloud Starter or Essential instance.\n\n- `tidb.cloud/organization`: the ID of the organization where the TiDB Cloud Starter or Essential instance belongs.\n- `tidb.cloud/project`: the ID of the project where the TiDB Cloud Starter or Essential instance belongs." }, "autoScaling": { "description": "The auto-scaling configuration for the TiDB Cloud Essential instance.", "allOf": [ { "$ref": "#/definitions/v1beta1ClusterAutoScaling" } ] } }, "description": "The updated configuration of the TiDB Cloud Starter or Essential instance." }, "updateMask": { "type": "string", "description": "Specifies which fields to update in the TiDB Cloud Starter or Essential instance." } }, "description": "Message for requesting a partial update on a TiDB Cloud Starter or Essential instance.", "required": [ "updateMask" ] }, "v1beta1ClusterViewEnum": { "type": "string", "enum": [ "BASIC", "FULL" ] }, "v1beta1CreationDetails": { "type": "object", "properties": { "importOptions": { "description": "The configuration options for the import task.", "readOnly": true, "allOf": [ { "$ref": "#/definitions/v1beta1ImportOptions" } ] }, "source": { "description": "The data source for the import task.", "readOnly": true, "allOf": [ { "$ref": "#/definitions/v1beta1ImportSource" } ] } } }, "v1beta1Export": { "type": "object", "properties": { "exportId": { "type": "string", "description": "The unique ID of the export task.", "readOnly": true }, "name": { "type": "string", "description": "The unique identifier for the export task.", "readOnly": true }, "clusterId": { "type": "string", "description": "The ID of the TiDB Cloud Starter or Essential instance to which the export task belongs." }, "createdBy": { "type": "string", "description": "The email address of the user who create the export task.", "readOnly": true }, "state": { "description": "The state of the export task.", "readOnly": true, "allOf": [ { "$ref": "#/definitions/v1beta1ExportStateEnum" } ] }, "exportOptions": { "description": "The configuration options for the export task.", "allOf": [ { "$ref": "#/definitions/v1beta1ExportOptions" } ] }, "target": { "description": "The destination configuration for where the exported data is stored.", "allOf": [ { "$ref": "#/definitions/v1beta1ExportTarget" } ] }, "reason": { "type": "string", "x-nullable": true, "description": "An error message if the export task failed. Otherwise, empty.", "readOnly": true }, "displayName": { "type": "string", "default": "SNAPSHOT_{snapshot_time}", "description": "The display name of the export task." }, "createTime": { "type": "string", "format": "date-time", "description": "The timestamp when the export task was created, in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.", "readOnly": true }, "updateTime": { "type": "string", "format": "date-time", "x-nullable": true, "description": "The timestamp when the export task was last updated, in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.", "readOnly": true }, "completeTime": { "type": "string", "format": "date-time", "x-nullable": true, "description": "The timestamp when the export task was completed, in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.", "readOnly": true }, "snapshotTime": { "type": "string", "format": "date-time", "x-nullable": true, "description": "The timestamp when the data snapshot was captured for this export.", "readOnly": true }, "expireTime": { "type": "string", "format": "date-time", "x-nullable": true, "description": "The timestamp when the export will expire and become unavailable.", "readOnly": true } }, "description": "Message for export task.", "required": [ "clusterId" ] }, "v1beta1ExportAzureBlobAuthTypeEnum": { "type": "string", "enum": [ "SAS_TOKEN" ], "description": " - SAS_TOKEN: The access method is sas token." }, "v1beta1ExportCompressionTypeEnum": { "type": "string", "enum": [ "GZIP", "SNAPPY", "ZSTD", "NONE" ], "default": "GZIP", "description": " - GZIP: Gzip compression.\n - SNAPPY: Snappy compression.\n - ZSTD: Zstd compression.\n - NONE: No compression." }, "v1beta1ExportFileTypeEnum": { "type": "string", "enum": [ "SQL", "CSV", "PARQUET" ], "default": "CSV", "description": " - SQL: SQL type.\n - CSV: CSV type.\n - PARQUET: PARQUET type." }, "v1beta1ExportGcsAuthTypeEnum": { "type": "string", "enum": [ "SERVICE_ACCOUNT_KEY" ], "description": " - SERVICE_ACCOUNT_KEY: The access method is service account key." }, "v1beta1ExportOSSAuthTypeEnum": { "type": "string", "enum": [ "ACCESS_KEY" ], "description": " - ACCESS_KEY: The access method is access key." }, "v1beta1ExportOptions": { "type": "object", "properties": { "fileType": { "description": "The export file type.", "allOf": [ { "$ref": "#/definitions/v1beta1ExportFileTypeEnum" } ] }, "compression": { "description": "The compression algorithm of the export file.", "allOf": [ { "$ref": "#/definitions/v1beta1ExportCompressionTypeEnum" } ] }, "filter": { "description": "Defines which tables to include in the export. If not specified, all tables in the TiDB Cloud Starter or Essential instance are exported.", "allOf": [ { "$ref": "#/definitions/v1beta1ExportOptionsFilter" } ] }, "csvFormat": { "description": "The format specification for the CSV file.", "allOf": [ { "$ref": "#/definitions/v1beta1ExportOptionsCSVFormat" } ] }, "parquetFormat": { "description": "The format specification for the Parquet file.", "allOf": [ { "$ref": "#/definitions/ExportOptionsParquetFormat" } ] } } }, "v1beta1ExportOptionsCSVFormat": { "type": "object", "properties": { "separator": { "type": "string", "default": ",", "description": "The character used to separate values in the CSV file.\nIt is recommended to use uncommon separators like `|+|` to avoid conflicts." }, "delimiter": { "type": "string", "default": "\"", "x-nullable": true, "description": "The character used to enclose string values in the CSV file." }, "nullValue": { "type": "string", "default": "\\N", "x-nullable": true, "description": "The string representation of NULL values in the CSV file." }, "skipHeader": { "type": "boolean", "default": false, "description": "Indicates whether to omit the header row in exported CSV files." } } }, "v1beta1ExportOptionsFilter": { "type": "object", "properties": { "sql": { "type": "string", "description": "Filters the exported data with the SQL statement." }, "table": { "description": "Filters the exported data with table filter patterns.", "allOf": [ { "$ref": "#/definitions/ExportOptionsFilterTable" } ] } } }, "v1beta1ExportParquetCompressionTypeEnum": { "type": "string", "enum": [ "GZIP", "SNAPPY", "ZSTD", "NONE" ], "default": "ZSTD", "description": " - GZIP: The parquet compression type is GZIP.\n - SNAPPY: The parquet compression type is SNAPPY.\n - ZSTD: The parquet compression type is ZSTD.\n - NONE: No compression." }, "v1beta1ExportS3AuthTypeEnum": { "type": "string", "enum": [ "ROLE_ARN", "ACCESS_KEY" ], "description": " - ROLE_ARN: The access method is role arn.\n - ACCESS_KEY: The access method is access key." }, "v1beta1ExportStateEnum": { "type": "string", "enum": [ "RUNNING", "SUCCEEDED", "FAILED", "CANCELED", "DELETED", "EXPIRED" ], "description": "Export State.\n\n - RUNNING: The export task is being created.\n - SUCCEEDED: The export task is success.\n - FAILED: The export task is failed.\n - CANCELED: The export task is canceled.\n - DELETED: The export task is deleted.\n - EXPIRED: The export is expired, only local export will be expired." }, "v1beta1ExportTarget": { "type": "object", "properties": { "type": { "description": "The export target.", "allOf": [ { "$ref": "#/definitions/v1beta1ExportTargetTypeEnum" } ] }, "s3": { "description": "The configuration details for exporting data to Amazon S3. This is required when `type` is `S3`.", "allOf": [ { "$ref": "#/definitions/v1beta1S3Target" } ] }, "gcs": { "description": "The configuration details for exporting data to Google Cloud Storage. This is required when `type` is `GCS`.", "allOf": [ { "$ref": "#/definitions/v1beta1GCSTarget" } ] }, "azureBlob": { "description": "The configuration details for exporting data to Azure Blob Storage. This is required when `type` is `AZURE_BLOB`.", "allOf": [ { "$ref": "#/definitions/v1beta1AzureBlobTarget" } ] }, "oss": { "description": "The configuration details for exporting data to Alibaba Cloud Object Storage Service (OSS). This is required when `type` is `OSS`.", "allOf": [ { "$ref": "#/definitions/v1beta1OSSTarget" } ] } } }, "v1beta1ExportTargetTypeEnum": { "type": "string", "enum": [ "LOCAL", "S3", "GCS", "AZURE_BLOB", "OSS" ], "default": "LOCAL", "description": " - LOCAL: Local target.\n - S3: S3 target.\n - GCS: gcs target.\n - AZURE_BLOB: azure blob target.\n - OSS: OSS target." }, "v1beta1GCSSource": { "type": "object", "properties": { "uri": { "type": "string", "description": "The Google Cloud Storage URI of the import source." }, "authType": { "description": "The authentication method for accessing the Google Cloud Storage source.", "allOf": [ { "$ref": "#/definitions/v1beta1ImportGcsAuthTypeEnum" } ] }, "serviceAccountKey": { "type": "string", "description": "The service account key for accessing the Google Cloud Storage source." } }, "required": [ "uri", "authType" ] }, "v1beta1GCSTarget": { "type": "object", "properties": { "uri": { "type": "string", "description": "The Google Cloud Storage URI of the export target." }, "authType": { "description": "The authentication method for accessing Google Cloud Storage.", "allOf": [ { "$ref": "#/definitions/v1beta1ExportGcsAuthTypeEnum" } ] }, "serviceAccountKey": { "type": "string", "description": "The service account key for accessing Google Cloud Storage." } }, "required": [ "uri", "authType" ] }, "v1beta1Import": { "type": "object", "properties": { "id": { "type": "string", "description": "**Deprecated.** Use `importId` instead. The ID of the import task.", "readOnly": true }, "name": { "type": "string", "description": "The name of the import task.", "readOnly": true }, "clusterId": { "type": "string", "description": "The ID of the target TiDB Cloud Starter or Essential instance for the import.", "readOnly": true }, "totalSize": { "type": "string", "format": "uint64", "description": "The total size of the data to be imported, in bytes.", "readOnly": true }, "createTime": { "type": "string", "format": "date-time", "description": "The timestamp when the import task was created, in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.", "readOnly": true }, "completeTime": { "type": "string", "format": "date-time", "x-nullable": true, "description": "The timestamp when the import task was completed, in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.", "readOnly": true }, "state": { "description": "The state of the import task.", "readOnly": true, "allOf": [ { "$ref": "#/definitions/v1beta1ImportStateEnum" } ] }, "completePercent": { "type": "integer", "format": "int64", "description": "The percentage of import progress, excluding post-processing.", "readOnly": true }, "message": { "type": "string", "description": "An error message if the import task failed. Otherwise, empty.", "readOnly": true }, "createdBy": { "type": "string", "description": "The email address of the user who create the import task.", "readOnly": true }, "creationDetails": { "description": "The additional details about how the import task is created.", "readOnly": true, "allOf": [ { "$ref": "#/definitions/v1beta1CreationDetails" } ] }, "importId": { "type": "string", "description": "The ID of the import task.", "readOnly": true } } }, "v1beta1ImportAzureBlobAuthTypeEnum": { "type": "string", "enum": [ "SAS_TOKEN" ], "description": " - SAS_TOKEN: The access method is sas token." }, "v1beta1ImportFileTypeEnum": { "type": "string", "enum": [ "CSV", "SQL", "AURORA_SNAPSHOT", "PARQUET" ], "description": " - CSV: CSV type.\n - SQL: SQL type.\n - AURORA_SNAPSHOT: Aurora snapshot type.\n - PARQUET: Parquet type." }, "v1beta1ImportGcsAuthTypeEnum": { "type": "string", "enum": [ "SERVICE_ACCOUNT_KEY" ], "description": " - SERVICE_ACCOUNT_KEY: The access method is service account key." }, "v1beta1ImportOSSAuthTypeEnum": { "type": "string", "enum": [ "ACCESS_KEY" ], "description": " - ACCESS_KEY: The access method is access key." }, "v1beta1ImportOptions": { "type": "object", "properties": { "fileType": { "description": "The format of the file to import.", "allOf": [ { "$ref": "#/definitions/v1beta1ImportFileTypeEnum" } ] }, "csvFormat": { "description": "The format specification for CSV files.", "allOf": [ { "$ref": "#/definitions/v1beta1ImportOptionsCSVFormat" } ] } }, "required": [ "fileType" ] }, "v1beta1ImportOptionsCSVFormat": { "type": "object", "properties": { "separator": { "type": "string", "default": ",", "description": "The character used to separate values in the CSV file." }, "delimiter": { "type": "string", "default": "\"", "x-nullable": true, "description": "The character used to enclose string values in the CSV file." }, "header": { "type": "boolean", "default": true, "x-nullable": true, "description": "Indicates whether the CSV file contains column headers in the first row." }, "notNull": { "type": "boolean", "default": false, "x-nullable": true, "description": "Indicates whether the columns in the CSV file can be NULL." }, "null": { "type": "string", "default": "\\N", "x-nullable": true, "description": "The string representation of NULL values in the CSV file." }, "backslashEscape": { "type": "boolean", "default": true, "x-nullable": true, "description": "Indicates whether to escape backslashes in the CSV file." }, "trimLastSeparator": { "type": "boolean", "default": false, "x-nullable": true, "description": "Indicates whether to remove trailing separators from each row in the CSV file." } } }, "v1beta1ImportS3AuthTypeEnum": { "type": "string", "enum": [ "ROLE_ARN", "ACCESS_KEY" ], "description": " - ROLE_ARN: The access method is role arn.\n - ACCESS_KEY: The access method is access key." }, "v1beta1ImportS3CompatibleAuthTypeEnum": { "type": "string", "enum": [ "ACCESS_KEY" ], "description": " - ACCESS_KEY: The access method is access key." }, "v1beta1ImportSource": { "type": "object", "properties": { "type": { "description": "The source from which data is imported.", "allOf": [ { "$ref": "#/definitions/v1beta1ImportSourceTypeEnum" } ] }, "s3": { "description": "The configuration details for importing from Amazon S3.", "allOf": [ { "$ref": "#/definitions/v1beta1S3Source" } ] }, "gcs": { "description": "The configuration details for importing from Google Cloud Storage.", "allOf": [ { "$ref": "#/definitions/v1beta1GCSSource" } ] }, "azureBlob": { "description": "The configuration details for importing from Azure Blob Storage.", "allOf": [ { "$ref": "#/definitions/v1beta1AzureBlobSource" } ] }, "s3Compatible": { "description": "The configuration details for importing from a S3-compatible storage service.", "allOf": [ { "$ref": "#/definitions/v1beta1S3CompatibleSource" } ] }, "oss": { "description": "The configuration details for importing from Alibaba Cloud Object Storage Service (OSS).", "allOf": [ { "$ref": "#/definitions/v1beta1OSSSource" } ] } }, "required": [ "type" ] }, "v1beta1ImportSourceTypeEnum": { "type": "string", "enum": [ "S3", "GCS", "AZURE_BLOB", "S3_COMPATIBLE", "OSS" ], "description": " - S3: S3 source.\n - GCS: gcs source.\n - AZURE_BLOB: azure blob source.\n - S3_COMPATIBLE: S3 compatible source.\n - OSS: OSS source." }, "v1beta1ImportStateEnum": { "type": "string", "enum": [ "PREPARING", "IMPORTING", "COMPLETED", "FAILED", "CANCELING", "CANCELED" ], "description": " - PREPARING: The import is preparing.\n - IMPORTING: The import is importing.\n - COMPLETED: The import is completed.\n - FAILED: The import is failed.\n - CANCELING: The import is canceling.\n - CANCELED: The import is canceled." }, "v1beta1ListBranchesResponse": { "type": "object", "properties": { "branches": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/v1beta1Branch" }, "description": "A list of branches that match the query." }, "nextPageToken": { "type": "string", "description": "The token to retrieve the next page of results. Use this value as the `pageToken` parameter in the next request. This field is empty when there are no more pages." }, "totalSize": { "type": "integer", "format": "int64", "description": "The total number of branches that match the query." } }, "description": "Message for response to list branches." }, "v1beta1ListExportsResponse": { "type": "object", "properties": { "exports": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/v1beta1Export" }, "description": "A list of export tasks that match the query." }, "nextPageToken": { "type": "string", "description": "The token to retrieve the next page of results. Use this value as the `pageToken` parameter in the next request. This field is empty when there are no more pages." }, "totalSize": { "type": "integer", "format": "int64", "description": "The total number of exports that match the query." } } }, "v1beta1ListImportsResponse": { "type": "object", "properties": { "imports": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/v1beta1Import" }, "description": "A list of import tasks that match the query.", "readOnly": true }, "totalSize": { "type": "integer", "format": "int64", "description": "The total number of imports that match the query.", "readOnly": true }, "nextPageToken": { "type": "string", "description": "The token to retrieve the next page of results. Use this value as the `pageToken` parameter in the next request. This field is empty when there are no more pages.", "readOnly": true } } }, "v1beta1OSSSource": { "type": "object", "properties": { "uri": { "type": "string", "description": "The Alibaba Cloud OSS URI of the import source." }, "authType": { "description": "The authentication method for accessing the Alibaba Cloud OSS source.", "allOf": [ { "$ref": "#/definitions/v1beta1ImportOSSAuthTypeEnum" } ] }, "accessKey": { "description": "The access key credentials used for accessing the Alibaba Cloud OSS source.", "allOf": [ { "$ref": "#/definitions/v1beta1OSSSourceAccessKey" } ] } }, "required": [ "uri", "authType" ] }, "v1beta1OSSSourceAccessKey": { "type": "object", "properties": { "id": { "type": "string", "description": "The AccessKey ID for accessing Alibaba Cloud OSS." }, "secret": { "type": "string", "description": "The AccessKey secret for accessing Alibaba Cloud OSS." } }, "required": [ "id", "secret" ] }, "v1beta1OSSTarget": { "type": "object", "properties": { "uri": { "type": "string", "description": "The Alibaba Cloud OSS URI of the export target." }, "authType": { "description": "The authentication method for accessing Alibaba Cloud OSS.", "allOf": [ { "$ref": "#/definitions/v1beta1ExportOSSAuthTypeEnum" } ] }, "accessKey": { "description": "The Alibaba Cloud OSS access key credentials used for access.", "allOf": [ { "$ref": "#/definitions/v1beta1OSSTargetAccessKey" } ] } }, "required": [ "uri", "authType" ] }, "v1beta1OSSTargetAccessKey": { "type": "object", "properties": { "id": { "type": "string", "description": "The AccessKey ID for accessing Alibaba Cloud OSS." }, "secret": { "type": "string", "description": "The AccessKey secret for accessing Alibaba Cloud OSS." } }, "required": [ "id", "secret" ] }, "v1beta1PartialUpdateClusterRequestPartialUpdateCluster": { "type": "object", "properties": { "clusterId": { "type": "string", "description": "The ID of the TiDB Cloud Starter or Essential instance to update." }, "displayName": { "type": "string", "description": "The user-defined name of the TiDB Cloud Starter or Essential instance." }, "spendingLimit": { "description": "The [spending limit](https://docs.pingcap.com/tidbcloud/tidb-cloud-glossary/#spending-limit) for the TiDB Cloud Starter instance.", "allOf": [ { "$ref": "#/definitions/ClusterSpendingLimit" } ] }, "automatedBackupPolicy": { "description": "The schedule and retention rules for automated database backups.", "allOf": [ { "$ref": "#/definitions/v1beta1ClusterAutomatedBackupPolicy" } ] }, "endpoints": { "description": "The connection endpoints for accessing the TiDB Cloud Starter or Essential instance.", "allOf": [ { "$ref": "#/definitions/v1beta1ClusterEndpoints" } ] }, "labels": { "type": "object", "additionalProperties": { "type": "string" }, "description": "The labels for the TiDB Cloud Starter or Essential instance.\n\n- `tidb.cloud/organization`: the ID of the organization where the TiDB Cloud Starter or Essential instance belongs.\n- `tidb.cloud/project`: the ID of the project where the TiDB Cloud Starter or Essential instance belongs." }, "autoScaling": { "description": "The auto-scaling configuration for the TiDB Cloud Essential instance.", "allOf": [ { "$ref": "#/definitions/v1beta1ClusterAutoScaling" } ] } }, "description": "The updated configuration of the TiDB Cloud Starter or Essential instance.", "required": [ "clusterId" ] }, "v1beta1RegionCloudProvider": { "type": "string", "enum": [ "aws", "alicloud" ], "description": "Enum of cloud provider names.\n\n - aws: Amazon Web Services.\n - alicloud: Alibaba Cloud" }, "v1beta1S3CompatibleSource": { "type": "object", "properties": { "uri": { "type": "string", "description": "The S3-compatible storage URI of the import source." }, "authType": { "description": "The authentication method for accessing the S3-compatible storage.", "allOf": [ { "$ref": "#/definitions/v1beta1ImportS3CompatibleAuthTypeEnum" } ] }, "accessKey": { "description": "The access key credentials used for accessing the S3-compatible storage.", "allOf": [ { "$ref": "#/definitions/v1beta1S3CompatibleSourceAccessKey" } ] }, "endpoint": { "type": "string", "x-nullable": true, "description": "The custom HTTPS endpoint for S3-compatible storage, which is used to connect to non-AWS storage providers, such as Cloudflare.\nMust be a valid HTTPS URL, such as `https://custom-s3.example.com`." } }, "required": [ "uri", "authType" ] }, "v1beta1S3CompatibleSourceAccessKey": { "type": "object", "properties": { "id": { "type": "string", "description": "The access key ID for accessing the S3-compatible storage." }, "secret": { "type": "string", "description": "The secret access key for accessing the S3-compatible storage." } }, "required": [ "id", "secret" ] }, "v1beta1S3Source": { "type": "object", "properties": { "uri": { "type": "string", "description": "The S3 URI of the import source." }, "authType": { "description": "The authentication method for accessing the S3 bucket.", "allOf": [ { "$ref": "#/definitions/v1beta1ImportS3AuthTypeEnum" } ] }, "roleArn": { "type": "string", "description": "The AWS IAM role ARN used for access." }, "accessKey": { "description": "The AWS access key credentials used for access.", "allOf": [ { "$ref": "#/definitions/v1beta1S3SourceAccessKey" } ] } }, "required": [ "uri", "authType" ] }, "v1beta1S3SourceAccessKey": { "type": "object", "properties": { "id": { "type": "string", "description": "The access key ID for accessing the S3 source." }, "secret": { "type": "string", "description": "The secret access key for accessing the S3 source." } }, "required": [ "id", "secret" ] }, "v1beta1S3Target": { "type": "object", "properties": { "uri": { "type": "string", "description": "The S3 URI of the export target." }, "authType": { "description": "The authentication method for accessing the S3 bucket.", "allOf": [ { "$ref": "#/definitions/v1beta1ExportS3AuthTypeEnum" } ] }, "accessKey": { "description": "The AWS access key credentials used for access.", "allOf": [ { "$ref": "#/definitions/v1beta1S3TargetAccessKey" } ] }, "roleArn": { "type": "string", "description": "The AWS IAM role ARN used for access." } }, "required": [ "authType" ] }, "v1beta1S3TargetAccessKey": { "type": "object", "properties": { "id": { "type": "string", "description": "The access key ID for accessing the S3 bucket." }, "secret": { "type": "string", "description": "The secret access key for accessing the S3 bucket." } }, "required": [ "id", "secret" ] } } }