{
  "basePath": "/api/v2023/dedicated/v1beta1",
  "consumes": [
    "application/json"
  ],
  "definitions": {
    "AuditLogConfigBucketManager": {
      "enum": [
        "CUSTOMER",
        "PINGCAP"
      ],
      "type": "string"
    },
    "ClusterNodeChangingProgress": {
      "properties": {
        "matchingNodeSpecNodeCount": {
          "description": "The number of nodes that match the specified node spec.",
          "format": "int32",
          "readOnly": true,
          "type": "integer"
        },
        "remainingDeletionNodeCount": {
          "description": "The number of nodes pending deletion. This value appears only during node deletion operations.",
          "format": "int32",
          "readOnly": true,
          "type": "integer"
        }
      },
      "type": "object"
    },
    "ClusterStorageNodeSettingStorageType": {
      "description": " - Basic: Data disk: gp3; Raft log disk: none.\n - Standard: Data disk: gp3; Raft log disk: gp3.\n - Performance: Data disk: gp3; Raft log disk: io2.\n - Plus: Data disk: io2; Raft log disk: none.",
      "enum": [
        "Basic",
        "Standard",
        "Performance",
        "Plus"
      ],
      "type": "string"
    },
    "ShowCmekAccessIamPrincipalResponseAwsCmekPrincipal": {
      "properties": {
        "accountId": {
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "ShowNodeQuotaResponseComponentQuota": {
      "properties": {
        "componentType": {
          "allOf": [
            {
              "$ref": "#/definitions/dedicatedv1beta1ComponentType"
            }
          ],
          "description": "The component type. The value options are:\n\n- `TIDB`: [TiDB node](https://docs.pingcap.com/tidbcloud/tidb-cloud-glossary/#tidb-node).\n\n- `TIKV`: [TiKV node](https://docs.pingcap.com/tidbcloud/tidb-cloud-glossary/#tikv-node).\n\n- `TIFLASH`: [TiFlash node](https://docs.pingcap.com/tidbcloud/tidb-cloud-glossary/#tiflash-node)."
        },
        "quota": {
          "description": "The maximum number of nodes allowed for this component type.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "UpdateClusterRequestTidbNodeSettingTidbNodeGroup": {
      "properties": {
        "nodeCount": {
          "description": "The number of TiDB nodes in the TiDB group. It must be greater than or equal to 1.",
          "example": 2,
          "format": "int32",
          "minimum": 1,
          "type": "integer",
          "x-nullable": true
        },
        "nodeSpecKey": {
          "description": "The node spec key of the TiDB group. For example, `8C32G`.",
          "example": "8C32G",
          "type": "string"
        },
        "tidbNodeGroupId": {
          "description": "The ID of the TiDB node group. If empty, it means to scale the default TiDB group.",
          "example": "1",
          "type": "string"
        },
        "tiproxySetting": {
          "allOf": [
            {
              "$ref": "#/definitions/dedicatedv1beta1TidbNodeGroupTiProxySetting"
            }
          ],
          "description": "The TiProxy setting for the TiDB group. If not specified, the default TiProxy setting will be used."
        }
      },
      "type": "object"
    },
    "commonv1beta1ClusterState": {
      "description": "Enum of possible states of a cluster.\n\n - CREATING: Cluster is being created.\n - DELETING: Cluster is being deleted.\n - ACTIVE: Cluster is active for use.\n - RESTORING: Cluster data is being restored.\n - MAINTENANCE: Cluster is under maintenance.\n - DELETED: Cluster has been deleted.\n - INACTIVE: Cluster is not active, but not being deleted.\n - UPGRADING: Cluster is being updated.\nOnly for Dedicated Cluster.\n - IMPORTING: Cluster is being imported.\nOnly for Dedicated Cluster.\n - MODIFYING: Cluster is being modified.\nOnly for Dedicated Cluster.\n - PAUSING: Cluster is being paused.\nOnly for Dedicated Cluster.\n - PAUSED: Cluster is paused.\nOnly for Dedicated Cluster.\n - RESUMING: Cluster is resuming.\nOnly for Dedicated Cluster.",
      "enum": [
        "CREATING",
        "DELETING",
        "ACTIVE",
        "RESTORING",
        "MAINTENANCE",
        "DELETED",
        "INACTIVE",
        "UPGRADING",
        "IMPORTING",
        "MODIFYING",
        "PAUSING",
        "PAUSED",
        "RESUMING"
      ],
      "type": "string"
    },
    "commonv1beta1Region": {
      "description": "A representation of a region for deploying TiDB clusters.",
      "properties": {
        "cloudProvider": {
          "allOf": [
            {
              "$ref": "#/definitions/v1beta1RegionCloudProvider"
            }
          ],
          "description": "The cloud provider that offers the region.\n\n- `\"aws\"`: Amazon Web Services\n\n- `\"gcp\"`: Google Cloud\n\n- `\"azure\"`: Microsoft Azure\n\n- `\"alicloud\"`: Alibaba Cloud",
          "example": "aws",
          "readOnly": true
        },
        "displayName": {
          "description": "A human-readable name for the region. For example, `Oregon (us-west-2)`.",
          "example": "Oregon (us-west-2)",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "description": "The unique name of the region, in the format of `regions/{region_id}`. For example, `regions/aws-us-west-2`.",
          "example": "regions/aws-us-west-2",
          "pattern": "^regions/(aws|gcp|azure)-(.+)$",
          "type": "string"
        },
        "provider": {
          "description": "**Deprecated.** Use `cloudProvider` instead. The name of the cloud provider. For example, `aws`, `gcp`, `azure`, or `alicloud`.",
          "example": "aws",
          "readOnly": true,
          "title": "Deprecated",
          "type": "string",
          "x-nullable": true
        },
        "regionId": {
          "description": "The unique identifier for the region, in the format of `{cloud_provider}-{region_code}`. For example, `aws-us-west-2`.",
          "example": "aws-us-west-2",
          "pattern": "^(aws|gcp|azure|alicloud)-[a-z0-9-]+$",
          "readOnly": true,
          "type": "string"
        },
        "servicePlans": {
          "description": "The service plans available in this region.",
          "example": [
            "Starter",
            "Essential",
            "Premium"
          ],
          "items": {
            "$ref": "#/definitions/commonv1beta1ServicePlan"
          },
          "readOnly": true,
          "title": "ServicePlan",
          "type": "array"
        }
      },
      "type": "object"
    },
    "commonv1beta1ServicePlan": {
      "enum": [
        "Starter",
        "Essential",
        "Premium",
        "BYOC"
      ],
      "type": "string"
    },
    "dedicatedv1beta1AuditLogConfig": {
      "properties": {
        "awsRoleArn": {
          "type": "string"
        },
        "azureSasToken": {
          "type": "string"
        },
        "bucketManager": {
          "allOf": [
            {
              "$ref": "#/definitions/AuditLogConfigBucketManager"
            }
          ],
          "description": "The bucket_manager field is used to indicate who manages the bucket.\nIf this field is not set, the bucket is managed by the customer by default."
        },
        "bucketRegionId": {
          "title": "Format: {cloud_provider}-{region_code}",
          "type": "string"
        },
        "bucketUri": {
          "description": "Required if bucket_manager is CUSTOMER.",
          "type": "string"
        },
        "bucketWriteCheck": {
          "allOf": [
            {
              "$ref": "#/definitions/v1beta1AuditLogConfigBucketWriteCheck"
            }
          ],
          "description": "Available only when write check failed.",
          "readOnly": true
        },
        "clusterId": {
          "type": "string"
        },
        "enabled": {
          "description": "Default is disabled.",
          "type": "boolean"
        },
        "format": {
          "allOf": [
            {
              "$ref": "#/definitions/v1beta1AuditLogConfigFormat"
            }
          ],
          "description": "If unset, default to TEXT."
        },
        "legacy": {
          "description": "Default to false (and not shown), which means the legacy audit log implementation are not used.",
          "readOnly": true,
          "type": "boolean",
          "x-nullable": true
        },
        "name": {
          "readOnly": true,
          "title": "Format: clusters/{cluster_id}/auditLogConfig",
          "type": "string"
        },
        "rotationPolicy": {
          "allOf": [
            {
              "$ref": "#/definitions/v1beta1AuditLogConfigRotationPolicy"
            }
          ],
          "description": "If unset, default to max_size_mib=10, max_age_second=86400 (1 day)."
        },
        "unredacted": {
          "description": "Default is redacted.",
          "type": "boolean"
        }
      },
      "required": [
        "clusterId"
      ],
      "type": "object"
    },
    "dedicatedv1beta1AuditLogFilterRule": {
      "properties": {
        "accessTypeList": {
          "description": "Deprecated. Only available when `AuditLogConfig.legacy` is true.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "auditLogFilterRuleId": {
          "description": "audit_log_filter_rule_id is a unique identifier for the rule. Currently, the value is the same as user_expr.\nFor legacy, the audit_log_filter_rule_id is a number.",
          "readOnly": true,
          "type": "string"
        },
        "clusterId": {
          "type": "string"
        },
        "dbExpr": {
          "description": "Deprecated. Only available when `AuditLogConfig.legacy` is true.\nThe express is a glob pattern. Refer to https://github.com/pingcap/tidb/blob/master/pkg/util/table-filter/README.md#wildcards.",
          "type": "string"
        },
        "disabled": {
          "description": "Default is enabled.",
          "type": "boolean"
        },
        "displayName": {
          "description": "If not set, default to the value of `user_expr`.",
          "type": "string"
        },
        "eventTypes": {
          "description": "If empty, it means all events.",
          "items": {
            "$ref": "#/definitions/dedicatedv1beta1AuditLogFilterRuleEventType"
          },
          "type": "array"
        },
        "name": {
          "readOnly": true,
          "title": "Format: auditLogFilterRules/{audit_log_filter_rule_id}",
          "type": "string"
        },
        "tableExpr": {
          "description": "Deprecated. Only available when `AuditLogConfig.legacy` is true.\nThe express is a glob pattern. Refer to https://github.com/pingcap/tidb/blob/master/pkg/util/table-filter/README.md#wildcards.",
          "type": "string"
        },
        "userExpr": {
          "description": "Format: \u003cuser\u003e@\u003chost\u003e.\nThe audit user \u003cuser\u003e@\u003chost\u003e consists of the username and hostname with @ as separator, where @ and \u003chost\u003e are optional.\nBoth username and hostname can be identifiers with wildcards:\n  - % for matching any username/hostname.\n  - _ for matching any character.\nFor multiple filter rules, if their user_expr fields match the same username, that matches the longest username takes effect.\nIn general, this field is required. Only when `AuditLogConfig.legacy` is true, this field is optional.\nFor legacy, the express is a regex.",
          "type": "string"
        }
      },
      "required": [
        "clusterId"
      ],
      "type": "object"
    },
    "dedicatedv1beta1AuditLogFilterRuleEventType": {
      "enum": [
        "CONNECTION",
        "CONNECT",
        "DISCONNECT",
        "CHANGE_USER",
        "QUERY",
        "TRANSACTION",
        "EXECUTE",
        "QUERY_DML",
        "INSERT",
        "REPLACE",
        "UPDATE",
        "DELETE",
        "LOAD_DATA",
        "SELECT",
        "QUERY_DDL"
      ],
      "title": "DB audit logging includes the following event types:\n - CONNECTION\n   - CONNECT\n   - DISCONNECT\n   - CHANGE_USER\n - QUERY\n   - TRANSACTION\n   - EXECUTE\n   - QUERY_DML\n     - INSERT\n     - REPLACE\n     - UPDATE\n     - DELETE\n     - LOAD DATA\n   - SELECT\n   - QUERY_DDL",
      "type": "string"
    },
    "dedicatedv1beta1AwsKms": {
      "properties": {
        "kmsKeyArn": {
          "type": "string"
        }
      },
      "required": [
        "kmsKeyArn"
      ],
      "type": "object"
    },
    "dedicatedv1beta1AzureAppRegistration": {
      "properties": {
        "appRegistrationId": {
          "readOnly": true,
          "type": "string"
        },
        "appRegistrationName": {
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "dedicatedv1beta1AzureKeyVault": {
      "properties": {
        "appRegistration": {
          "allOf": [
            {
              "$ref": "#/definitions/dedicatedv1beta1AzureAppRegistration"
            }
          ],
          "readOnly": true
        },
        "keyVaultKey": {
          "type": "string"
        },
        "keyVaultName": {
          "type": "string"
        }
      },
      "required": [
        "keyVaultKey",
        "keyVaultName"
      ],
      "type": "object"
    },
    "dedicatedv1beta1ClusterPausePlan": {
      "properties": {
        "pauseType": {
          "allOf": [
            {
              "$ref": "#/definitions/dedicatedv1beta1ClusterPausePlanType"
            }
          ],
          "description": "The type of the pause plan.\n\n- `\"NORMAL\"`: the default pause plan.\n- `\"DEPRECATE\"`: the legacy pause plan and will be removed in a future release.",
          "title": "PausePlanType"
        },
        "scheduledResumeTime": {
          "description": "The scheduled time for the cluster to automatically resume from the `PAUSED` state, in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.",
          "format": "date-time",
          "readOnly": true,
          "type": "string"
        }
      },
      "required": [
        "pauseType"
      ],
      "type": "object"
    },
    "dedicatedv1beta1ClusterPausePlanType": {
      "enum": [
        "NORMAL",
        "DEPRECATE"
      ],
      "title": "- NORMAL: default pause plan\n - DEPRECATE: old pause plan, will be removed",
      "type": "string"
    },
    "dedicatedv1beta1ComponentType": {
      "enum": [
        "TIKV",
        "TIDB",
        "TIFLASH",
        "PD",
        "TIPROXY"
      ],
      "type": "string"
    },
    "dedicatedv1beta1CustomerManagedEncryptionKey": {
      "properties": {
        "awsKms": {
          "$ref": "#/definitions/dedicatedv1beta1AwsKms"
        },
        "azureKeyVault": {
          "$ref": "#/definitions/dedicatedv1beta1AzureKeyVault"
        },
        "createTime": {
          "format": "date-time",
          "readOnly": true,
          "type": "string"
        },
        "customerManagedEncryptionKeyId": {
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "readOnly": true,
          "title": "Format: customerManagedEncryptionKeys/{customer_managed_encryption_key_id}",
          "type": "string"
        },
        "projectId": {
          "type": "string"
        },
        "regionDisplayName": {
          "readOnly": true,
          "type": "string"
        },
        "regionId": {
          "title": "Format: {cloud_provider}-{region_code}",
          "type": "string"
        }
      },
      "required": [
        "regionId"
      ],
      "type": "object"
    },
    "dedicatedv1beta1GenerateAuditLogFileDownloadAddressResponse": {
      "properties": {
        "downloadAddress": {
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "dedicatedv1beta1ListAuditLogFilterRulesResponse": {
      "properties": {
        "auditLogFilterRules": {
          "items": {
            "$ref": "#/definitions/dedicatedv1beta1AuditLogFilterRule",
            "type": "object"
          },
          "type": "array"
        },
        "nextPageToken": {
          "type": "string"
        },
        "totalSize": {
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "dedicatedv1beta1ListCustomerManagedEncryptionKeysResponse": {
      "properties": {
        "cmeks": {
          "items": {
            "$ref": "#/definitions/dedicatedv1beta1CustomerManagedEncryptionKey",
            "type": "object"
          },
          "type": "array"
        },
        "nextPageToken": {
          "type": "string"
        },
        "totalSize": {
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "dedicatedv1beta1ListMaintenanceTasksResponse": {
      "properties": {
        "maintenanceTasks": {
          "items": {
            "$ref": "#/definitions/dedicatedv1beta1MaintenanceTask",
            "type": "object"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is omitted, there are no subsequent pages.",
          "type": "string"
        },
        "totalSize": {
          "description": "The total number of maintenance tasks that matched the query.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "dedicatedv1beta1ListMaintenanceWindowsResponse": {
      "properties": {
        "maintenanceWindows": {
          "items": {
            "$ref": "#/definitions/dedicatedv1beta1MaintenanceWindow",
            "type": "object"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is omitted, there are no subsequent pages.",
          "type": "string"
        },
        "totalSize": {
          "description": "The total number of maintenance windows that matched the query.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "dedicatedv1beta1ListPrivateEndpointConnectionsResponse": {
      "properties": {
        "nextPageToken": {
          "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.",
          "example": "next_page_token",
          "type": "string"
        },
        "privateEndpointConnections": {
          "description": "A list of private endpoint connections that match the query.",
          "items": {
            "$ref": "#/definitions/dedicatedv1beta1PrivateEndpointConnection",
            "type": "object"
          },
          "title": "PrivateEndpointConnection",
          "type": "array"
        },
        "totalSize": {
          "description": "The total number of private link connections that match the query.",
          "example": 1,
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "dedicatedv1beta1ListTidbNodeGroupsResponse": {
      "properties": {
        "nextPageToken": {
          "description": "A token, which can be sent as `pageToken` to retrieve the next page.\nIf this field is omitted, there are no subsequent pages.",
          "type": "string"
        },
        "tidbNodeGroups": {
          "description": "A list of TiDB Node Groups that matched the query.",
          "items": {
            "$ref": "#/definitions/dedicatedv1beta1TidbNodeGroup",
            "type": "object"
          },
          "title": "TidbNodeGroup",
          "type": "array"
        },
        "totalSize": {
          "description": "The total number of TiDB groups that matched the query.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "dedicatedv1beta1ListVpcPeeringsResponse": {
      "properties": {
        "nextPageToken": {
          "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is omitted, there are no subsequent pages.",
          "type": "string"
        },
        "totalSize": {
          "description": "The total number of VPC peerings that matched the query.",
          "format": "int32",
          "type": "integer"
        },
        "vpcPeerings": {
          "items": {
            "$ref": "#/definitions/dedicatedv1beta1VpcPeering",
            "type": "object"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "dedicatedv1beta1LogRedactionPolicy": {
      "properties": {
        "clusterId": {
          "description": "The ID of the cluster to which the log redaction policy applies.",
          "example": "1",
          "type": "string"
        },
        "redactLog": {
          "default": "true",
          "description": "Indicates whether to redact sensitive information in logs.\n\nThe default policy is `true`, which means sensitive data is redacted in logs.\n\n**Note**: Disabling log redaction might expose sensitive information and increase the risk of data leakage. Ensure that you understand and acknowledge this risk before proceeding. Remember to re-enable it as soon as you complete your diagnostic or maintenance task.",
          "example": true,
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": [
        "clusterId"
      ],
      "type": "object"
    },
    "dedicatedv1beta1MaintenanceTask": {
      "description": "All fields are output only.",
      "properties": {
        "createTime": {
          "description": "Timestamp when the task was created.",
          "format": "date-time",
          "type": "string"
        },
        "deadline": {
          "description": "Timestamp when the task will be expired.",
          "format": "date-time",
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "maintenanceTaskId": {
          "type": "string"
        },
        "name": {
          "title": "Format: maintenanceTasks/{maintenance_task_id}",
          "type": "string"
        },
        "projectId": {
          "type": "string"
        },
        "scheduledApplyTime": {
          "description": "Timestamp when the task run.",
          "format": "date-time",
          "type": "string"
        },
        "state": {
          "$ref": "#/definitions/dedicatedv1beta1MaintenanceTaskState"
        }
      },
      "type": "object"
    },
    "dedicatedv1beta1MaintenanceTaskState": {
      "enum": [
        "PENDING",
        "RUNNING",
        "DONE"
      ],
      "type": "string"
    },
    "dedicatedv1beta1MaintenanceWindow": {
      "description": "MaintenanceWindow is a singleton resource that represents the maintenance window under a project.",
      "properties": {
        "dayHour": {
          "description": "0-23 in UTC.",
          "format": "int32",
          "type": "integer"
        },
        "hourMinute": {
          "description": "0-59 in UTC.",
          "format": "int32",
          "type": "integer"
        },
        "maintenanceWindowId": {
          "readOnly": true,
          "title": "Format: project-{project_id}",
          "type": "string"
        },
        "name": {
          "readOnly": true,
          "title": "Format: maintenanceWindows/{maintenance_window_id}",
          "type": "string"
        },
        "nextMaintenanceDate": {
          "format": "date-time",
          "readOnly": true,
          "type": "string"
        },
        "projectId": {
          "type": "string"
        },
        "unchangedMaintenanceTasks": {
          "items": {
            "$ref": "#/definitions/dedicatedv1beta1MaintenanceTask",
            "type": "object"
          },
          "readOnly": true,
          "type": "array"
        },
        "weekDay": {
          "description": "0-6, 0 is Sunday.",
          "format": "int32",
          "type": "integer"
        }
      },
      "required": [
        "projectId",
        "weekDay",
        "dayHour",
        "hourMinute"
      ],
      "type": "object"
    },
    "dedicatedv1beta1PrivateEndpointConnection": {
      "properties": {
        "accountId": {
          "description": "(Google Cloud only) The project name used to identify the Google Cloud project that the private service connection belongs to.",
          "readOnly": true,
          "type": "string",
          "x-nullable": true
        },
        "cloudProvider": {
          "allOf": [
            {
              "$ref": "#/definitions/v1beta1RegionCloudProvider"
            }
          ],
          "description": "The cloud provider where the private endpoint connection is located.\n\n- `\"aws\"`: Amazon Web Services\n\n- `\"gcp\"`: Google Cloud\n\n- `\"azure\"`: Microsoft Azure\n\n- `\"alicloud\"`: Alibaba Cloud",
          "example": "aws",
          "readOnly": true
        },
        "clusterDisplayName": {
          "description": "The display name of the cluster to which the private endpoint connection belongs.",
          "example": "my-cluster",
          "readOnly": true,
          "type": "string"
        },
        "clusterId": {
          "description": "The ID of the cluster to which the private endpoint connection belongs.",
          "example": "1",
          "readOnly": true,
          "type": "string"
        },
        "endpointId": {
          "description": "The endpoint ID of the private link connection.\n\n- AWS: the VPC endpoint ID for [AWS PrivateLink\n](https://aws.amazon.com/privatelink/).\n\n- Google Cloud: the endpoint ID for [Private Service Connect](https://cloud.google.com/vpc/docs/private-service-connect).\n\n- Azure: the resource ID for [Azure Private Link](https://learn.microsoft.com/en-us/azure/private-link/private-link-overview).",
          "example": "vpce-0a1b2c3d4e5f6g7h8",
          "type": "string"
        },
        "endpointState": {
          "allOf": [
            {
              "$ref": "#/definitions/dedicatedv1beta1PrivateEndpointConnectionEndpointState"
            }
          ],
          "description": "The state of the private endpoint connection.\n\n- `\"PENDING\"`: TiDB Cloud is asynchronously accepting the endpoint connection.\n\n- `\"ACTIVE\"`: the private endpoint connection is ready to use.\n\n- `\"DELETING\"`: the private endpoint connection is being deleted.\n\n- `\"FAILED\"`: the private endpoint connection has failed.\n- `\"DISCOVERED\"`: the endpoint is created in your VPC but not registered with TiDB Cloud.",
          "example": "ACTIVE",
          "readOnly": true
        },
        "host": {
          "description": "The hostname for accessing the TiDB cluster through the private endpoint connection.",
          "example": "privatelink-1234567890.abcdefg.clusters.tidb-cloud.com",
          "readOnly": true,
          "type": "string"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The labels of the private link connection, including the mandatory `tidb.cloud/project` label identifying the project it belongs to.",
          "example": {
            "tidb.cloud/project": "1"
          },
          "readOnly": true,
          "title": "map\u003cstring, string\u003e",
          "type": "object"
        },
        "message": {
          "description": "The detailed message when the `endpointState` field is `\"FAILED\"`.",
          "example": "",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "description": "The name of the private endpoint connection, in the format of `tidbNodeGroups/{tidb_node_group_id}/privateEndpointConnections/{private_endpoint_connection_id}`.",
          "example": "tidbNodeGroups/1/privateEndpointConnections/1234567890",
          "readOnly": true,
          "type": "string"
        },
        "port": {
          "description": "The port used to connect to the TiDB cluster through the private endpoint connection.",
          "example": 4000,
          "format": "int32",
          "readOnly": true,
          "type": "integer"
        },
        "privateEndpointConnectionId": {
          "description": "The unique ID of the private endpoint connection.",
          "example": "1234567890",
          "readOnly": true,
          "type": "string"
        },
        "privateIpAddress": {
          "description": "(Azure only) The private IP address of the private endpoint in your virtual network. TiDB Cloud automatically creates a public DNS record that resolves to this IP address, enabling you to connect using the DNS name.",
          "type": "string",
          "x-nullable": true
        },
        "privateLinkServiceName": {
          "description": "The name of the private link service that the private endpoint connection is connected to.",
          "example": "com.amazonaws.vpce.us-east-1.vpce-svc-1234567890",
          "readOnly": true,
          "type": "string"
        },
        "privateLinkServiceState": {
          "allOf": [
            {
              "$ref": "#/definitions/dedicatedv1beta1PrivateLinkServiceState"
            }
          ],
          "description": "The state of the private link service that the private endpoint connection is connected to.",
          "example": "ACTIVE",
          "readOnly": true
        },
        "regionDisplayName": {
          "description": "The display name of the region where the private endpoint connection is located. For example, `N. Virginia (us-east-1)`.",
          "example": "N. Virginia (us-east-1)",
          "readOnly": true,
          "type": "string"
        },
        "regionId": {
          "description": "The ID of the region where the private endpoint connection is located, in the format of `{cloud_provider}-{region_code}`. For example, `aws-us-east-1`.",
          "example": "aws-us-east-1",
          "readOnly": true,
          "type": "string"
        },
        "tidbNodeGroupDisplayName": {
          "description": "The display name of the TiDB node group that the private endpoint connection is connected to.",
          "example": "DefaultGroup",
          "readOnly": true,
          "type": "string"
        },
        "tidbNodeGroupId": {
          "description": "The ID of the TiDB group to which the private endpoint connection belongs.",
          "example": "1",
          "type": "string"
        }
      },
      "required": [
        "tidbNodeGroupId",
        "endpointId"
      ],
      "type": "object"
    },
    "dedicatedv1beta1PrivateEndpointConnectionEndpointState": {
      "description": "The state of the private endpoint connection.\n\n - PENDING: TiDB Cloud is asynchronously accepting the endpoint connection.\n - ACTIVE: The private endpoint connection is ready to use.\n - DELETING: The private endpoint connection is being deleted.\n - FAILED: The private endpoint connection has failed.\n - DISCOVERED: The endpoint is created in your VPC but not registered with TiDB Cloud.",
      "enum": [
        "PENDING",
        "ACTIVE",
        "DELETING",
        "FAILED",
        "DISCOVERED"
      ],
      "type": "string"
    },
    "dedicatedv1beta1PrivateLinkService": {
      "description": "All fields are output only.",
      "properties": {
        "availableZones": {
          "description": "(AWS only) The availability zones where the private link service is available. For more information, see [`DescribeVpcEndpointServices`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcEndpointServices.html).",
          "example": [
            "use1-az1",
            "use1-az4",
            "use1-az6"
          ],
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "cloudProvider": {
          "allOf": [
            {
              "$ref": "#/definitions/v1beta1RegionCloudProvider"
            }
          ],
          "description": "The cloud provider where the private link service is located.\n\n- `\"aws\"`: Amazon Web Services\n\n- `\"gcp\"`: Google Cloud\n\n- `\"azure\"`: Microsoft Azure\n\n- `\"alicloud\"`: Alibaba Cloud",
          "example": "aws"
        },
        "name": {
          "description": "The name of the private link service.",
          "example": "tidbNodeGroups/1/privateLinkService",
          "type": "string"
        },
        "regionDisplayName": {
          "description": "The display name of the region where the private link service is located. For example, `N. Virginia (us-east-1)`.",
          "example": "N. Virginia (us-east-1)",
          "type": "string"
        },
        "regionId": {
          "description": "The ID of the region where the private link service is located, in the format of `{cloud_provider}-{region_code}`. For example, `aws-us-east-1`.",
          "example": "aws-us-east-1",
          "type": "string"
        },
        "serviceDnsName": {
          "description": "The DNS name of the private link service, which varies by cloud provider:\n\n- AWS: the fully qualified domain name (FQDN) shared across all private endpoints, regardless of VPC location.\n\n- Google Cloud: the zone name (suffix of the FQDN) shared across all private endpoints in a single VPC network. The format of FQDN is `\u003cendpoint_name\u003e.\u003cservice_dns_name\u003e`.\n\n- Azure: the zone name shared across public internet. The format of FQDN is `\u003cendpoint_name\u003e-\u003crandom_hash\u003e.\u003cservice_dns_name\u003e`.",
          "example": "privatelink-1234567890.muznnz1umf3p.clusters.staging.tidb-cloud.com",
          "type": "string"
        },
        "serviceName": {
          "description": "The service name of the private link service, which varies by cloud provider:\n\n- AWS: the service name of the private link service.\n\n- Google Cloud: the resource name of the service attachment.\n\n- Azure: the resource ID of the private link service.",
          "example": "com.amazonaws.vpce.us-east-1.vpce-svc-1234567890",
          "type": "string"
        },
        "state": {
          "allOf": [
            {
              "$ref": "#/definitions/dedicatedv1beta1PrivateLinkServiceState"
            }
          ],
          "description": "The state of the private link service.\n\n- `\"CREATING\"`: the private link service is being created.\n\n- `\"ACTIVE\"`: the private link service is ready to use.\n\n- `\"DELETING\"`: the private link service is being deleted.",
          "example": "ACTIVE"
        },
        "tidbNodeGroupId": {
          "description": "The ID of the TiDB group to which the private link service belongs.",
          "example": "1",
          "type": "string"
        }
      },
      "type": "object"
    },
    "dedicatedv1beta1PrivateLinkServiceState": {
      "description": " - CREATING: The private link service is being created.\n - ACTIVE: The private link service is active and ready for use.\n - DELETING: The private link service is being deleted.",
      "enum": [
        "CREATING",
        "ACTIVE",
        "DELETING"
      ],
      "type": "string"
    },
    "dedicatedv1beta1QueryAuditLogFilesResponse": {
      "properties": {
        "auditLogFiles": {
          "items": {
            "$ref": "#/definitions/dedicatedv1beta1QueryAuditLogFilesResponseAuditLogFile",
            "type": "object"
          },
          "type": "array"
        },
        "nextPageToken": {
          "type": "string"
        },
        "totalSize": {
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "dedicatedv1beta1QueryAuditLogFilesResponseAuditLogFile": {
      "properties": {
        "bucket": {
          "type": "string"
        },
        "createTime": {
          "format": "date-time",
          "type": "string"
        },
        "filename": {
          "type": "string"
        },
        "sizeByte": {
          "format": "int32",
          "type": "integer"
        },
        "uri": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "dedicatedv1beta1ResetRootPasswordResponse": {
      "type": "object"
    },
    "dedicatedv1beta1TidbNodeGroup": {
      "properties": {
        "clusterId": {
          "description": "The ID of the cluster that the TiDB node group belongs to.\n\n- This field is **optional** when creating a cluster with the default TiDB group.\n\n- This field is **required** when creating a non-default TiDB group.",
          "example": "1",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of the TiDB group.",
          "example": "DefaultGroup",
          "type": "string"
        },
        "endpoints": {
          "description": "The endpoints of the TiDB group.",
          "example": [],
          "items": {
            "$ref": "#/definitions/dedicatedv1beta1TidbNodeGroupEndpoint",
            "type": "object"
          },
          "readOnly": true,
          "title": "Endpoint",
          "type": "array"
        },
        "isDefaultGroup": {
          "description": "Indicates whether this is the default TiDB node group.",
          "example": false,
          "readOnly": true,
          "type": "boolean"
        },
        "name": {
          "description": "The resource name of the TiDB group, in the format of `tidbNodeGroups/{tidb_node_group_id}`.",
          "example": "tidbNodeGroups/1",
          "readOnly": true,
          "type": "string"
        },
        "nodeChangingProgress": {
          "allOf": [
            {
              "$ref": "#/definitions/ClusterNodeChangingProgress"
            }
          ],
          "description": "The progress of node configuration changes.",
          "readOnly": true,
          "title": "NodeChangingProgress"
        },
        "nodeCount": {
          "description": "The number of TiDB nodes in the TiDB group. It must be greater than or equal to `1`.",
          "example": 2,
          "format": "int32",
          "minimum": 1,
          "type": "integer"
        },
        "nodeSpecDisplayName": {
          "description": "The display name of the node spec of the TiDB group. For example, `8 vCPU, 32 GiB`.",
          "example": "8 vCPU, 32 GiB",
          "readOnly": true,
          "type": "string"
        },
        "nodeSpecKey": {
          "description": "The node spec key of the TiDB group. For example, `8C32G`.",
          "example": "8C32G",
          "type": "string"
        },
        "nodeSpecVersion": {
          "description": "The version tag of the node spec resource. The performance and price of the component may vary based on the version tag.",
          "readOnly": true,
          "type": "string"
        },
        "state": {
          "allOf": [
            {
              "$ref": "#/definitions/dedicatedv1beta1TidbNodeGroupState"
            }
          ],
          "description": "The current state of the TiDB group.",
          "example": "ACTIVE",
          "readOnly": true
        },
        "tidbNodeGroupId": {
          "description": "The unique ID of the TiDB group.",
          "example": "1",
          "readOnly": true,
          "type": "string"
        },
        "tiproxyNodeChangingProgress": {
          "allOf": [
            {
              "$ref": "#/definitions/ClusterNodeChangingProgress"
            }
          ],
          "description": "The progress of TiProxy node configuration changes.",
          "readOnly": true
        },
        "tiproxySetting": {
          "allOf": [
            {
              "$ref": "#/definitions/dedicatedv1beta1TidbNodeGroupTiProxySetting"
            }
          ],
          "description": "Configures TiProxy settings for this TiDB group. If not specified, the default TiProxy settings is used."
        }
      },
      "required": [
        "nodeCount"
      ],
      "type": "object"
    },
    "dedicatedv1beta1TidbNodeGroupEndpoint": {
      "properties": {
        "connectionType": {
          "allOf": [
            {
              "$ref": "#/definitions/v1beta1TidbNodeGroupEndpointConnectionType"
            }
          ],
          "description": "The connection type for TiDB node group endpoints.\n\n- `\"PUBLIC\"`: indicates that the endpoint is accessible over the public network.\n\n- `\"VPC_PEERING\"`: indicates that the endpoint is accessible over [VPC peering](https://docs.pingcap.com/tidbcloud/tidb-cloud-glossary/#vpc-peering).\n\n- `\"PRIVATE_ENDPOINT\"`: indicates that the endpoint is accessible over a private link.",
          "example": "PRIVATE_ENDPOINT",
          "readOnly": true
        },
        "host": {
          "description": "The hostname or IP address of the endpoint. For `PRIVATE_ENDPOINT` connection types, availability varies by cloud provider:\n\n- For clusters deployed on AWS, the `host` field is available after the private link service is ready.\n\n- For clusters deployed on Google Cloud or Azure, the `host` field is available after you create a `PrivateEndpointConnection`.",
          "readOnly": true,
          "type": "string"
        },
        "port": {
          "description": "The port of the endpoint connection.",
          "format": "int32",
          "readOnly": true,
          "type": "integer"
        }
      },
      "type": "object"
    },
    "dedicatedv1beta1TidbNodeGroupState": {
      "description": " - ACTIVE: Indicates the TiDB group is active and ready for use.\n - MODIFYING: Indicates the TiDB group is being modified.\n - PAUSED: Indicates the TiDB group is paused.",
      "enum": [
        "ACTIVE",
        "MODIFYING",
        "PAUSED"
      ],
      "type": "string"
    },
    "dedicatedv1beta1TidbNodeGroupTiProxySetting": {
      "properties": {
        "nodeCount": {
          "description": "The number of TiProxy nodes in the TiDB group. If not specified or set to `0`, TiProxy is disabled.",
          "example": 2,
          "format": "int32",
          "type": "integer",
          "x-nullable": true
        },
        "nodeSpecDisplayName": {
          "description": "The display name of the TiProxy node spec. For example, `2 vCPU, 4 GiB`.",
          "example": "2 vCPU, 4 GiB",
          "readOnly": true,
          "type": "string"
        },
        "nodeSpecKey": {
          "description": "The node spec key of the TiProxy nodes in the cluster. For example, `2C4G`.\n\nTo view available node specs, use the [List node specs](#tag/RegionService/operation/RegionService_ListNodeSpecs) endpoint.",
          "example": "2C4G",
          "type": "string"
        },
        "nodeSpecVersion": {
          "readOnly": true,
          "type": "string"
        }
      },
      "required": [
        "nodeSpecKey"
      ],
      "type": "object"
    },
    "dedicatedv1beta1VpcPeering": {
      "properties": {
        "awsVpcPeeringConnectionId": {
          "description": "Only for AWS vpc peerings.",
          "readOnly": true,
          "type": "string",
          "x-nullable": true
        },
        "customerAccountId": {
          "description": "In AWS, it is the account ID.\nIn GCP, it is the project name.",
          "type": "string"
        },
        "customerRegionId": {
          "description": "Format: {cloud_provider}-{region_code}\nFor AWS, it's required.\nFor GCP, it's optional. Since GCP does not require region_id when creating VPC peering.",
          "type": "string"
        },
        "customerVpcCidr": {
          "type": "string"
        },
        "customerVpcId": {
          "description": "In AWS, it is the VPC ID.\nIn GCP, it is the network name.",
          "type": "string"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The labels of the vpc peering. It always contains the `project_id` label.",
          "readOnly": true,
          "type": "object"
        },
        "name": {
          "readOnly": true,
          "title": "Format: vpcPeerings/{vpc_peering_id}",
          "type": "string"
        },
        "state": {
          "allOf": [
            {
              "$ref": "#/definitions/dedicatedv1beta1VpcPeeringState"
            }
          ],
          "readOnly": true
        },
        "tidbCloudAccountId": {
          "description": "In AWS, it is the account ID.\nIn GCP, it is the project name.",
          "readOnly": true,
          "type": "string"
        },
        "tidbCloudCloudProvider": {
          "allOf": [
            {
              "$ref": "#/definitions/v1beta1RegionCloudProvider"
            }
          ],
          "readOnly": true
        },
        "tidbCloudRegionId": {
          "title": "Format: {cloud_provider}-{region_code}",
          "type": "string"
        },
        "tidbCloudVpcCidr": {
          "readOnly": true,
          "type": "string"
        },
        "tidbCloudVpcId": {
          "description": "In AWS, it is the VPC ID.\nIn GCP, it is the network name.",
          "readOnly": true,
          "type": "string"
        },
        "vpcPeeringId": {
          "readOnly": true,
          "title": "Format {cloud_provider}-{random_suffix}",
          "type": "string"
        }
      },
      "required": [
        "tidbCloudRegionId",
        "customerAccountId",
        "customerVpcId",
        "customerVpcCidr"
      ],
      "type": "object"
    },
    "dedicatedv1beta1VpcPeeringState": {
      "enum": [
        "PENDING",
        "FAILED",
        "ACTIVE"
      ],
      "type": "string"
    },
    "googlerpcStatus": {
      "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).",
      "properties": {
        "code": {
          "description": "The status code, which should be an enum value of\n[google.rpc.Code][google.rpc.Code].",
          "format": "int32",
          "type": "integer"
        },
        "details": {
          "description": "A list of messages that carry the error details.  There is a common set of\nmessage types for APIs to use.",
          "items": {
            "$ref": "#/definitions/protobufAny",
            "type": "object"
          },
          "type": "array"
        },
        "message": {
          "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\n[google.rpc.Status.details][google.rpc.Status.details] field, or localized\nby the client.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "protobufAny": {
      "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    }",
      "properties": {
        "@type": {
          "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "tidb_cloud_open_apidedicatedv1beta1Cluster": {
      "description": "Cluster represents a dedicated TiDB cluster.",
      "properties": {
        "annotations": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The annotations for the cluster. The following lists some predefined annotations:\n- `tidb.cloud/has-set-password`: indicates whether the cluster has a root password set.\n- `tidb.cloud/available-features`: lists available features of the cluster.\n- `tidb.cloud/insufficient-vm-resource`: indicates insufficient virtual machine resources during during cluster creation or modification.",
          "example": {
            "tidb.cloud/has-set-password": "false"
          },
          "readOnly": true,
          "title": "map\u003cstring, string\u003e",
          "type": "object"
        },
        "cloudProvider": {
          "allOf": [
            {
              "$ref": "#/definitions/v1beta1RegionCloudProvider"
            }
          ],
          "description": "The cloud provider where the cluster is located.\n\n- `\"aws\"`: Amazon Web Services\n\n- `\"gcp\"`: Google Cloud\n\n- `\"azure\"`: Microsoft Azure\n\n- `\"alicloud\"`: Alibaba Cloud",
          "example": "aws",
          "readOnly": true,
          "title": "CloudProvider"
        },
        "clusterId": {
          "description": "The ID of the cluster.",
          "example": "1",
          "readOnly": true,
          "type": "string"
        },
        "createTime": {
          "description": "The timestamp when the cluster was created, in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.",
          "example": "2023-10-01T12:00:00Z",
          "format": "date-time",
          "readOnly": true,
          "type": "string"
        },
        "createdBy": {
          "description": "The email address or public API key of the user who create the cluster.",
          "example": "test@example.com",
          "readOnly": true,
          "type": "string"
        },
        "displayName": {
          "description": "The user-defined name of the cluster.",
          "example": "foo-bar",
          "maxLength": 64,
          "minLength": 4,
          "pattern": "^[A-Za-z0-9][-A-Za-z0-9]{2,62}[A-Za-z0-9]$",
          "type": "string"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Key-value pairs used to label the cluster. If the `tidb.cloud/project` label is not specified, the cluster is associated with the default project in the creator's organization. \n\n**Note**: Currently, only the `tidb.cloud/project` label key can be specified when creating a new cluster.",
          "example": {
            "tidb.cloud/project": "1"
          },
          "title": "map\u003cstring, string\u003e",
          "type": "object"
        },
        "name": {
          "description": "The unique identifier for the TiDB cluster, which is generated by the API and follows the format `clusters/{clusterId}`.",
          "example": "clusters/1",
          "readOnly": true,
          "type": "string"
        },
        "pausePlan": {
          "allOf": [
            {
              "$ref": "#/definitions/dedicatedv1beta1ClusterPausePlan"
            }
          ],
          "description": "The pause plan configuration of the cluster.",
          "readOnly": true,
          "title": "PausePlan"
        },
        "port": {
          "default": "4000",
          "description": "The port for cluster connections. All network endpoints in the cluster use this port.",
          "example": 4000,
          "format": "int32",
          "maximum": 65535,
          "minimum": 1024,
          "type": "integer"
        },
        "regionDisplayName": {
          "description": "The display name of the region where the cluster is located. For example, `N. Virginia (us-east-1)`.",
          "example": "N. Virginia (us-east-1)",
          "readOnly": true,
          "type": "string"
        },
        "regionId": {
          "description": "The region where the cluster is deployed, in the format of `{cloud_provider}-{region_code}`. For example, `aws-us-west-2`.",
          "example": "aws-us-west-2",
          "type": "string"
        },
        "rootPassword": {
          "description": "The root password of the cluster. It must be between 8 and 64 characters long and can contain letters, numbers, and special characters.",
          "example": "my-shining-password",
          "maxLength": 64,
          "minLength": 8,
          "pattern": "^.{8,64}$",
          "type": "string"
        },
        "state": {
          "allOf": [
            {
              "$ref": "#/definitions/commonv1beta1ClusterState"
            }
          ],
          "description": "The current state of the cluster.",
          "example": "ACTIVE",
          "readOnly": true
        },
        "tidbNodeSetting": {
          "allOf": [
            {
              "$ref": "#/definitions/v1beta1ClusterTidbNodeSetting"
            }
          ],
          "description": "The configuration for [TiDB nodes](https://docs.pingcap.com/tidbcloud/tidb-cloud-glossary/#tidb-node) in a TiDB Cloud Dedicated cluster.\n\nTo view available node specs for a specific region and cloud provider, use the [List node specs](#tag/RegionService/operation/RegionService_ListNodeSpecs) endpoint.",
          "title": "TidbNodeSetting"
        },
        "tiflashNodeSetting": {
          "allOf": [
            {
              "$ref": "#/definitions/v1beta1ClusterStorageNodeSetting"
            }
          ],
          "description": "The configuration for [TiFlash nodes](https://docs.pingcap.com/tidbcloud/tidb-cloud-glossary/#tiflash-node) in a TiDB Cloud Dedicated cluster. If not set, TiFlash is disabled.\n\nTo view available node specs for a specific region and cloud provider, use the [List node specs](#tag/RegionService/operation/RegionService_ListNodeSpecs) endpoint.",
          "example": {
            "nodeCount": 3,
            "nodeSpecKey": "16C128G",
            "storageSizeGi": 500,
            "storageType": "Basic"
          },
          "title": "StorageNodeSetting"
        },
        "tikvNodeSetting": {
          "allOf": [
            {
              "$ref": "#/definitions/v1beta1ClusterStorageNodeSetting"
            }
          ],
          "description": "The configuration for [TiKV nodes](https://docs.pingcap.com/tidbcloud/tidb-cloud-glossary/#tikv-node) in a TiDB Cloud Dedicated cluster.\n\nTo view available node specs for a specific region and cloud provider, use the [List node specs](#tag/RegionService/operation/RegionService_ListNodeSpecs) endpoint.",
          "title": "StorageNodeSetting"
        },
        "updateTime": {
          "description": "The timestamp when the cluster was last updated, in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.",
          "example": "2023-10-01T12:00:00Z",
          "format": "date-time",
          "readOnly": true,
          "type": "string"
        },
        "version": {
          "description": "The TiDB version of the cluster.",
          "example": "8.5.2",
          "readOnly": true,
          "type": "string"
        }
      },
      "required": [
        "displayName",
        "regionId",
        "tidbNodeSetting",
        "tikvNodeSetting",
        "port"
      ],
      "type": "object"
    },
    "tidb_cloud_open_apidedicatedv1beta1ListClustersResponse": {
      "properties": {
        "clusters": {
          "description": "A list of clusters that match the query.",
          "items": {
            "$ref": "#/definitions/tidb_cloud_open_apidedicatedv1beta1Cluster",
            "type": "object"
          },
          "type": "array"
        },
        "nextPageToken": {
          "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.",
          "example": "next_page_token",
          "type": "string"
        },
        "totalSize": {
          "description": "The total number of clusters that match the query.",
          "example": 1,
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "tidb_cloud_open_apidedicatedv1beta1ListRegionsResponse": {
      "properties": {
        "nextPageToken": {
          "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.",
          "type": "string"
        },
        "regions": {
          "description": "A list of regions that match the query.",
          "items": {
            "$ref": "#/definitions/commonv1beta1Region",
            "type": "object"
          },
          "title": "Region",
          "type": "array"
        },
        "totalSize": {
          "description": "The total number of regions that match the query.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "v1beta1AuditLogConfigBucketWriteCheck": {
      "properties": {
        "errorReason": {
          "description": "The reason why the bucket is not writable. Output only when `writable` is false.",
          "readOnly": true,
          "type": "string"
        },
        "writable": {
          "readOnly": true,
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "v1beta1AuditLogConfigFormat": {
      "enum": [
        "TEXT",
        "JSON"
      ],
      "type": "string"
    },
    "v1beta1AuditLogConfigRotationPolicy": {
      "properties": {
        "maxAgeSecond": {
          "default": "86400",
          "description": "Set the time limitation for audit logs. A log rotation is triggered if the log file exceeds this limitation.\nSetting this variable to 0 means to disable automatic log rotation by time.",
          "format": "int32",
          "maximum": 2592000,
          "type": "integer",
          "x-nullable": true
        },
        "maxSizeMib": {
          "default": "10",
          "description": "Set the file size limitation for audit logs. A log rotation is triggered if the log file exceeds this limitation.\nIn the current version, If you set this variable to 0, TiDB automatically changes it to 10.",
          "format": "int32",
          "maximum": 100,
          "minimum": 1,
          "type": "integer"
        }
      },
      "type": "object"
    },
    "v1beta1ClusterServiceResetRootPasswordBody": {
      "properties": {
        "rootPassword": {
          "description": "The new root password for the cluster. The password must be between 8 and 64 characters long and can contain letters, numbers, and special characters.",
          "example": "new_password",
          "type": "string"
        }
      },
      "required": [
        "rootPassword"
      ],
      "type": "object"
    },
    "v1beta1ClusterStorageNodeSetting": {
      "properties": {
        "nodeChangingProgress": {
          "allOf": [
            {
              "$ref": "#/definitions/ClusterNodeChangingProgress"
            }
          ],
          "description": "The progress of the node changing.",
          "readOnly": true,
          "title": "NodeChangingProgress"
        },
        "nodeCount": {
          "description": "The number of nodes in the cluster.",
          "example": 3,
          "format": "int32",
          "type": "integer"
        },
        "nodeSpecDisplayName": {
          "description": "The display name of the node spec. For example, `8 vCPU, 32 GiB`.",
          "example": "8 vCPU, 32 GiB",
          "readOnly": true,
          "type": "string"
        },
        "nodeSpecKey": {
          "description": "The node spec key of the nodes in the cluster. For example, `8C32G`.",
          "example": "8C32G",
          "type": "string"
        },
        "nodeSpecVersion": {
          "description": "The version tag of the node spec resource. The performance and price of the component may vary based on the version tag.",
          "example": "v1",
          "readOnly": true,
          "type": "string"
        },
        "raftStoreIops": {
          "description": "The IOPS (input/output operations per second) of the Raft store for the node. If not specified, the default IOPS of Raft store is used. It is recommended to leave it blank to use the default settings for optimal performance.",
          "example": 3000,
          "format": "int32",
          "type": "integer",
          "x-nullable": true
        },
        "storageSizeGi": {
          "description": "The storage size of each node in gibibytes (GiB). To view supported storage size ranges, use the [List node specs](#tag/RegionService/operation/RegionService_ListNodeSpecs) or [Get a node spec](#tag/RegionService/operation/RegionService_GetNodeSpec) endpoint.",
          "example": 500,
          "format": "int32",
          "type": "integer"
        },
        "storageType": {
          "allOf": [
            {
              "$ref": "#/definitions/ClusterStorageNodeSettingStorageType"
            }
          ],
          "description": "The storage type of the node. For more information, see [TiKV node storage types](https://docs.pingcap.com/tidbcloud/size-your-cluster/#tikv-node-storage-types) and [TiFlash node storage types](https://docs.pingcap.com/tidbcloud/size-your-cluster/#tiflash-node-storage-types).",
          "example": "Standard"
        }
      },
      "required": [
        "nodeCount",
        "nodeSpecKey",
        "storageSizeGi"
      ],
      "type": "object"
    },
    "v1beta1ClusterTidbNodeSetting": {
      "properties": {
        "nodeSpecDisplayName": {
          "description": "The display name of the node spec. For example, `8 vCPU, 32 GiB`.",
          "example": "8 vCPU, 32 GiB",
          "readOnly": true,
          "type": "string"
        },
        "nodeSpecKey": {
          "description": "The node spec key of the TiDB nodes in the cluster. For example, `8C32G`. \n\nTo get the node spec available configurations of a specific region for a cloud provider, please refer to [List node specs](#tag/RegionService/operation/RegionService_ListNodeSpecs) API.",
          "example": "8C32G",
          "type": "string"
        },
        "nodeSpecVersion": {
          "description": "The version tag of the node spec resource. The performance and price of the component may vary based on the version tag.",
          "example": "v1",
          "readOnly": true,
          "type": "string"
        },
        "tidbNodeGroups": {
          "description": "The [TiDB node groups](https://docs.pingcap.com/tidbcloud/tidb-node-group-overview/) in the cluster.\n\nWhen you create a cluster, this array must contain exactly one `TidbNodeGroup` object, and the `nodeCount` field must be set.",
          "items": {
            "$ref": "#/definitions/dedicatedv1beta1TidbNodeGroup",
            "type": "object"
          },
          "title": "TidbNodeGroup",
          "type": "array"
        }
      },
      "required": [
        "tidbNodeGroups"
      ],
      "type": "object"
    },
    "v1beta1ListNetworkContainersResponse": {
      "properties": {
        "networkContainers": {
          "items": {
            "$ref": "#/definitions/v1beta1NetworkContainer",
            "type": "object"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is omitted, there are no subsequent pages.",
          "type": "string"
        },
        "totalSize": {
          "description": "The total number of network containers that matched the query.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "v1beta1ListNodeInstancesResponse": {
      "properties": {
        "nextPageToken": {
          "description": "A token, which can be sent as `pageToken` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
          "example": "next_page_token",
          "type": "string"
        },
        "nodeInstances": {
          "description": "A list of node instances that matched the query.",
          "items": {
            "$ref": "#/definitions/v1beta1NodeInstance",
            "type": "object"
          },
          "title": "NodeInstance",
          "type": "array"
        },
        "totalSize": {
          "description": "The total number of node instances that matched the query.",
          "example": 1,
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "v1beta1ListNodeSpecsResponse": {
      "properties": {
        "nextPageToken": {
          "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.",
          "type": "string"
        },
        "nodeSpecs": {
          "description": "A list of node specs that match the query.",
          "items": {
            "$ref": "#/definitions/v1beta1NodeSpec",
            "type": "object"
          },
          "type": "array"
        },
        "totalSize": {
          "description": "The total number of node specs that match the query.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "v1beta1NetworkContainer": {
      "properties": {
        "cidrNotation": {
          "description": "If not set, the default cidr of the region will be used.",
          "type": "string"
        },
        "cloudProvider": {
          "allOf": [
            {
              "$ref": "#/definitions/v1beta1RegionCloudProvider"
            }
          ],
          "readOnly": true
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The labels of the cluster.\nIf there is no \"project_id\" in labels, resource should be in the default project of the creator's organization.",
          "type": "object"
        },
        "name": {
          "readOnly": true,
          "title": "Format: networkContainers/{network_container_id}",
          "type": "string"
        },
        "networkContainerId": {
          "readOnly": true,
          "type": "string"
        },
        "regionDisplayName": {
          "readOnly": true,
          "type": "string"
        },
        "regionId": {
          "title": "Format: {cloud_provider}-{region_code}",
          "type": "string"
        },
        "state": {
          "allOf": [
            {
              "$ref": "#/definitions/v1beta1NetworkContainerState"
            }
          ],
          "readOnly": true
        },
        "vpcId": {
          "description": "For AWS, it is the vpc id.\nFor GCP, it is the network name.\nFor Azure, it is the vnet name.",
          "readOnly": true,
          "type": "string"
        }
      },
      "required": [
        "regionId"
      ],
      "type": "object"
    },
    "v1beta1NetworkContainerState": {
      "enum": [
        "ACTIVE",
        "INACTIVE"
      ],
      "type": "string"
    },
    "v1beta1NodeInstance": {
      "description": "All fields are output only.",
      "properties": {
        "availabilityZone": {
          "description": "The availability zone of the node instance, e.g. `us-west-2a`.",
          "example": "us-west-2a",
          "readOnly": true,
          "type": "string"
        },
        "clusterId": {
          "description": "The ID of the cluster to which the node instance belongs.",
          "example": "1",
          "type": "string"
        },
        "componentType": {
          "allOf": [
            {
              "$ref": "#/definitions/dedicatedv1beta1ComponentType"
            }
          ],
          "description": "The component type of the node instance. It can be one of the following values:\n- `TIDB`: TiDB node instance.\n- `TIKV`: TiKV node instances.\n- `TIFLASH`: TiFlash node instances.\n- `PD`: PD node instances.\n- `PROXY`: Proxy node instances.",
          "example": "TIDB"
        },
        "instanceId": {
          "description": "The ID of the node instance. It is formatted as:\n- `tidb-{index}` for TiDB instances in the default TiDB group\n- `{tidb_group_name}-tidb-{index}` for TiDB instances in non-default TiDB groups\n- `{component_type}-{index}` for other instances.",
          "example": "tidb-0",
          "type": "string"
        },
        "isDefaultTidbNodeGroup": {
          "description": "Indicates whether the TiDB node group that the node instance belongs to is the default one.",
          "example": true,
          "type": "boolean",
          "x-nullable": true
        },
        "memorySizeGi": {
          "description": "The memory size of the node instance in GiB. e.g. `32`.",
          "example": 32,
          "format": "int32",
          "type": "integer"
        },
        "name": {
          "description": "The name of the node instance resource which is formatted as: `clusters/{cluster_id}/nodeInstances/{instance_id}`.",
          "example": "clusters/1/nodeInstances/tidb-0",
          "type": "string"
        },
        "nodeSpecDisplayName": {
          "description": "The display name of the node spec of the node instance. e.g. `8 vCPU, 32 GiB`.",
          "example": "8 vCPU, 32 GiB",
          "type": "string"
        },
        "nodeSpecKey": {
          "description": "The node spec key of the node instance. e.g. `8C32G`.",
          "example": "8C32G",
          "type": "string"
        },
        "nodeSpecVersion": {
          "description": "The version tag of the node spec resource. The performance and price of the component may vary based on the version tag.",
          "type": "string"
        },
        "raftStoreIops": {
          "description": "The IOPS of the raft store of the node instance. Only available for instances which have storage. If not set, the default IOPS of raft store will be used.",
          "format": "int32",
          "type": "integer",
          "x-nullable": true
        },
        "state": {
          "allOf": [
            {
              "$ref": "#/definitions/v1beta1NodeInstanceState"
            }
          ],
          "description": "The state of the node instance.\n- `CREATING`: indicates the node instance is being created.\n- `AVAILABLE`: indicates the node instance is available for use.\n- `DELETING`: indicates the node instance is being deleted.\n- `UNAVAILABLE`: indicates the node instance is not available.",
          "example": "AVAILABLE"
        },
        "storageSizeGi": {
          "description": "The storage size of the node instance in GiB. e.g. `200`.",
          "example": 200,
          "format": "int32",
          "type": "integer"
        },
        "storageType": {
          "allOf": [
            {
              "$ref": "#/definitions/ClusterStorageNodeSettingStorageType"
            }
          ],
          "description": "The storage type of the node instance. Only available for instances which have storage.",
          "example": "Standard"
        },
        "tidbNodeGroupDisplayName": {
          "description": "The display name of the TiDB node group that the node instance belongs to.",
          "example": "DefaultGroup",
          "type": "string",
          "x-nullable": true
        },
        "tidbNodeGroupId": {
          "description": "The ID of the TiDB node group that the node instance belongs to.",
          "example": "node_group_id",
          "type": "string",
          "x-nullable": true
        },
        "vCpu": {
          "description": "The number of vCPUs of the node instance. e.g. `8`.",
          "example": 8,
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "v1beta1NodeInstanceState": {
      "enum": [
        "CREATING",
        "AVAILABLE",
        "DELETING",
        "UNAVAILABLE"
      ],
      "type": "string"
    },
    "v1beta1NodeSpec": {
      "description": "All fields are output only.",
      "properties": {
        "componentType": {
          "allOf": [
            {
              "$ref": "#/definitions/dedicatedv1beta1ComponentType"
            }
          ],
          "description": "The component type of the node spec."
        },
        "default": {
          "description": "Indicates whether this is the default node spec.",
          "type": "boolean"
        },
        "defaultNodeCount": {
          "description": "The default number of nodes for the node spec resource.",
          "format": "int32",
          "type": "integer"
        },
        "defaultRaftStoreIops": {
          "description": "The default IOPS for Raft log storage of the node spec resource. Currently, this parameter is only useful when overriding IOPS for Raft log storage.",
          "example": 3000,
          "format": "int32",
          "type": "integer",
          "x-nullable": true
        },
        "defaultStorageSizeGi": {
          "description": "The default storage size of the node spec resource in GiB.",
          "format": "int32",
          "type": "integer"
        },
        "displayName": {
          "description": "The display name of the node spec. For example, `8 vCPU, 32 GiB`.",
          "type": "string"
        },
        "maxRaftStoreIops": {
          "description": "The maximum IOPS for Raft log storage of the node spec resource. Currently, this parameter is only useful when overriding IOPS for Raft log storage.",
          "format": "int32",
          "type": "integer",
          "x-nullable": true
        },
        "maxStorageSizeGi": {
          "description": "The maximum storage size of the node spec resource in GiB.",
          "format": "int32",
          "type": "integer"
        },
        "memorySizeGi": {
          "description": "The amount of memory in gibibytes (GiB) allocated to the node spec. For example, `32`.",
          "format": "int32",
          "type": "integer"
        },
        "minRaftStoreIops": {
          "description": "The minimum IOPS for Raft log storage of the node spec resource. Currently, this parameter is only useful when overriding IOPS for Raft log storage.",
          "format": "int32",
          "type": "integer",
          "x-nullable": true
        },
        "minStorageSizeGi": {
          "description": "The minimum storage size of the node spec resource in GiB.",
          "format": "int32",
          "type": "integer"
        },
        "name": {
          "description": "The name of the node spec resource, in the format of `regions/{region_id}/componentTypes/{component_type}/nodeSpecs/{node_spec_key}`. For example, `regions/aws-us-west-2/componentTypes/TIKV/nodeSpecs/8C32G`.",
          "type": "string"
        },
        "nodeSpecKey": {
          "description": "The key of the node spec. For example, `8C32G`.",
          "type": "string"
        },
        "regionId": {
          "description": "The region ID of the node spec resource, in the format of `{cloud_provider}-{region_code}`. For example, `aws-us-west-2`.",
          "type": "string"
        },
        "storageTypes": {
          "description": "The storage types supported by the node spec resource.",
          "items": {
            "$ref": "#/definitions/ClusterStorageNodeSettingStorageType"
          },
          "type": "array"
        },
        "vCpu": {
          "description": "The number of virtual CPUs (vCPUs) allocated to the node spec. For example, `8`.",
          "format": "int32",
          "type": "integer"
        },
        "version": {
          "description": "The version tag of the node spec resource. The performance and price of the component may vary based on the version tag.",
          "example": "v1",
          "type": "string"
        }
      },
      "type": "object"
    },
    "v1beta1PauseClusterResponse": {
      "properties": {
        "cluster": {
          "allOf": [
            {
              "$ref": "#/definitions/tidb_cloud_open_apidedicatedv1beta1Cluster"
            }
          ],
          "description": "The cluster details after it is paused.",
          "title": "Cluster"
        }
      },
      "required": [
        "cluster"
      ],
      "type": "object"
    },
    "v1beta1PublicEndpointSetting": {
      "properties": {
        "enabled": {
          "description": "Indicates whether the public endpoint is enabled for the TiDB group.",
          "type": "boolean",
          "x-nullable": true
        },
        "ipAccessList": {
          "description": "A list of IP access control lists for the public endpoint. If not set, all IPs are allowed to access the public endpoint.",
          "items": {
            "$ref": "#/definitions/v1beta1PublicEndpointSettingIpAccessList",
            "type": "object"
          },
          "title": "IpAccessList",
          "type": "array"
        },
        "name": {
          "description": "The name of the public endpoint setting resource formatted as: `tidbNodeGroups/{tidb_node_group_id}/publicEndpointSetting`.",
          "readOnly": true,
          "type": "string"
        },
        "tidbNodeGroupId": {
          "description": "The ID of the TiDB group to which the public endpoint setting belongs. If set to \"-\", the default TiDB group will be used.",
          "type": "string"
        }
      },
      "required": [
        "tidbNodeGroupId"
      ],
      "type": "object"
    },
    "v1beta1PublicEndpointSettingIpAccessList": {
      "properties": {
        "cidrNotation": {
          "description": "The CIDR notation of the IP access control list.",
          "type": "string"
        },
        "description": {
          "description": "The description of the IP access control list.",
          "type": "string"
        }
      },
      "required": [
        "cidrNotation"
      ],
      "type": "object"
    },
    "v1beta1RegionCloudProvider": {
      "description": "Enum of cloud provider names.\n\n - aws: Amazon Web Services.\n - gcp: Google Cloud Platform.\n - azure: Microsoft Azure.\n - alicloud: Alibaba Cloud",
      "enum": [
        "aws",
        "gcp",
        "azure",
        "alicloud"
      ],
      "type": "string"
    },
    "v1beta1ReplaceAuditLogFilterRuleRequestAuditLogFilterRule": {
      "properties": {
        "auditLogFilterRuleId": {
          "type": "string"
        },
        "clusterId": {
          "type": "string"
        },
        "disabled": {
          "type": "boolean"
        },
        "displayName": {
          "type": "string"
        },
        "eventTypes": {
          "items": {
            "$ref": "#/definitions/dedicatedv1beta1AuditLogFilterRuleEventType"
          },
          "type": "array"
        },
        "userExpr": {
          "type": "string"
        }
      },
      "required": [
        "clusterId",
        "auditLogFilterRuleId"
      ],
      "type": "object"
    },
    "v1beta1ReplaceAuditLogFilterRuleResponse": {
      "properties": {
        "auditLogFilterRule": {
          "allOf": [
            {
              "$ref": "#/definitions/dedicatedv1beta1AuditLogFilterRule"
            }
          ],
          "readOnly": true
        }
      },
      "type": "object"
    },
    "v1beta1ResumeClusterResponse": {
      "properties": {
        "cluster": {
          "allOf": [
            {
              "$ref": "#/definitions/tidb_cloud_open_apidedicatedv1beta1Cluster"
            }
          ],
          "description": "The cluster details after it is resumed.",
          "title": "Cluster"
        }
      },
      "required": [
        "cluster"
      ],
      "type": "object"
    },
    "v1beta1ShowCloudProvidersResponse": {
      "properties": {
        "cloudProviders": {
          "description": "A list of cloud providers that are available for the project.\n\n- `\"aws\"`: Amazon Web Services\n\n- `\"gcp\"`: Google Cloud\n\n- `\"azure\"`: Microsoft Azure\n\n- `\"alicloud\"`: Alibaba Cloud",
          "items": {
            "$ref": "#/definitions/v1beta1RegionCloudProvider"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "v1beta1ShowCmekAccessIamPrincipalResponse": {
      "properties": {
        "awsCmekPrincipal": {
          "$ref": "#/definitions/ShowCmekAccessIamPrincipalResponseAwsCmekPrincipal"
        },
        "azureCmekPrincipal": {
          "$ref": "#/definitions/v1beta1ShowCmekAccessIamPrincipalResponseAzureCmekPrincipal"
        },
        "cloudProvider": {
          "$ref": "#/definitions/v1beta1RegionCloudProvider"
        },
        "projectId": {
          "type": "string"
        },
        "regionId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "v1beta1ShowCmekAccessIamPrincipalResponseAzureCmekPrincipal": {
      "properties": {
        "appRegistration": {
          "allOf": [
            {
              "$ref": "#/definitions/dedicatedv1beta1AzureAppRegistration"
            }
          ],
          "readOnly": true
        },
        "keyVaultKeySuffix": {
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "v1beta1ShowNodeQuotaResponse": {
      "properties": {
        "componentQuotas": {
          "description": "A list of quotas for each component type. Each quota specifies the maximum number of nodes allowed for that component.",
          "example": [
            {
              "componentType": "TIDB",
              "quota": 200
            },
            {
              "componentType": "TIKV",
              "quota": 200
            },
            {
              "componentType": "TIFLASH",
              "quota": 50
            }
          ],
          "items": {
            "$ref": "#/definitions/ShowNodeQuotaResponseComponentQuota",
            "type": "object"
          },
          "title": "ComponentQuota",
          "type": "array"
        }
      },
      "type": "object"
    },
    "v1beta1ShowObjectStorageAccessIamPrincipalResponse": {
      "properties": {
        "iamPrincipal": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "v1beta1TidbNodeGroupEndpointConnectionType": {
      "description": "The connection type for TiDB node group endpoints.\n\n - PUBLIC: Indicates that the endpoint is accessible over the public network.\n - VPC_PEERING: Indicates that the endpoint is accessible over [VPC peering](https://docs.pingcap.com/tidbcloud/tidb-cloud-glossary/#vpc-peering).\n - PRIVATE_ENDPOINT: Indicates that the endpoint is accessible over a private link.",
      "enum": [
        "PUBLIC",
        "VPC_PEERING",
        "PRIVATE_ENDPOINT"
      ],
      "type": "string"
    },
    "v1beta1UpdateAuditLogConfigRequestAuditLogConfig": {
      "properties": {
        "awsRoleArn": {
          "type": "string"
        },
        "azureSasToken": {
          "type": "string"
        },
        "bucketManager": {
          "$ref": "#/definitions/AuditLogConfigBucketManager"
        },
        "bucketRegionId": {
          "title": "Format: {cloud_provider}-{region_code}",
          "type": "string"
        },
        "bucketUri": {
          "type": "string"
        },
        "clusterId": {
          "type": "string"
        },
        "enabled": {
          "type": "boolean",
          "x-nullable": true
        },
        "format": {
          "$ref": "#/definitions/v1beta1AuditLogConfigFormat"
        },
        "rotationPolicy": {
          "$ref": "#/definitions/v1beta1AuditLogConfigRotationPolicy"
        },
        "unredacted": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": [
        "clusterId"
      ],
      "type": "object"
    },
    "v1beta1UpdateClusterRequestCluster": {
      "properties": {
        "clusterId": {
          "description": "The ID of the cluster to update.",
          "example": "1",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of the cluster.",
          "example": "My Cluster",
          "type": "string"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The labels of the cluster. \n\n**Note**: Currently, does not support `labels` updates.",
          "example": {},
          "title": "map\u003cstring, string\u003e",
          "type": "object"
        },
        "tidbNodeSetting": {
          "allOf": [
            {
              "$ref": "#/definitions/v1beta1UpdateClusterRequestTidbNodeSetting"
            }
          ],
          "description": "The TiDB node setting for updating cluster. \n\nTo get the node spec available configurations of a specific region for a cloud provider, please refer to [List node specs](#tag/RegionService/operation/RegionService_ListNodeSpecs) API."
        },
        "tiflashNodeSetting": {
          "allOf": [
            {
              "$ref": "#/definitions/v1beta1UpdateClusterRequestStorageNodeSetting"
            }
          ],
          "description": "The TiFlash node setting for updating cluster. \n\nTo get the node spec available configurations of a specific region for a cloud provider, please refer to [List node specs](#tag/RegionService/operation/RegionService_ListNodeSpecs) API.",
          "example": {
            "nodeCount": 3,
            "nodeSpecKey": "16C128G",
            "storageSizeGi": 500,
            "storageType": "Basic"
          }
        },
        "tikvNodeSetting": {
          "allOf": [
            {
              "$ref": "#/definitions/v1beta1UpdateClusterRequestStorageNodeSetting"
            }
          ],
          "description": "The TiKV node setting for updating cluster. \n\nTo get the node spec available configurations of a specific region for a cloud provider, please refer to [List node specs](#tag/RegionService/operation/RegionService_ListNodeSpecs) API."
        }
      },
      "required": [
        "clusterId"
      ],
      "type": "object"
    },
    "v1beta1UpdateClusterRequestStorageNodeSetting": {
      "properties": {
        "nodeCount": {
          "description": "The number of nodes in the cluster. \nWhen update TiFlash node setting: \n- If the node count is set to 0, the TiFlash node will be removed.\n- If the node count is null, the TiFlash node count won't change.\nFor other components, if the node count is set to 0, server will ignore the node count.",
          "example": 3,
          "format": "int32",
          "type": "integer",
          "x-nullable": true
        },
        "nodeSpecKey": {
          "description": "The node spec key of the nodes in the cluster. For example, `8C32G`.",
          "example": "8C32G",
          "type": "string"
        },
        "raftStoreIops": {
          "description": "The IOPS of the raft store for the node. If not set, the default IOPS of raft store will be used.",
          "example": 3000,
          "format": "int32",
          "type": "integer",
          "x-nullable": true
        },
        "storageSizeGi": {
          "description": "The storage size of the node in GiB. To get the supported storage size range, please refer to the `NodeSpec` resource.",
          "example": 500,
          "format": "int32",
          "type": "integer"
        },
        "storageType": {
          "allOf": [
            {
              "$ref": "#/definitions/ClusterStorageNodeSettingStorageType"
            }
          ],
          "description": "The type of storage for the node. Default to `Basic`. For more information, see [TiKV node storage types](https://docs.pingcap.com/tidbcloud/size-your-cluster/#tikv-node-storage-types) and [TiFlash node storage types](https://docs.pingcap.com/tidbcloud/size-your-cluster/#tiflash-node-storage-types).",
          "example": "Standard"
        }
      },
      "type": "object"
    },
    "v1beta1UpdateClusterRequestTidbNodeSetting": {
      "properties": {
        "nodeSpecKey": {
          "description": "The node spec key of the TiDB nodes in the cluster. For example, `8C32G`. \n\nTo get the node spec available configurations of a specific region for a cloud provider, please refer to [List node specs](#tag/Cluster/operation/RegionService_ListNodeSpecs) API.",
          "example": "8C32G",
          "type": "string"
        },
        "tidbNodeGroups": {
          "description": "The TiDB node groups of the cluster.",
          "items": {
            "$ref": "#/definitions/UpdateClusterRequestTidbNodeSettingTidbNodeGroup",
            "type": "object"
          },
          "title": "TidbNodeGroup",
          "type": "array"
        }
      },
      "type": "object"
    },
    "v1beta1UpdateMaintenanceTaskRequestMaintenanceTask": {
      "properties": {
        "maintenanceTaskId": {
          "type": "string"
        },
        "scheduledApplyTime": {
          "description": "Timestamp when the task run.",
          "format": "date-time",
          "type": "string"
        }
      },
      "required": [
        "maintenanceTaskId",
        "scheduledApplyTime"
      ],
      "type": "object"
    },
    "v1beta1UpdateMaintenanceWindowRequestMaintenanceWindow": {
      "properties": {
        "dayHour": {
          "format": "int32",
          "type": "integer"
        },
        "hourMinute": {
          "format": "int32",
          "type": "integer"
        },
        "maintenanceWindowId": {
          "title": "Format: project-{project_id}",
          "type": "string"
        },
        "weekDay": {
          "format": "int32",
          "type": "integer"
        }
      },
      "required": [
        "maintenanceWindowId"
      ],
      "type": "object"
    },
    "v1beta1UpdateTidbNodeGroupRequestTidbNodeGroup": {
      "properties": {
        "clusterId": {
          "description": "The ID of the cluster to which the TiDB Node Group belongs.",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of the TiDB Node Group.",
          "type": "string"
        },
        "nodeCount": {
          "description": "The node count of the TiDB Node Group.",
          "format": "int32",
          "type": "integer",
          "x-nullable": true
        },
        "tidbNodeGroupId": {
          "description": "The ID of the TiDB Node Group to update.",
          "type": "string"
        },
        "tiproxySetting": {
          "allOf": [
            {
              "$ref": "#/definitions/dedicatedv1beta1TidbNodeGroupTiProxySetting"
            }
          ],
          "description": "The TiProxy setting of the TiDB Node Group. If not specified, the default TiProxy setting will be used.",
          "title": "TiProxySetting"
        }
      },
      "required": [
        "clusterId",
        "tidbNodeGroupId"
      ],
      "type": "object"
    }
  },
  "host": "dedicated.tidbapi.com",
  "info": {
    "description": "*TiDB Cloud API is in beta.*\n\nThis API manages [TiDB Cloud Dedicated](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#tidb-cloud-dedicated) clusters. For TiDB Cloud Starter or TiDB Cloud Essential clusters, use the [TiDB Cloud Starter and Essential API](). 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 API is a [REST interface](https://en.wikipedia.org/wiki/Representational_state_transfer) that provides you with programmatic access to manage clusters 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 key, 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://dedicated.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 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 clusters 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://dedicated.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 clusters 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, the 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** \u003e **API Keys**.\n3. On the **API Keys** page, click **Create API Key**.\n4. Enter a description for your API key. The role of the API key is always `Organization Owner` currently.\n5. Click **Next**. Copy and save the public key and the private key.\n6. 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.\n7. 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** \u003e **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** \u003e **API Keys**.\n3. On the **API Keys** page, click **...** in the API key row that you want to change, and then click **Edit**.\n4. You can update the API key description.\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** \u003e **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## 20250812\n\n- Initial release of the TiDB Cloud Dedicated API, including the following resources and endpoints:\n\t* Cluster\r\n\t\t* [List clusters](#tag/Cluster/operation/ClusterService_ListClusters)\r\n\t\t* [Create a cluster](#tag/Cluster/operation/ClusterService_CreateCluster)\r\n\t\t* [Get a cluster](#tag/Cluster/operation/ClusterService_GetCluster)\r\n\t\t* [Delete a cluster](#tag/Cluster/operation/ClusterService_DeleteCluster)\r\n\t\t* [Update a cluster](#tag/Cluster/operation/ClusterService_UpdateCluster)\r\n\t\t* [Pause a cluster](#tag/Cluster/operation/ClusterService_PauseCluster)\r\n\t\t* [Resume a cluster](#tag/Cluster/operation/ClusterService_ResumeCluster)\r\n\t\t* [Reset the root password of a cluster](#tag/Cluster/operation/ClusterService_ResetRootPassword)\r\n\t\t* [List node quotas for your organization](#tag/Cluster/operation/ClusterService_ShowNodeQuota)\r\n\t\t* [Get log redaction policy](#tag/Cluster/operation/ClusterService_GetLogRedactionPolicy)\r\n\t* Region\r\n\t\t* [List regions](#tag/Region/operation/RegionService_ListRegions)\r\n\t\t* [Get a region](#tag/Region/operation/RegionService_GetRegion)\r\n\t\t* [List cloud providers](#tag/Region/operation/RegionService_ShowCloudProviders)\r\n\t\t* [List node specs](#tag/Region/operation/RegionService_ListNodeSpecs)\r\n\t\t* [Get a node spec](#tag/Region/operation/RegionService_GetNodeSpec)\r\n\t* Private Endpoint Connection\r\n\t\t* [Get private link service for a TiDB node group](#tag/Private-Endpoint-Connection/operation/PrivateEndpointConnectionService_GetPrivateLinkService)\r\n\t\t* [Create a private endpoint connection](#tag/Private-Endpoint-Connection/operation/PrivateEndpointConnectionService_CreatePrivateEndpointConnection)\r\n\t\t* [List private endpoint connections](#tag/Private-Endpoint-Connection/operation/PrivateEndpointConnectionService_ListPrivateEndpointConnections)\r\n\t\t* [Get a private endpoint connection](#tag/Private-Endpoint-Connection/operation/PrivateEndpointConnectionService_GetPrivateEndpointConnection)\r\n\t\t* [Delete a private endpoint connection](#tag/Private-Endpoint-Connection/operation/PrivateEndpointConnectionService_DeletePrivateEndpointConnection)\r\n\t* Import\r\n\t\t* [List import tasks](#tag/Import/operation/ListImports)\r\n\t\t* [Create an import task](#tag/Import/operation/CreateImport)\r\n\t\t* [Get an import task](#tag/Import/operation/GetImport)\r\n\t\t* [Cancel an import task](#tag/Import/operation/CancelImport)\r\n",
    "title": "TiDB Cloud Dedicated API",
    "version": "v1beta1"
  },
  "paths": {
    "/api/v2023/dedicated/v1beta1/clusters": {
      "get": {
        "description": "Lists all clusters in your organization. You can filter results by project, region, cluster state, or specific cluster IDs.",
        "operationId": "ClusterService_ListClusters",
        "parameters": [
          {
            "collectionFormat": "multi",
            "description": "A list of cluster IDs. If specified, only clusters matching these IDs are returned.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "clusterIds",
            "required": false,
            "type": "array"
          },
          {
            "collectionFormat": "multi",
            "description": "A list of region IDs. If specified, only clusters in these regions are returned.",
            "in": "query",
            "items": {
              "type": "string"
            },
            "name": "regionIds",
            "required": false,
            "type": "array"
          },
          {
            "collectionFormat": "multi",
            "description": "A list of cluster states. If specified, only clusters in these states are returned.\n\n`\"UPGRADING\"`, `\"IMPORTING\"`, `\"MODIFYING\"`, `\"PAUSING\"`, `\"PAUSED\"`, and `\"RESUMING\"` states are only available for [TiDB Cloud Dedicated](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#tidb-cloud-dedicated) clusters.\n\n - CREATING: Cluster is being created.\n - DELETING: Cluster is being deleted.\n - ACTIVE: Cluster is active for use.\n - RESTORING: Cluster data is being restored.\n - MAINTENANCE: Cluster is under maintenance.\n - DELETED: Cluster has been deleted.\n - INACTIVE: Cluster is not active, but not being deleted.\n - UPGRADING: Cluster is being updated.\nOnly for Dedicated Cluster.\n - IMPORTING: Cluster is being imported.\nOnly for Dedicated Cluster.\n - MODIFYING: Cluster is being modified.\nOnly for Dedicated Cluster.\n - PAUSING: Cluster is being paused.\nOnly for Dedicated Cluster.\n - PAUSED: Cluster is paused.\nOnly for Dedicated Cluster.\n - RESUMING: Cluster is resuming.\nOnly for Dedicated Cluster.",
            "in": "query",
            "items": {
              "enum": [
                "CREATING",
                "DELETING",
                "ACTIVE",
                "RESTORING",
                "MAINTENANCE",
                "DELETED",
                "INACTIVE",
                "UPGRADING",
                "IMPORTING",
                "MODIFYING",
                "PAUSING",
                "PAUSED",
                "RESUMING"
              ],
              "type": "string"
            },
            "name": "clusterStates",
            "required": false,
            "type": "array"
          },
          {
            "default": "10",
            "description": "The maximum number of clusters to return. If not specified, at most 10 clusters will be returned. The maximum value is `100`. Values greater than `100` are set to `100`.",
            "format": "int32",
            "in": "query",
            "name": "pageSize",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The pagination token received from a previous [List clusters](#tag/ClusterService/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",
            "name": "pageToken",
            "required": false,
            "type": "string"
          },
          {
            "description": "The number of clusters to skip before returning results. If the value exceeds the total number of clusters, the response is `200` with an empty list and no `nextPageToken`.",
            "format": "int32",
            "in": "query",
            "name": "skip",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/tidb_cloud_open_apidedicatedv1beta1ListClustersResponse"
            }
          },
          "400": {
            "description": "A request field is invalid.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "401": {
            "description": "The API key cannot be authenticated.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "403": {
            "description": "The API key does not have permission to access the resource.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "429": {
            "description": "You have exceed the rate limit.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "500": {
            "description": "Internal server error.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "summary": "List clusters",
        "tags": [
          "ClusterService"
        ]
      },
      "post": {
        "description": "Creates a new [TiDB Cloud Dedicated](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#tidb-cloud-dedicated) cluster. Before creating a TiDB Cloud Dedicated cluster, you must set a [Project CIDR on TiDB Cloud console](https://docs.pingcap.com/tidbcloud/set-up-vpc-peering-connections/#prerequisite-set-a-cidr-for-a-region).",
        "operationId": "ClusterService_CreateCluster",
        "parameters": [
          {
            "in": "body",
            "name": "cluster",
            "required": true,
            "schema": {
              "$ref": "#/definitions/tidb_cloud_open_apidedicatedv1beta1Cluster"
            }
          },
          {
            "description": "If set to `true`, the request is validated but not executed. Defaults to `false`.",
            "in": "query",
            "name": "validateOnly",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/tidb_cloud_open_apidedicatedv1beta1Cluster"
            }
          },
          "400": {
            "description": "A request field is invalid.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "401": {
            "description": "The API key cannot be authenticated.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "403": {
            "description": "The API key does not have permission to access the resource.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "429": {
            "description": "You have exceed the rate limit.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "500": {
            "description": "Internal server error.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "summary": "Create a cluster",
        "tags": [
          "ClusterService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{auditLogConfig.clusterId}/auditLogConfig": {
      "patch": {
        "operationId": "DatabaseAuditLogService_UpdateAuditLogConfig",
        "parameters": [
          {
            "in": "path",
            "name": "auditLogConfig.clusterId",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "auditLogConfig",
            "required": true,
            "schema": {
              "properties": {
                "awsRoleArn": {
                  "type": "string"
                },
                "azureSasToken": {
                  "type": "string"
                },
                "bucketManager": {
                  "$ref": "#/definitions/AuditLogConfigBucketManager"
                },
                "bucketRegionId": {
                  "title": "Format: {cloud_provider}-{region_code}",
                  "type": "string"
                },
                "bucketUri": {
                  "type": "string"
                },
                "enabled": {
                  "type": "boolean",
                  "x-nullable": true
                },
                "format": {
                  "$ref": "#/definitions/v1beta1AuditLogConfigFormat"
                },
                "rotationPolicy": {
                  "$ref": "#/definitions/v1beta1AuditLogConfigRotationPolicy"
                },
                "unredacted": {
                  "type": "boolean",
                  "x-nullable": true
                }
              },
              "required": [
                "auditLogConfig"
              ],
              "type": "object"
            }
          },
          {
            "in": "query",
            "name": "validateOnly",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1AuditLogConfig"
            }
          },
          "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"
            }
          }
        },
        "summary": "Update the audit log config of a cluster",
        "tags": [
          "DatabaseAuditLogService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{auditLogFilterRule.clusterId}/auditLogFilterRules": {
      "post": {
        "operationId": "DatabaseAuditLogService_CreateAuditLogFilterRule",
        "parameters": [
          {
            "in": "path",
            "name": "auditLogFilterRule.clusterId",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "auditLogFilterRule",
            "required": true,
            "schema": {
              "properties": {
                "accessTypeList": {
                  "description": "Deprecated. Only available when `AuditLogConfig.legacy` is true.",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "auditLogFilterRuleId": {
                  "description": "audit_log_filter_rule_id is a unique identifier for the rule. Currently, the value is the same as user_expr.\nFor legacy, the audit_log_filter_rule_id is a number.",
                  "readOnly": true,
                  "type": "string"
                },
                "dbExpr": {
                  "description": "Deprecated. Only available when `AuditLogConfig.legacy` is true.\nThe express is a glob pattern. Refer to https://github.com/pingcap/tidb/blob/master/pkg/util/table-filter/README.md#wildcards.",
                  "type": "string"
                },
                "disabled": {
                  "description": "Default is enabled.",
                  "type": "boolean"
                },
                "displayName": {
                  "description": "If not set, default to the value of `user_expr`.",
                  "type": "string"
                },
                "eventTypes": {
                  "description": "If empty, it means all events.",
                  "items": {
                    "$ref": "#/definitions/dedicatedv1beta1AuditLogFilterRuleEventType"
                  },
                  "type": "array"
                },
                "name": {
                  "readOnly": true,
                  "title": "Format: auditLogFilterRules/{audit_log_filter_rule_id}",
                  "type": "string"
                },
                "tableExpr": {
                  "description": "Deprecated. Only available when `AuditLogConfig.legacy` is true.\nThe express is a glob pattern. Refer to https://github.com/pingcap/tidb/blob/master/pkg/util/table-filter/README.md#wildcards.",
                  "type": "string"
                },
                "userExpr": {
                  "description": "Format: \u003cuser\u003e@\u003chost\u003e.\nThe audit user \u003cuser\u003e@\u003chost\u003e consists of the username and hostname with @ as separator, where @ and \u003chost\u003e are optional.\nBoth username and hostname can be identifiers with wildcards:\n  - % for matching any username/hostname.\n  - _ for matching any character.\nFor multiple filter rules, if their user_expr fields match the same username, that matches the longest username takes effect.\nIn general, this field is required. Only when `AuditLogConfig.legacy` is true, this field is optional.\nFor legacy, the express is a regex.",
                  "type": "string"
                }
              },
              "required": [
                "auditLogFilterRule"
              ],
              "type": "object"
            }
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1AuditLogFilterRule"
            }
          },
          "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"
            }
          }
        },
        "summary": "Create an audit log filter rule",
        "tags": [
          "DatabaseAuditLogService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{auditLogFilterRule.clusterId}/auditLogFilterRules/{auditLogFilterRule.auditLogFilterRuleId}:replaceAuditLogFilterRule": {
      "post": {
        "operationId": "DatabaseAuditLogService_ReplaceAuditLogFilterRule",
        "parameters": [
          {
            "in": "path",
            "name": "auditLogFilterRule.clusterId",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "auditLogFilterRule.auditLogFilterRuleId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Required. The audit log filter rule to update.",
            "in": "body",
            "name": "auditLogFilterRule",
            "required": true,
            "schema": {
              "properties": {
                "disabled": {
                  "type": "boolean"
                },
                "displayName": {
                  "type": "string"
                },
                "eventTypes": {
                  "items": {
                    "$ref": "#/definitions/dedicatedv1beta1AuditLogFilterRuleEventType"
                  },
                  "type": "array"
                },
                "userExpr": {
                  "type": "string"
                }
              },
              "required": [
                "auditLogFilterRule"
              ],
              "title": "Required. The audit log filter rule to update.",
              "type": "object"
            }
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1beta1ReplaceAuditLogFilterRuleResponse"
            }
          },
          "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"
            }
          }
        },
        "summary": "Replace an audit log filter rule. All fields of the rule will be replaced with the provided values.",
        "tags": [
          "DatabaseAuditLogService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{clusterId}": {
      "delete": {
        "description": "Deletes a cluster by `clusterId`.",
        "operationId": "ClusterService_DeleteCluster",
        "parameters": [
          {
            "description": "The ID of the cluster to delete.",
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "description": "If set to `true`, the request is validated but not executed. Defaults to `false`.",
            "in": "query",
            "name": "validateOnly",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/tidb_cloud_open_apidedicatedv1beta1Cluster"
            }
          },
          "400": {
            "description": "A request field is invalid.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "401": {
            "description": "The API key cannot be authenticated.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "403": {
            "description": "The API key does not have permission to access the resource.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "429": {
            "description": "You have exceed the rate limit.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "500": {
            "description": "Internal server error.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "summary": "Delete a cluster",
        "tags": [
          "ClusterService"
        ]
      },
      "get": {
        "description": "Retrieves details of a specific cluster.",
        "operationId": "ClusterService_GetCluster",
        "parameters": [
          {
            "description": "The ID of the cluster.",
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/tidb_cloud_open_apidedicatedv1beta1Cluster"
            }
          },
          "400": {
            "description": "A request field is invalid.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "401": {
            "description": "The API key cannot be authenticated.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "403": {
            "description": "The API key does not have permission to access the resource.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "429": {
            "description": "You have exceed the rate limit.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "500": {
            "description": "Internal server error.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "summary": "Get a cluster",
        "tags": [
          "ClusterService"
        ]
      },
      "patch": {
        "description": "Updates the configuration of a specific cluster. You can modify the following fields: `tidbNodeSetting`, `tikvNodeSetting`, `tiflashNodeSetting` and `displayName`.",
        "operationId": "ClusterService_UpdateCluster",
        "parameters": [
          {
            "description": "The ID of the cluster to update.",
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The updated cluster configuration.",
            "in": "body",
            "name": "cluster",
            "required": true,
            "schema": {
              "properties": {
                "displayName": {
                  "description": "The display name of the cluster.",
                  "example": "My Cluster",
                  "type": "string"
                },
                "labels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "The labels of the cluster. \n\n**Note**: Currently, does not support `labels` updates.",
                  "example": {},
                  "title": "map\u003cstring, string\u003e",
                  "type": "object"
                },
                "tidbNodeSetting": {
                  "allOf": [
                    {
                      "$ref": "#/definitions/v1beta1UpdateClusterRequestTidbNodeSetting"
                    }
                  ],
                  "description": "The TiDB node setting for updating cluster. \n\nTo get the node spec available configurations of a specific region for a cloud provider, please refer to [List node specs](#tag/RegionService/operation/RegionService_ListNodeSpecs) API."
                },
                "tiflashNodeSetting": {
                  "allOf": [
                    {
                      "$ref": "#/definitions/v1beta1UpdateClusterRequestStorageNodeSetting"
                    }
                  ],
                  "description": "The TiFlash node setting for updating cluster. \n\nTo get the node spec available configurations of a specific region for a cloud provider, please refer to [List node specs](#tag/RegionService/operation/RegionService_ListNodeSpecs) API.",
                  "example": {
                    "nodeCount": 3,
                    "nodeSpecKey": "16C128G",
                    "storageSizeGi": 500,
                    "storageType": "Basic"
                  }
                },
                "tikvNodeSetting": {
                  "allOf": [
                    {
                      "$ref": "#/definitions/v1beta1UpdateClusterRequestStorageNodeSetting"
                    }
                  ],
                  "description": "The TiKV node setting for updating cluster. \n\nTo get the node spec available configurations of a specific region for a cloud provider, please refer to [List node specs](#tag/RegionService/operation/RegionService_ListNodeSpecs) API."
                }
              },
              "required": [
                "cluster"
              ],
              "title": "The updated cluster configuration.",
              "type": "object"
            }
          },
          {
            "description": "If set to `true`, the request is validated but not executed. Defaults to `false`.",
            "in": "query",
            "name": "validateOnly",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/tidb_cloud_open_apidedicatedv1beta1Cluster"
            }
          },
          "400": {
            "description": "A request field is invalid.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "401": {
            "description": "The API key cannot be authenticated.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "403": {
            "description": "The API key does not have permission to access the resource.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "429": {
            "description": "You have exceed the rate limit.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "500": {
            "description": "Internal server error.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "summary": "Update a cluster",
        "tags": [
          "ClusterService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{clusterId}/auditLogConfig": {
      "get": {
        "operationId": "DatabaseAuditLogService_GetAuditLogConfig",
        "parameters": [
          {
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1AuditLogConfig"
            }
          },
          "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"
            }
          }
        },
        "summary": "Get the audit log config of a cluster",
        "tags": [
          "DatabaseAuditLogService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{clusterId}/auditLogConfig:generateAuditLogFileDownloadAddress": {
      "post": {
        "operationId": "DatabaseAuditLogService_GenerateAuditLogFileDownloadAddress",
        "parameters": [
          {
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "in": "query",
            "name": "auditLogFileUri",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1GenerateAuditLogFileDownloadAddressResponse"
            }
          },
          "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"
            }
          }
        },
        "summary": "Generate the download address for an audit log file, the address have an 15 minutes expiration time",
        "tags": [
          "DatabaseAuditLogService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{clusterId}/auditLogConfig:queryAuditLogFiles": {
      "get": {
        "operationId": "DatabaseAuditLogService_QueryAuditLogFiles",
        "parameters": [
          {
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "description": "the start time of the audit logs created time range.",
            "format": "date-time",
            "in": "query",
            "name": "startTime",
            "required": false,
            "type": "string"
          },
          {
            "description": "the end time of the audit logs created time range.",
            "format": "date-time",
            "in": "query",
            "name": "endTime",
            "required": false,
            "type": "string"
          },
          {
            "format": "int32",
            "in": "query",
            "name": "pageSize",
            "required": false,
            "type": "integer"
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "type": "string"
          },
          {
            "description": "The number of individual resources to skip before starting to return results.\nIf the skip value causes the cursor to move past the end of the collection,\nthe response will be 200 OK with an empty result set and no next_page_token.",
            "format": "int32",
            "in": "query",
            "name": "skip",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1QueryAuditLogFilesResponse"
            }
          },
          "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"
            }
          }
        },
        "summary": "Query audit log files",
        "tags": [
          "DatabaseAuditLogService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{clusterId}/auditLogConfig:showObjectStorageAccessIamPrincipal": {
      "get": {
        "operationId": "DatabaseAuditLogService_ShowObjectStorageAccessIamPrincipal",
        "parameters": [
          {
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1beta1ShowObjectStorageAccessIamPrincipalResponse"
            }
          },
          "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"
            }
          }
        },
        "summary": "Show IAM principal of TiDB Cloud for accessing customer's object storage",
        "tags": [
          "DatabaseAuditLogService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{clusterId}/auditLogFilterRules": {
      "get": {
        "operationId": "DatabaseAuditLogService_ListAuditLogFilterRules",
        "parameters": [
          {
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "format": "int32",
            "in": "query",
            "name": "pageSize",
            "required": false,
            "type": "integer"
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "type": "string"
          },
          {
            "description": "The number of individual resources to skip before starting to return results.\nIf the skip value causes the cursor to move past the end of the collection,\nthe response will be 200 OK with an empty result set and no next_page_token.",
            "format": "int32",
            "in": "query",
            "name": "skip",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1ListAuditLogFilterRulesResponse"
            }
          },
          "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"
            }
          }
        },
        "summary": "List audit log filter rules",
        "tags": [
          "DatabaseAuditLogService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{clusterId}/auditLogFilterRules/{auditLogFilterRuleId}": {
      "delete": {
        "operationId": "DatabaseAuditLogService_DeleteAuditLogFilterRule",
        "parameters": [
          {
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "auditLogFilterRuleId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "properties": {},
              "type": "object"
            }
          },
          "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"
            }
          }
        },
        "summary": "Delete an audit log filter rule",
        "tags": [
          "DatabaseAuditLogService"
        ]
      },
      "get": {
        "operationId": "DatabaseAuditLogService_GetAuditLogFilterRule",
        "parameters": [
          {
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "auditLogFilterRuleId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1AuditLogFilterRule"
            }
          },
          "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"
            }
          }
        },
        "summary": "Get an audit log filter rule",
        "tags": [
          "DatabaseAuditLogService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{clusterId}/logRedactionPolicy": {
      "get": {
        "description": "Gets the log redaction policy for a cluster.",
        "operationId": "ClusterService_GetLogRedactionPolicy",
        "parameters": [
          {
            "description": "The ID of the cluster for which to get the log redaction policy.",
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1LogRedactionPolicy"
            }
          },
          "400": {
            "description": "A request field is invalid.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "401": {
            "description": "The API key cannot be authenticated.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "403": {
            "description": "The API key does not have permission to access the resource.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "429": {
            "description": "You have exceed the rate limit.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "500": {
            "description": "Internal server error.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "summary": "Get log redaction policy",
        "tags": [
          "ClusterService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{clusterId}/nodeInstances": {
      "get": {
        "description": "Lists node instances in a cluster.",
        "operationId": "ClusterService_ListNodeInstances",
        "parameters": [
          {
            "description": "The ID of the cluster for which to list node instances.",
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The component type of the node instances. If specified, only node instances of the specified component type will be returned.\n- `TIDB`: TiDB node component.\n- `TIKV`: TiKV node instances.\n- `TIFLASH`: TiFlash node instances.\n- `PD`: PD node instances.\n- `PROXY`: Proxy node instances.",
            "enum": [
              "TIKV",
              "TIDB",
              "TIFLASH",
              "PD",
              "TIPROXY"
            ],
            "in": "query",
            "name": "componentType",
            "required": false,
            "type": "string"
          },
          {
            "description": "The maximum number of node instances to return. The service may return fewer than this value.\nIf unspecified, at most X node instances will be returned.\nThe maximum value is X; values above X will be coerced to X.",
            "format": "int32",
            "in": "query",
            "name": "pageSize",
            "required": false,
            "type": "integer"
          },
          {
            "description": "A page token, received from a previous `ListNodeInstances` call.\nProvide this to retrieve the subsequent page.\n\nWhen paginating, all other parameters provided to `ListNodeInstances` must match\nthe call that provided the page token.",
            "in": "query",
            "name": "pageToken",
            "required": false,
            "type": "string"
          },
          {
            "description": "The number of individual resources to skip before starting to return results.\nIf the skip value causes the cursor to move past the end of the collection,\nthe response will be 200 OK with an empty result set and no next_page_token.",
            "format": "int32",
            "in": "query",
            "name": "skip",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1beta1ListNodeInstancesResponse"
            }
          },
          "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"
            }
          }
        },
        "summary": "List node instances in a cluster",
        "tags": [
          "ClusterService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{clusterId}/nodeInstances/{instanceId}": {
      "get": {
        "description": "Retrieves a node instance in a cluster.",
        "operationId": "ClusterService_GetNodeInstance",
        "parameters": [
          {
            "description": "The ID of the cluster for which to get the node instance.",
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the node instance to get.",
            "in": "path",
            "name": "instanceId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1beta1NodeInstance"
            }
          },
          "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"
            }
          }
        },
        "summary": "Get a node instance",
        "tags": [
          "ClusterService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{clusterId}/tidbNodeGroups": {
      "get": {
        "operationId": "TidbNodeGroupService_ListTidbNodeGroups",
        "parameters": [
          {
            "description": "The ID of the cluster for which to list TiDB groups.",
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The maximum number of TiDB groups to return. The service may return fewer than this value.\nIf unspecified, at most X TiDB groups will be returned.\nThe maximum value is X; values above X will be coerced to X.",
            "format": "int32",
            "in": "query",
            "name": "pageSize",
            "required": false,
            "type": "integer"
          },
          {
            "description": "A page token, received from a previous `ListTidbNodeGroups` call.\nProvide this to retrieve the subsequent page.\n\nWhen paginating, all other parameters provided to `ListTidbNodeGroups` must match\nthe call that provided the page token.",
            "in": "query",
            "name": "pageToken",
            "required": false,
            "type": "string"
          },
          {
            "description": "The number of individual resources to skip before starting to return results.\nIf the skip value causes the cursor to move past the end of the collection,\nthe response will be 200 OK with an empty result set and no `nextPageToken`.",
            "format": "int32",
            "in": "query",
            "name": "skip",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1ListTidbNodeGroupsResponse"
            }
          },
          "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"
            }
          }
        },
        "summary": "List TiDB Node Groups",
        "tags": [
          "TidbNodeGroupService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{clusterId}/tidbNodeGroups/{privateEndpointConnection.tidbNodeGroupId}/privateEndpointConnections": {
      "post": {
        "description": "Creates a private endpoint connection for a TiDB node group. For more information, see the following documents:\n\n- [Connect via Private Endpoint with AWS](https://docs.pingcap.com/tidbcloud/set-up-private-endpoint-connections/) \n- [Connect via Private Endpoint with Azure](https://docs.pingcap.com/tidbcloud/set-up-private-endpoint-connections-on-azure/) \n- [Connect via Private Endpoint with Google Cloud](https://docs.pingcap.com/tidbcloud/set-up-private-endpoint-connections-on-google-cloud/)",
        "operationId": "PrivateEndpointConnectionService_CreatePrivateEndpointConnection",
        "parameters": [
          {
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the TiDB group to which the private endpoint connection belongs.",
            "in": "path",
            "name": "privateEndpointConnection.tidbNodeGroupId",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "privateEndpointConnection",
            "required": true,
            "schema": {
              "properties": {
                "accountId": {
                  "description": "(Google Cloud only) The project name used to identify the Google Cloud project that the private service connection belongs to.",
                  "readOnly": true,
                  "type": "string",
                  "x-nullable": true
                },
                "cloudProvider": {
                  "allOf": [
                    {
                      "$ref": "#/definitions/v1beta1RegionCloudProvider"
                    }
                  ],
                  "description": "The cloud provider where the private endpoint connection is located.\n\n- `\"aws\"`: Amazon Web Services\n\n- `\"gcp\"`: Google Cloud\n\n- `\"azure\"`: Microsoft Azure\n\n- `\"alicloud\"`: Alibaba Cloud",
                  "example": "aws",
                  "readOnly": true
                },
                "clusterDisplayName": {
                  "description": "The display name of the cluster to which the private endpoint connection belongs.",
                  "example": "my-cluster",
                  "readOnly": true,
                  "type": "string"
                },
                "clusterId": {
                  "description": "The ID of the cluster to which the private endpoint connection belongs.",
                  "example": "1",
                  "readOnly": true,
                  "type": "string"
                },
                "endpointId": {
                  "description": "The endpoint ID of the private link connection.\n\n- AWS: the VPC endpoint ID for [AWS PrivateLink\n](https://aws.amazon.com/privatelink/).\n\n- Google Cloud: the endpoint ID for [Private Service Connect](https://cloud.google.com/vpc/docs/private-service-connect).\n\n- Azure: the resource ID for [Azure Private Link](https://learn.microsoft.com/en-us/azure/private-link/private-link-overview).",
                  "example": "vpce-0a1b2c3d4e5f6g7h8",
                  "type": "string"
                },
                "endpointState": {
                  "allOf": [
                    {
                      "$ref": "#/definitions/dedicatedv1beta1PrivateEndpointConnectionEndpointState"
                    }
                  ],
                  "description": "The state of the private endpoint connection.\n\n- `\"PENDING\"`: TiDB Cloud is asynchronously accepting the endpoint connection.\n\n- `\"ACTIVE\"`: the private endpoint connection is ready to use.\n\n- `\"DELETING\"`: the private endpoint connection is being deleted.\n\n- `\"FAILED\"`: the private endpoint connection has failed.\n- `\"DISCOVERED\"`: the endpoint is created in your VPC but not registered with TiDB Cloud.",
                  "example": "ACTIVE",
                  "readOnly": true
                },
                "host": {
                  "description": "The hostname for accessing the TiDB cluster through the private endpoint connection.",
                  "example": "privatelink-1234567890.abcdefg.clusters.tidb-cloud.com",
                  "readOnly": true,
                  "type": "string"
                },
                "labels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "The labels of the private link connection, including the mandatory `tidb.cloud/project` label identifying the project it belongs to.",
                  "example": {
                    "tidb.cloud/project": "1"
                  },
                  "readOnly": true,
                  "title": "map\u003cstring, string\u003e",
                  "type": "object"
                },
                "message": {
                  "description": "The detailed message when the `endpointState` field is `\"FAILED\"`.",
                  "example": "",
                  "readOnly": true,
                  "type": "string"
                },
                "name": {
                  "description": "The name of the private endpoint connection, in the format of `tidbNodeGroups/{tidb_node_group_id}/privateEndpointConnections/{private_endpoint_connection_id}`.",
                  "example": "tidbNodeGroups/1/privateEndpointConnections/1234567890",
                  "readOnly": true,
                  "type": "string"
                },
                "port": {
                  "description": "The port used to connect to the TiDB cluster through the private endpoint connection.",
                  "example": 4000,
                  "format": "int32",
                  "readOnly": true,
                  "type": "integer"
                },
                "privateEndpointConnectionId": {
                  "description": "The unique ID of the private endpoint connection.",
                  "example": "1234567890",
                  "readOnly": true,
                  "type": "string"
                },
                "privateIpAddress": {
                  "description": "(Azure only) The private IP address of the private endpoint in your virtual network. TiDB Cloud automatically creates a public DNS record that resolves to this IP address, enabling you to connect using the DNS name.",
                  "type": "string",
                  "x-nullable": true
                },
                "privateLinkServiceName": {
                  "description": "The name of the private link service that the private endpoint connection is connected to.",
                  "example": "com.amazonaws.vpce.us-east-1.vpce-svc-1234567890",
                  "readOnly": true,
                  "type": "string"
                },
                "privateLinkServiceState": {
                  "allOf": [
                    {
                      "$ref": "#/definitions/dedicatedv1beta1PrivateLinkServiceState"
                    }
                  ],
                  "description": "The state of the private link service that the private endpoint connection is connected to.",
                  "example": "ACTIVE",
                  "readOnly": true
                },
                "regionDisplayName": {
                  "description": "The display name of the region where the private endpoint connection is located. For example, `N. Virginia (us-east-1)`.",
                  "example": "N. Virginia (us-east-1)",
                  "readOnly": true,
                  "type": "string"
                },
                "regionId": {
                  "description": "The ID of the region where the private endpoint connection is located, in the format of `{cloud_provider}-{region_code}`. For example, `aws-us-east-1`.",
                  "example": "aws-us-east-1",
                  "readOnly": true,
                  "type": "string"
                },
                "tidbNodeGroupDisplayName": {
                  "description": "The display name of the TiDB node group that the private endpoint connection is connected to.",
                  "example": "DefaultGroup",
                  "readOnly": true,
                  "type": "string"
                }
              },
              "required": [
                "endpointId",
                "privateEndpointConnection"
              ],
              "type": "object"
            }
          },
          {
            "description": "(Azure only) If set to `true`, the request is validated but not executed. Defaults to `false`.",
            "in": "query",
            "name": "validateOnly",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1PrivateEndpointConnection"
            }
          },
          "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"
            }
          }
        },
        "summary": "Create a private endpoint connection",
        "tags": [
          "PrivateEndpointConnectionService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{clusterId}/tidbNodeGroups/{publicEndpointSetting.tidbNodeGroupId}/publicEndpointSetting": {
      "patch": {
        "operationId": "TidbNodeGroupService_UpdatePublicEndpointSetting",
        "parameters": [
          {
            "description": "The ID of the cluster for which to update the public endpoint setting.",
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the TiDB group to which the public endpoint setting belongs. If set to \"-\", the default TiDB group will be used.",
            "in": "path",
            "name": "publicEndpointSetting.tidbNodeGroupId",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "publicEndpointSetting",
            "required": true,
            "schema": {
              "properties": {
                "enabled": {
                  "description": "Indicates whether the public endpoint is enabled for the TiDB group.",
                  "type": "boolean",
                  "x-nullable": true
                },
                "ipAccessList": {
                  "description": "A list of IP access control lists for the public endpoint. If not set, all IPs are allowed to access the public endpoint.",
                  "items": {
                    "$ref": "#/definitions/v1beta1PublicEndpointSettingIpAccessList",
                    "type": "object"
                  },
                  "title": "IpAccessList",
                  "type": "array"
                },
                "name": {
                  "description": "The name of the public endpoint setting resource formatted as: `tidbNodeGroups/{tidb_node_group_id}/publicEndpointSetting`.",
                  "readOnly": true,
                  "type": "string"
                }
              },
              "required": [
                "publicEndpointSetting"
              ],
              "type": "object"
            }
          },
          {
            "description": "Indicates whether the request is a dry run. If set to true, the request will be validated but not executed.",
            "in": "query",
            "name": "validateOnly",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1beta1PublicEndpointSetting"
            }
          },
          "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"
            }
          }
        },
        "summary": "Update the public endpoint setting of a TiDB Node Group",
        "tags": [
          "TidbNodeGroupService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{clusterId}/tidbNodeGroups/{tidbNodeGroupId}": {
      "delete": {
        "operationId": "TidbNodeGroupService_DeleteTidbNodeGroup",
        "parameters": [
          {
            "description": "The ID of the cluster from which to delete the TiDB Node Group.",
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the TiDB Node Group to delete.",
            "in": "path",
            "name": "tidbNodeGroupId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Indicates whether the request is a dry run. If set to true, the request will be validated but not executed.",
            "in": "query",
            "name": "validateOnly",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "properties": {},
              "type": "object"
            }
          },
          "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"
            }
          }
        },
        "summary": "Delete a TiDB Node Group",
        "tags": [
          "TidbNodeGroupService"
        ]
      },
      "get": {
        "operationId": "TidbNodeGroupService_GetTidbNodeGroup",
        "parameters": [
          {
            "description": "The ID of the cluster for which to get the TiDB Node Group.",
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the TiDB Node Group to get.",
            "in": "path",
            "name": "tidbNodeGroupId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1TidbNodeGroup"
            }
          },
          "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"
            }
          }
        },
        "summary": "Get a TiDB Node Group",
        "tags": [
          "TidbNodeGroupService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{clusterId}/tidbNodeGroups/{tidbNodeGroupId}/privateEndpointConnections": {
      "get": {
        "description": "Lists private endpoint connections for a cluster and TiDB node group. To list private link connections across different clusters and TiDB groups, set cluster_id and tidb_node_group_id to \"-\". If you want to list private link connections under a project across different clusters and TiDB groups, set both cluster_id and tidb_node_group_id to \"-\", and pass the project_id in the query parameter.",
        "operationId": "PrivateEndpointConnectionService_ListPrivateEndpointConnections",
        "parameters": [
          {
            "description": "The id of the cluster for which to list private link connections. To list private link connections across different clusters and TiDB groups, set as `-``.",
            "in": "path",
            "name": "clusterId",
            "pattern": "[^/]+",
            "required": true,
            "type": "string"
          },
          {
            "description": "To list private link connections across different clusters and TiDB groups, set tidb_node_group_id to \"-\".",
            "in": "path",
            "name": "tidbNodeGroupId",
            "pattern": "[^/]+",
            "required": true,
            "type": "string"
          },
          {
            "description": "If specified, only private link connections of the specified cloud provider will be returned.\n\n - aws: Amazon Web Services.\n - gcp: Google Cloud Platform.\n - azure: Microsoft Azure.\n - alicloud: Alibaba Cloud",
            "enum": [
              "aws",
              "gcp",
              "azure",
              "alicloud"
            ],
            "in": "query",
            "name": "cloudProvider",
            "required": false,
            "type": "string"
          },
          {
            "description": "The maximum number of private link connections to return. The service may return fewer than this value.\nIf unspecified, at most 10 private link connections will be returned.\nThe maximum value is 100; values above 100 will be coerced to 100.",
            "format": "int32",
            "in": "query",
            "name": "pageSize",
            "required": false,
            "type": "integer"
          },
          {
            "description": "A page token, received from a previous `ListPrivateLinkConnections` call.\nProvide this to retrieve the subsequent page.",
            "in": "query",
            "name": "pageToken",
            "required": false,
            "type": "string"
          },
          {
            "description": "The number of individual resources to skip before starting to return results.\nIf the skip value causes the cursor to move past the end of the collection,\nthe response will be 200 OK with an empty result set and no next_page_token.",
            "format": "int32",
            "in": "query",
            "name": "skip",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1ListPrivateEndpointConnectionsResponse"
            }
          },
          "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"
            }
          }
        },
        "summary": "List private endpoint connections",
        "tags": [
          "PrivateEndpointConnectionService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{clusterId}/tidbNodeGroups/{tidbNodeGroupId}/privateEndpointConnections/{privateEndpointConnectionId}": {
      "delete": {
        "description": "Deletes a private endpoint connection for a TiDB node group.",
        "operationId": "PrivateEndpointConnectionService_DeletePrivateEndpointConnection",
        "parameters": [
          {
            "description": "The ID of the cluster from which to delete the private endpoint connection.",
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the TiDB node group from which to delete the private endpoint connection.",
            "in": "path",
            "name": "tidbNodeGroupId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the private endpoint connection to delete.",
            "in": "path",
            "name": "privateEndpointConnectionId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "properties": {},
              "type": "object"
            }
          },
          "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"
            }
          }
        },
        "summary": "Delete a private endpoint connection",
        "tags": [
          "PrivateEndpointConnectionService"
        ]
      },
      "get": {
        "description": "Retrieves a private endpoint connection for a TiDB node group.",
        "operationId": "PrivateEndpointConnectionService_GetPrivateEndpointConnection",
        "parameters": [
          {
            "description": "The ID of the cluster for which to get the private endpoint connection.",
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the TiDB node group for which to get the private endpoint connection.",
            "in": "path",
            "name": "tidbNodeGroupId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the private endpoint connection to get.",
            "in": "path",
            "name": "privateEndpointConnectionId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1PrivateEndpointConnection"
            }
          },
          "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"
            }
          }
        },
        "summary": "Get a private endpoint connection",
        "tags": [
          "PrivateEndpointConnectionService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{clusterId}/tidbNodeGroups/{tidbNodeGroupId}/privateLinkService": {
      "get": {
        "description": "Retrieves the private link service configuration for a [TiDB node group](https://docs.pingcap.com/tidbcloud/tidb-node-group-overview/). You can the private link service to establish private endpoint connections to your TiDB cluster.",
        "operationId": "PrivateEndpointConnectionService_GetPrivateLinkService",
        "parameters": [
          {
            "description": "The ID of the cluster for which to get the private link service.",
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the TiDB node group for which to get the private link service.",
            "in": "path",
            "name": "tidbNodeGroupId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1PrivateLinkService"
            }
          },
          "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"
            }
          }
        },
        "summary": "Get private link service for a TiDB node group",
        "tags": [
          "PrivateEndpointConnectionService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{clusterId}/tidbNodeGroups/{tidbNodeGroupId}/publicEndpointSetting": {
      "get": {
        "operationId": "TidbNodeGroupService_GetPublicEndpointSetting",
        "parameters": [
          {
            "description": "The ID of the cluster for which to get the public endpoint setting.",
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the TiDB Node Group for which to get the public endpoint setting.",
            "in": "path",
            "name": "tidbNodeGroupId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1beta1PublicEndpointSetting"
            }
          },
          "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"
            }
          }
        },
        "summary": "Get the public endpoint setting of a TiDB Node Group",
        "tags": [
          "TidbNodeGroupService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{clusterId}:pauseCluster": {
      "post": {
        "description": "Pauses a cluster by ID.",
        "operationId": "ClusterService_PauseCluster",
        "parameters": [
          {
            "description": "The ID of the cluster to pause.",
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1beta1PauseClusterResponse"
            }
          },
          "400": {
            "description": "A request field is invalid.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "401": {
            "description": "The API key cannot be authenticated.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "403": {
            "description": "The API key does not have permission to access the resource.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "429": {
            "description": "You have exceed the rate limit.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "500": {
            "description": "Internal server error.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "summary": "Pause a cluster",
        "tags": [
          "ClusterService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{clusterId}:resetRootPassword": {
      "post": {
        "description": "Sets a new password for the cluster's root user. The new password is not returned in the response for security reasons, so save your password in a secure location.\n\nThe cluster must be in the `READY` state. If the cluster is not `READY`, wait until it is before retrying.",
        "operationId": "ClusterService_ResetRootPassword",
        "parameters": [
          {
            "description": "The ID of the cluster for which to reset the root password.",
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1beta1ClusterServiceResetRootPasswordBody"
            }
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1ResetRootPasswordResponse"
            }
          },
          "400": {
            "description": "A request field is invalid.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "401": {
            "description": "The API key cannot be authenticated.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "403": {
            "description": "The API key does not have permission to access the resource.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "429": {
            "description": "You have exceed the rate limit.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "500": {
            "description": "Internal server error.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "summary": "Reset the root password of a cluster",
        "tags": [
          "ClusterService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{clusterId}:resumeCluster": {
      "post": {
        "description": "Resumes a paused cluster. Only clusters in the `PAUSED` state can be resumed.",
        "operationId": "ClusterService_ResumeCluster",
        "parameters": [
          {
            "description": "The ID of the cluster to resume.",
            "in": "path",
            "name": "clusterId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1beta1ResumeClusterResponse"
            }
          },
          "400": {
            "description": "A request field is invalid.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "401": {
            "description": "The API key cannot be authenticated.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "403": {
            "description": "The API key does not have permission to access the resource.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "429": {
            "description": "You have exceed the rate limit.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "500": {
            "description": "Internal server error.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "summary": "Resume a cluster",
        "tags": [
          "ClusterService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{logRedactionPolicy.clusterId}/logRedactionPolicy": {
      "patch": {
        "description": "Updates the log redaction policy for the specified cluster. The log redaction policy determines whether sensitive information is redacted from logs. The default policy is to redact sensitive information from logs.",
        "operationId": "ClusterService_UpdateLogRedactionPolicy",
        "parameters": [
          {
            "description": "The ID of the cluster to which the log redaction policy applies.",
            "in": "path",
            "name": "logRedactionPolicy.clusterId",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "logRedactionPolicy",
            "required": true,
            "schema": {
              "properties": {
                "redactLog": {
                  "default": "true",
                  "description": "Indicates whether to redact sensitive information in logs.\n\nThe default policy is `true`, which means sensitive data is redacted in logs.\n\n**Note**: Disabling log redaction might expose sensitive information and increase the risk of data leakage. Ensure that you understand and acknowledge this risk before proceeding. Remember to re-enable it as soon as you complete your diagnostic or maintenance task.",
                  "example": true,
                  "type": "boolean",
                  "x-nullable": true
                }
              },
              "required": [
                "logRedactionPolicy"
              ],
              "type": "object"
            }
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1LogRedactionPolicy"
            }
          },
          "400": {
            "description": "A request field is invalid.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "401": {
            "description": "The API key cannot be authenticated.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "403": {
            "description": "The API key does not have permission to access the resource.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "429": {
            "description": "You have exceed the rate limit.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "500": {
            "description": "Internal server error.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "summary": "Update log redaction policy",
        "tags": [
          "ClusterService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{tidbNodeGroup.clusterId}/tidbNodeGroups": {
      "post": {
        "description": "Creates a new TiDB Node Group in the specified cluster. The TiDB Node Group is used to scale the TiDB nodes in the cluster.",
        "operationId": "TidbNodeGroupService_CreateTidbNodeGroup",
        "parameters": [
          {
            "description": "The ID of the cluster that the TiDB node group belongs to.\n\n- This field is **optional** when creating a cluster with the default TiDB group.\n\n- This field is **required** when creating a non-default TiDB group.",
            "in": "path",
            "name": "tidbNodeGroup.clusterId",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "tidbNodeGroup",
            "required": true,
            "schema": {
              "properties": {
                "displayName": {
                  "description": "The display name of the TiDB group.",
                  "example": "DefaultGroup",
                  "type": "string"
                },
                "endpoints": {
                  "description": "The endpoints of the TiDB group.",
                  "example": [],
                  "items": {
                    "$ref": "#/definitions/dedicatedv1beta1TidbNodeGroupEndpoint",
                    "type": "object"
                  },
                  "readOnly": true,
                  "title": "Endpoint",
                  "type": "array"
                },
                "isDefaultGroup": {
                  "description": "Indicates whether this is the default TiDB node group.",
                  "example": false,
                  "readOnly": true,
                  "type": "boolean"
                },
                "name": {
                  "description": "The resource name of the TiDB group, in the format of `tidbNodeGroups/{tidb_node_group_id}`.",
                  "example": "tidbNodeGroups/1",
                  "readOnly": true,
                  "type": "string"
                },
                "nodeChangingProgress": {
                  "allOf": [
                    {
                      "$ref": "#/definitions/ClusterNodeChangingProgress"
                    }
                  ],
                  "description": "The progress of node configuration changes.",
                  "readOnly": true,
                  "title": "NodeChangingProgress"
                },
                "nodeCount": {
                  "description": "The number of TiDB nodes in the TiDB group. It must be greater than or equal to `1`.",
                  "example": 2,
                  "format": "int32",
                  "minimum": 1,
                  "type": "integer"
                },
                "nodeSpecDisplayName": {
                  "description": "The display name of the node spec of the TiDB group. For example, `8 vCPU, 32 GiB`.",
                  "example": "8 vCPU, 32 GiB",
                  "readOnly": true,
                  "type": "string"
                },
                "nodeSpecKey": {
                  "description": "The node spec key of the TiDB group. For example, `8C32G`.",
                  "example": "8C32G",
                  "type": "string"
                },
                "nodeSpecVersion": {
                  "description": "The version tag of the node spec resource. The performance and price of the component may vary based on the version tag.",
                  "readOnly": true,
                  "type": "string"
                },
                "state": {
                  "allOf": [
                    {
                      "$ref": "#/definitions/dedicatedv1beta1TidbNodeGroupState"
                    }
                  ],
                  "description": "The current state of the TiDB group.",
                  "example": "ACTIVE",
                  "readOnly": true
                },
                "tidbNodeGroupId": {
                  "description": "The unique ID of the TiDB group.",
                  "example": "1",
                  "readOnly": true,
                  "type": "string"
                },
                "tiproxyNodeChangingProgress": {
                  "allOf": [
                    {
                      "$ref": "#/definitions/ClusterNodeChangingProgress"
                    }
                  ],
                  "description": "The progress of TiProxy node configuration changes.",
                  "readOnly": true
                },
                "tiproxySetting": {
                  "allOf": [
                    {
                      "$ref": "#/definitions/dedicatedv1beta1TidbNodeGroupTiProxySetting"
                    }
                  ],
                  "description": "Configures TiProxy settings for this TiDB group. If not specified, the default TiProxy settings is used."
                }
              },
              "required": [
                "nodeCount",
                "tidbNodeGroup"
              ],
              "type": "object"
            }
          },
          {
            "description": "Indicates whether the request is a dry run. If set to true, the request will be validated but not executed.",
            "in": "query",
            "name": "validateOnly",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1TidbNodeGroup"
            }
          },
          "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"
            }
          }
        },
        "summary": "Create a TiDB Node Group",
        "tags": [
          "TidbNodeGroupService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters/{tidbNodeGroup.clusterId}/tidbNodeGroups/{tidbNodeGroup.tidbNodeGroupId}": {
      "patch": {
        "operationId": "TidbNodeGroupService_UpdateTidbNodeGroup",
        "parameters": [
          {
            "description": "The ID of the cluster to which the TiDB Node Group belongs.",
            "in": "path",
            "name": "tidbNodeGroup.clusterId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the TiDB Node Group to update.",
            "in": "path",
            "name": "tidbNodeGroup.tidbNodeGroupId",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "tidbNodeGroup",
            "required": true,
            "schema": {
              "properties": {
                "displayName": {
                  "description": "The display name of the TiDB Node Group.",
                  "type": "string"
                },
                "nodeCount": {
                  "description": "The node count of the TiDB Node Group.",
                  "format": "int32",
                  "type": "integer",
                  "x-nullable": true
                },
                "tiproxySetting": {
                  "allOf": [
                    {
                      "$ref": "#/definitions/dedicatedv1beta1TidbNodeGroupTiProxySetting"
                    }
                  ],
                  "description": "The TiProxy setting of the TiDB Node Group. If not specified, the default TiProxy setting will be used.",
                  "title": "TiProxySetting"
                }
              },
              "required": [
                "tidbNodeGroup"
              ],
              "type": "object"
            }
          },
          {
            "description": "Indicates whether the request is a dry run. If set to true, the request will be validated but not executed.",
            "in": "query",
            "name": "validateOnly",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1TidbNodeGroup"
            }
          },
          "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"
            }
          }
        },
        "summary": "Update a TiDB Node Group",
        "tags": [
          "TidbNodeGroupService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/clusters:showNodeQuota": {
      "get": {
        "description": "Lists the node quotas for your organization, including the maximum number of nodes allowed for each component type.",
        "operationId": "ClusterService_ShowNodeQuota",
        "parameters": [
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1beta1ShowNodeQuotaResponse"
            }
          },
          "400": {
            "description": "A request field is invalid.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "401": {
            "description": "The API key cannot be authenticated.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "403": {
            "description": "The API key does not have permission to access the resource.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "429": {
            "description": "You have exceed the rate limit.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "500": {
            "description": "Internal server error.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "summary": "List node quotas for your organization",
        "tags": [
          "ClusterService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/cmeks": {
      "get": {
        "operationId": "CustomerManagedEncryptionKeyService_ListCustomerManagedEncryptionKeys",
        "parameters": [
          {
            "format": "int32",
            "in": "query",
            "name": "pageSize",
            "required": false,
            "type": "integer"
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "type": "string"
          },
          {
            "description": "The number of individual resources to skip before starting to return results.\nIf the skip value causes the cursor to move past the end of the collection,\nthe response will be 200 OK with an empty result set and no next_page_token.",
            "format": "int32",
            "in": "query",
            "name": "skip",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1ListCustomerManagedEncryptionKeysResponse"
            }
          },
          "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": [
          "CustomerManagedEncryptionKeyService"
        ]
      },
      "post": {
        "operationId": "CustomerManagedEncryptionKeyService_CreateCustomerManagedEncryptionKey",
        "parameters": [
          {
            "in": "body",
            "name": "customerManagedEncryptionKey",
            "required": true,
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1CustomerManagedEncryptionKey"
            }
          },
          {
            "in": "query",
            "name": "validateOnly",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1CustomerManagedEncryptionKey"
            }
          },
          "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": [
          "CustomerManagedEncryptionKeyService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/cmeks/{customerManagedEncryptionKeyId}": {
      "delete": {
        "operationId": "CustomerManagedEncryptionKeyService_DeleteCustomerManagedEncryptionKey",
        "parameters": [
          {
            "in": "path",
            "name": "customerManagedEncryptionKeyId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "properties": {},
              "type": "object"
            }
          },
          "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": [
          "CustomerManagedEncryptionKeyService"
        ]
      },
      "get": {
        "operationId": "CustomerManagedEncryptionKeyService_GetCustomerManagedEncryptionKey",
        "parameters": [
          {
            "in": "path",
            "name": "customerManagedEncryptionKeyId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1CustomerManagedEncryptionKey"
            }
          },
          "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": [
          "CustomerManagedEncryptionKeyService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/cmeks:showCmekAccessIamPrincipal": {
      "get": {
        "operationId": "CustomerManagedEncryptionKeyService_ShowCmekAccessIamPrincipal",
        "parameters": [
          {
            "description": " - aws: Amazon Web Services.\n - gcp: Google Cloud Platform.\n - azure: Microsoft Azure.\n - alicloud: Alibaba Cloud",
            "enum": [
              "aws",
              "gcp",
              "azure",
              "alicloud"
            ],
            "in": "query",
            "name": "cloudProvider",
            "required": false,
            "type": "string"
          },
          {
            "in": "query",
            "name": "regionId",
            "required": false,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1beta1ShowCmekAccessIamPrincipalResponse"
            }
          },
          "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": [
          "CustomerManagedEncryptionKeyService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/maintenanceTasks": {
      "get": {
        "operationId": "MaintenanceService_ListMaintenanceTasks",
        "parameters": [
          {
            "description": "The maximum number of maintenance tasks to return. The service may return fewer than this value.\nIf unspecified, at most X maintenance tasks will be returned.\nThe maximum value is X; values above X will be coerced to X.",
            "format": "int32",
            "in": "query",
            "name": "pageSize",
            "required": false,
            "type": "integer"
          },
          {
            "description": "A page token, received from a previous `ListMaintenanceTasks` call.\nProvide this to retrieve the subsequent page.\n\nWhen paginating, all other parameters provided to `ListMaintenanceTasks` must match\nthe call that provided the page token.",
            "in": "query",
            "name": "pageToken",
            "required": false,
            "type": "string"
          },
          {
            "description": "The number of individual resources to skip before starting to return results.\nIf the skip value causes the cursor to move past the end of the collection,\nthe response will be 200 OK with an empty result set and no next_page_token.",
            "format": "int32",
            "in": "query",
            "name": "skip",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1ListMaintenanceTasksResponse"
            }
          },
          "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"
            }
          }
        },
        "summary": "List maintenance tasks",
        "tags": [
          "MaintenanceService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/maintenanceTasks/{maintenanceTask.maintenanceTaskId}": {
      "patch": {
        "operationId": "MaintenanceService_UpdateMaintenanceTask",
        "parameters": [
          {
            "in": "path",
            "name": "maintenanceTask.maintenanceTaskId",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "maintenanceTask",
            "required": true,
            "schema": {
              "properties": {
                "scheduledApplyTime": {
                  "description": "Timestamp when the task run.",
                  "format": "date-time",
                  "type": "string"
                }
              },
              "required": [
                "scheduledApplyTime",
                "maintenanceTask"
              ],
              "type": "object"
            }
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1MaintenanceTask"
            }
          },
          "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"
            }
          }
        },
        "summary": "Update a maintenance task",
        "tags": [
          "MaintenanceService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/maintenanceTasks/{maintenanceTaskId}": {
      "get": {
        "operationId": "MaintenanceService_GetMaintenanceTask",
        "parameters": [
          {
            "in": "path",
            "name": "maintenanceTaskId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1MaintenanceTask"
            }
          },
          "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"
            }
          }
        },
        "summary": "Get a maintenance task",
        "tags": [
          "MaintenanceService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/maintenanceWindows": {
      "get": {
        "operationId": "MaintenanceService_ListMaintenanceWindows",
        "parameters": [
          {
            "description": "The maximum number of maintenance windows to return. The service may return fewer than this value.\nIf unspecified, at most X maintenance windows will be returned.\nThe maximum value is X; values above X will be coerced to X.",
            "format": "int32",
            "in": "query",
            "name": "pageSize",
            "required": false,
            "type": "integer"
          },
          {
            "description": "A page token, received from a previous `ListMaintenanceWindows` call.\nProvide this to retrieve the subsequent page.\n\nWhen paginating, all other parameters provided to `ListMaintenanceWindows` must match\nthe call that provided the page token.",
            "in": "query",
            "name": "pageToken",
            "required": false,
            "type": "string"
          },
          {
            "description": "The number of individual resources to skip before starting to return results.\nIf the skip value causes the cursor to move past the end of the collection,\nthe response will be 200 OK with an empty result set and no next_page_token.",
            "format": "int32",
            "in": "query",
            "name": "skip",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1ListMaintenanceWindowsResponse"
            }
          },
          "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"
            }
          }
        },
        "summary": "List maintenance windows",
        "tags": [
          "MaintenanceService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/maintenanceWindows/{maintenanceWindow.maintenanceWindowId}": {
      "patch": {
        "operationId": "MaintenanceService_UpdateMaintenanceWindow",
        "parameters": [
          {
            "description": "Format: project-{project_id}",
            "in": "path",
            "name": "maintenanceWindow.maintenanceWindowId",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "maintenanceWindow",
            "required": true,
            "schema": {
              "properties": {
                "dayHour": {
                  "format": "int32",
                  "type": "integer"
                },
                "hourMinute": {
                  "format": "int32",
                  "type": "integer"
                },
                "weekDay": {
                  "format": "int32",
                  "type": "integer"
                }
              },
              "required": [
                "maintenanceWindow"
              ],
              "type": "object"
            }
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1MaintenanceWindow"
            }
          },
          "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"
            }
          }
        },
        "summary": "Update a maintenance window",
        "tags": [
          "MaintenanceService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/maintenanceWindows/{maintenanceWindowId}": {
      "get": {
        "operationId": "MaintenanceService_GetMaintenanceWindow",
        "parameters": [
          {
            "description": "Format: project-{project_id}",
            "in": "path",
            "name": "maintenanceWindowId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1MaintenanceWindow"
            }
          },
          "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"
            }
          }
        },
        "summary": "Get a maintenance window",
        "tags": [
          "MaintenanceService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/networkContainers": {
      "get": {
        "operationId": "NetworkContainerService_ListNetworkContainers",
        "parameters": [
          {
            "description": " - aws: Amazon Web Services.\n - gcp: Google Cloud Platform.\n - azure: Microsoft Azure.\n - alicloud: Alibaba Cloud",
            "enum": [
              "aws",
              "gcp",
              "azure",
              "alicloud"
            ],
            "in": "query",
            "name": "cloudProvider",
            "required": false,
            "type": "string"
          },
          {
            "description": "The maximum number of network containers to return. The service may return fewer than this value.\nIf unspecified, at most X network containers will be returned.\nThe maximum value is X; values above X will be coerced to X.",
            "format": "int32",
            "in": "query",
            "name": "pageSize",
            "required": false,
            "type": "integer"
          },
          {
            "description": "A page token, received from a previous `ListNetworkContainers` call.\nProvide this to retrieve the subsequent page.\n\nWhen paginating, all other parameters provided to `ListNetworkContainers` must match\nthe call that provided the page token.",
            "in": "query",
            "name": "pageToken",
            "required": false,
            "type": "string"
          },
          {
            "description": "The number of individual resources to skip before starting to return results.\nIf the skip value causes the cursor to move past the end of the collection,\nthe response will be 200 OK with an empty result set and no next_page_token.",
            "format": "int32",
            "in": "query",
            "name": "skip",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1beta1ListNetworkContainersResponse"
            }
          },
          "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"
            }
          }
        },
        "summary": "List network containers",
        "tags": [
          "NetworkContainerService"
        ]
      },
      "post": {
        "operationId": "NetworkContainerService_CreateNetworkContainer",
        "parameters": [
          {
            "in": "body",
            "name": "networkContainer",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1beta1NetworkContainer"
            }
          },
          {
            "in": "query",
            "name": "validateOnly",
            "required": false,
            "type": "boolean"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1beta1NetworkContainer"
            }
          },
          "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"
            }
          }
        },
        "summary": "Create a network container",
        "tags": [
          "NetworkContainerService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/networkContainers/{networkContainerId}": {
      "delete": {
        "operationId": "NetworkContainerService_DeleteNetworkContainer",
        "parameters": [
          {
            "in": "path",
            "name": "networkContainerId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "properties": {},
              "type": "object"
            }
          },
          "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"
            }
          }
        },
        "summary": "Delete a network container",
        "tags": [
          "NetworkContainerService"
        ]
      },
      "get": {
        "operationId": "NetworkContainerService_GetNetworkContainer",
        "parameters": [
          {
            "in": "path",
            "name": "networkContainerId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1beta1NetworkContainer"
            }
          },
          "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"
            }
          }
        },
        "summary": "Get a network container",
        "tags": [
          "NetworkContainerService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/regions": {
      "get": {
        "description": "Lists the regions where you can create a cluster, across all supported cloud providers.",
        "operationId": "RegionService_ListRegions",
        "parameters": [
          {
            "description": "The cloud provider where the region is located. If specified, only regions of the specified cloud provider are returned.",
            "in": "query",
            "name": "cloudProvider",
            "required": false,
            "type": "string"
          },
          {
            "default": "20",
            "description": "The maximum number of regions to return. If not specified, at most 20 regions will be returned. The maximum value is `100`. Values greater than `100` are set to `100`.",
            "format": "int32",
            "in": "query",
            "name": "pageSize",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The pagination token received from a previous [List regions](#tag/Region/operation/RegionService_ListRegions) 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",
            "name": "pageToken",
            "required": false,
            "type": "string"
          },
          {
            "description": "The number of regions to skip before returning results. If the value exceeds the total number of clusters, the response is `200` with an empty list and no `nextPageToken`.",
            "format": "int32",
            "in": "query",
            "name": "skip",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/tidb_cloud_open_apidedicatedv1beta1ListRegionsResponse"
            }
          },
          "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"
            }
          }
        },
        "summary": "List regions",
        "tags": [
          "RegionService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/regions/{regionId}": {
      "get": {
        "description": "Retrieves details of a specific region by region ID.",
        "operationId": "RegionService_GetRegion",
        "parameters": [
          {
            "description": "The ID of the region to retrieve, in the format of `{cloud_provider}-{region_code}`. For example, `aws-us-east-1`.",
            "in": "path",
            "name": "regionId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/commonv1beta1Region"
            }
          },
          "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"
            }
          }
        },
        "summary": "Get a region",
        "tags": [
          "RegionService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/regions/{regionId}/componentTypes/{componentType}/nodeSpecs/{nodeSpecKey}": {
      "get": {
        "description": "Retrieves details of a node spec used for creating or scaling a cluster.",
        "operationId": "RegionService_GetNodeSpec",
        "parameters": [
          {
            "description": "The region ID of the node spec to retrieve, in the format of `{cloud_provider}-{region_code}`. For example, `aws-us-east-1`. If not specified, the default region ID is used.",
            "in": "path",
            "name": "regionId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filters the results to include only node specs for the specified component type.",
            "enum": [
              "TIKV",
              "TIDB",
              "TIFLASH",
              "PD",
              "TIPROXY"
            ],
            "in": "path",
            "name": "componentType",
            "required": true,
            "type": "string"
          },
          {
            "description": "The key of the node spec to retrieve. For example, `8C32G`.",
            "in": "path",
            "name": "nodeSpecKey",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the existing cluster. If specified, only node specs that are available to the cluster are returned. If not specified, all available node specs are returned.\nUsage case: Scale up/down a cluster.",
            "in": "query",
            "name": "clusterId",
            "required": false,
            "type": "string"
          },
          {
            "description": "The TiDB version of the wanted cluster. If specified, only node specs that are available to the specified TiDB version are returned. If not specified, all available node specs are returned.\nUsage case: Restore a cluster from a backup.",
            "in": "query",
            "name": "tidbVersion",
            "required": false,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1beta1NodeSpec"
            }
          },
          "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"
            }
          }
        },
        "summary": "Get a node spec",
        "tags": [
          "RegionService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/regions/{regionId}/nodeSpecs": {
      "get": {
        "description": "Retrieves a paginated list of node specifications (specs) available for creating or scaling a cluster in the specified region. You can filter the results using the `componentType`, `projectId`, or `clusterId` parameter.",
        "operationId": "RegionService_ListNodeSpecs",
        "parameters": [
          {
            "description": "The ID of the region, in the format of `{cloud_provider}-{region_code}`. For example, `aws-us-east-1`.",
            "in": "path",
            "name": "regionId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filters the results to include only node specs for the specified component type.",
            "enum": [
              "TIKV",
              "TIDB",
              "TIFLASH",
              "PD",
              "TIPROXY"
            ],
            "in": "query",
            "name": "componentType",
            "required": false,
            "type": "string"
          },
          {
            "description": "The ID of the existing cluster. If specified, only node specs that are available to the cluster are returned. If not specified, all available node specs are returned.\nUsage case: Scale up/down a cluster.",
            "in": "query",
            "name": "clusterId",
            "required": false,
            "type": "string"
          },
          {
            "description": "The TiDB version of the wanted cluster. If specified, only node specs that are available to the specified TiDB version are returned. If not specified, all available node specs are returned.\nUsage case: Restore a cluster from a backup.",
            "in": "query",
            "name": "tidbVersion",
            "required": false,
            "type": "string"
          },
          {
            "default": "10",
            "description": "The maximum number of node specs to return. If not specified, at most 10 node specs will be returned. The maximum value is `100`. Values greater than `100` are set to `100`.",
            "format": "int32",
            "in": "query",
            "name": "pageSize",
            "required": false,
            "type": "integer"
          },
          {
            "description": "The pagination token received from a previous [List node specs](#tag/Region/operation/RegionService_ListNodeSpecs) 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",
            "name": "pageToken",
            "required": false,
            "type": "string"
          },
          {
            "description": "The number of node specs to skip before returning results. If the value exceeds the total number of clusters, the response is `200` with an empty list and no `nextPageToken`.",
            "format": "int32",
            "in": "query",
            "name": "skip",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1beta1ListNodeSpecsResponse"
            }
          },
          "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"
            }
          }
        },
        "summary": "List node specs",
        "tags": [
          "RegionService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/regions:showCloudProviders": {
      "get": {
        "description": "Lists the cloud providers available for creating a cluster.",
        "operationId": "RegionService_ShowCloudProviders",
        "parameters": [
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1beta1ShowCloudProvidersResponse"
            }
          },
          "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"
            }
          }
        },
        "summary": "List cloud providers",
        "tags": [
          "RegionService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/vpcPeerings": {
      "get": {
        "operationId": "NetworkContainerService_ListVpcPeerings",
        "parameters": [
          {
            "description": "If specified, only VPC peerings of the specified cloud provider will be returned.\n\n - aws: Amazon Web Services.\n - gcp: Google Cloud Platform.\n - azure: Microsoft Azure.\n - alicloud: Alibaba Cloud",
            "enum": [
              "aws",
              "gcp",
              "azure",
              "alicloud"
            ],
            "in": "query",
            "name": "cloudProvider",
            "required": false,
            "type": "string"
          },
          {
            "description": "The maximum number of VPC peerings to return. The service may return fewer than this value.\nIf unspecified, at most X VPC peerings will be returned.\nThe maximum value is X; values above X will be coerced to X.",
            "format": "int32",
            "in": "query",
            "name": "pageSize",
            "required": false,
            "type": "integer"
          },
          {
            "description": "A page token, received from a previous `ListVpcPeerings` call.\nProvide this to retrieve the subsequent page.\n\nWhen paginating, all other parameters provided to `ListVpcPeerings` must match\nthe call that provided the page token.",
            "in": "query",
            "name": "pageToken",
            "required": false,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1ListVpcPeeringsResponse"
            }
          },
          "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"
            }
          }
        },
        "summary": "List VPC peerings",
        "tags": [
          "NetworkContainerService"
        ]
      },
      "post": {
        "operationId": "NetworkContainerService_CreateVpcPeering",
        "parameters": [
          {
            "in": "body",
            "name": "vpcPeering",
            "required": true,
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1VpcPeering"
            }
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1VpcPeering"
            }
          },
          "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"
            }
          }
        },
        "summary": "Create a VPC peering",
        "tags": [
          "NetworkContainerService"
        ]
      }
    },
    "/api/v2023/dedicated/v1beta1/vpcPeerings/{vpcPeeringId}": {
      "delete": {
        "operationId": "NetworkContainerService_DeleteVpcPeering",
        "parameters": [
          {
            "description": "Format {cloud_provider}-{random_suffix}",
            "in": "path",
            "name": "vpcPeeringId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "properties": {},
              "type": "object"
            }
          },
          "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"
            }
          }
        },
        "summary": "Delete a VPC peering",
        "tags": [
          "NetworkContainerService"
        ]
      },
      "get": {
        "operationId": "NetworkContainerService_GetVpcPeering",
        "parameters": [
          {
            "description": "Format {cloud_provider}-{random_suffix}",
            "in": "path",
            "name": "vpcPeeringId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Organization id",
            "format": "uint64",
            "in": "query",
            "name": "orgId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Project id",
            "format": "uint64",
            "in": "query",
            "name": "projectId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/dedicatedv1beta1VpcPeering"
            }
          },
          "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"
            }
          }
        },
        "summary": "Get a VPC peering",
        "tags": [
          "NetworkContainerService"
        ]
      }
    }
  },
  "produces": [
    "application/json"
  ],
  "schemes": [
    "https"
  ],
  "swagger": "2.0",
  "tags": [
    {
      "name": "ClusterService"
    },
    {
      "name": "RegionService"
    },
    {
      "name": "TidbNodeGroupService"
    },
    {
      "name": "PrivateEndpointConnectionService"
    },
    {
      "name": "NetworkContainerService"
    },
    {
      "name": "MaintenanceService"
    },
    {
      "name": "DatabaseAuditLogService"
    },
    {
      "name": "CustomerManagedEncryptionKeyService"
    }
  ]
}