{
  "swagger": "2.0",
  "info": {
    "title": "global/dedicated/v1/services.proto",
    "version": "version not set"
  },
  "tags": [
    {
      "name": "ClusterService"
    },
    {
      "name": "RegionService"
    },
    {
      "name": "SpuService"
    },
    {
      "name": "TidbNodeGroupService"
    },
    {
      "name": "VpcService"
    },
    {
      "name": "PrivateLinkConnectionService"
    },
    {
      "name": "CustomerManagedEncryptionService"
    },
    {
      "name": "DatabaseAuditLogService"
    },
    {
      "name": "MeteringService"
    }
  ],
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "paths": {},
  "definitions": {
    "BatchUpsertSkusRequestUpdateStorage": {
      "type": "object",
      "properties": {
        "sizeGiDefault": {
          "type": "integer",
          "format": "int32"
        },
        "sizeGiMax": {
          "type": "integer",
          "format": "int32"
        },
        "sizeGiMin": {
          "type": "integer",
          "format": "int32"
        },
        "iopsMax": {
          "type": "integer",
          "format": "int32"
        },
        "iopsMin": {
          "type": "integer",
          "format": "int32"
        },
        "throughputMibpsMax": {
          "type": "integer",
          "format": "int32"
        },
        "throughputMibpsMin": {
          "type": "integer",
          "format": "int32"
        },
        "iopsFixed": {
          "$ref": "#/definitions/BatchUpsertSkusRequestUpdateStorageIopsFixed"
        },
        "iopsDynamic": {
          "$ref": "#/definitions/BatchUpsertSkusRequestUpdateStorageIopsDynamic"
        },
        "throughputFixed": {
          "$ref": "#/definitions/BatchUpsertSkusRequestUpdateStorageThroughputFixed"
        },
        "throughputDynamic": {
          "$ref": "#/definitions/BatchUpsertSkusRequestUpdateStorageThroughputDynamic"
        }
      }
    },
    "BatchUpsertSkusRequestUpdateStorageIopsDynamic": {
      "type": "object",
      "properties": {
        "iopsPerSizeGi": {
          "type": "number",
          "format": "float"
        }
      }
    },
    "BatchUpsertSkusRequestUpdateStorageIopsFixed": {
      "type": "object",
      "properties": {
        "iops": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "BatchUpsertSkusRequestUpdateStorageThroughputDynamic": {
      "type": "object",
      "properties": {
        "throughputMibpsPerSizeGi": {
          "type": "number",
          "format": "float"
        },
        "throughputMibpsPerIops": {
          "type": "number",
          "format": "float"
        }
      }
    },
    "BatchUpsertSkusRequestUpdateStorageThroughputFixed": {
      "type": "object",
      "properties": {
        "throughputMibps": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "BuildDesiredComponentsRequestModify": {
      "type": "object",
      "properties": {
        "clusterId": {
          "type": "string",
          "format": "uint64"
        },
        "requestedClusterComponents": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ClusterClusterComponent"
          }
        }
      },
      "required": [
        "clusterId",
        "requestedClusterComponents"
      ]
    },
    "BuildDesiredComponentsRequestScan": {
      "type": "object",
      "properties": {
        "tenantIds": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uint64"
          }
        },
        "projectIds": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uint64"
          }
        },
        "cloudProviders": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/v1CloudProviderName"
          }
        },
        "regions": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/v1RegionName"
          }
        },
        "clusterIds": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uint64"
          }
        }
      }
    },
    "BuildDesiredComponentsResponseClusterDiff": {
      "type": "object",
      "properties": {
        "clusterId": {
          "type": "string",
          "format": "uint64",
          "description": "Only available when modify or scan."
        },
        "currentDefaultComponents": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ClusterClusterComponent"
          }
        },
        "currentEffectiveComponents": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ClusterClusterComponent"
          }
        },
        "desiredDefaultComponents": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ClusterClusterComponent"
          }
        },
        "desiredEffectiveComponents": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ClusterClusterComponent"
          }
        }
      }
    },
    "CalcClusterFeeResponseComponentCost": {
      "type": "object",
      "properties": {
        "componentType": {
          "$ref": "#/definitions/globaldedicatedv1ComponentType"
        },
        "compute": {
          "type": "number",
          "format": "double"
        },
        "storage": {
          "type": "number",
          "format": "double"
        },
        "rawCompute": {
          "type": "number",
          "format": "double"
        },
        "rawStorage": {
          "type": "number",
          "format": "double"
        }
      }
    },
    "CidrOverlapCloudRegion": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "cloudProviderName": {
          "type": "string"
        }
      }
    },
    "ClusterApplyMaskComponentApplyMask": {
      "type": "object",
      "properties": {
        "componentType": {
          "$ref": "#/definitions/globaldedicatedv1ComponentType"
        },
        "configuration": {
          "type": "boolean"
        },
        "image": {
          "type": "boolean"
        }
      },
      "required": [
        "componentType"
      ]
    },
    "ClusterApplyMaskStrategy": {
      "type": "string",
      "enum": [
        "ROLLING_RESTART",
        "HOT_RELOAD",
        "CHANGE_CM_ONLY",
        "ENSURE_UPDATE_TO_TC"
      ],
      "description": " - CHANGE_CM_ONLY: CHANGE_CM_ONLY means only change config content into ConfigMap but don't do extra\napply operations(such as hotReload or rollingRestart) to apply it to component.\nNote: There are some components may periodically reload config, so these components still use the new configuration\neven if without apply operations.\n\nThis Strategy is useful for ShutdownOperation, such as 'Shutdown for Config Change' which we will recreate all pods of cluster.\n - ENSURE_UPDATE_TO_TC: EnsureUpdateToTC is similar with CHANGE_CM_ONLY but without checking whether\nconfig content is applied to ConfigMaps."
    },
    "ClusterClusterComponent": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "createTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "deleteTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "clusterId": {
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "componentType": {
          "$ref": "#/definitions/globaldedicatedv1ComponentType"
        },
        "spuName": {
          "type": "string",
          "description": "8C16G\nWhen new component, the spu_name is required.\nWhen update component, the spu_name is optional. Empty means do not change spu."
        },
        "spuKey": {
          "type": "string",
          "title": "8C16G:DEPLOY_TYPE_DEDICATED:COMPONENT_TYPE_TIDB",
          "readOnly": true
        },
        "spuDisplayName": {
          "type": "string",
          "title": "8 vCPU, 16 GiB",
          "readOnly": true
        },
        "spuVersion": {
          "type": "string",
          "readOnly": true
        },
        "skuKey": {
          "type": "string",
          "title": "aws:tidb:c5.2xlarge:local-storage:0:0",
          "readOnly": true
        },
        "count": {
          "type": "integer",
          "format": "int64",
          "x-nullable": true,
          "description": "Required when creating. Optional when scaling.\nTiFlash can have 0 count ClusterComponent."
        },
        "storages": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/ClusterClusterComponentStorage"
          },
          "description": "The key is the disk type."
        },
        "tidbGroupId": {
          "type": "string",
          "format": "uint64",
          "description": "For non-tidb components, the tidb_group_id is the default TiDB group id."
        },
        "isDefaultTidbGroup": {
          "type": "boolean",
          "readOnly": true
        },
        "tidbGroupDisplayName": {
          "type": "string",
          "readOnly": true
        },
        "instanceType": {
          "type": "string",
          "readOnly": true
        },
        "cpuNum": {
          "type": "integer",
          "format": "int64",
          "readOnly": true
        },
        "memorySizeGi": {
          "type": "integer",
          "format": "int64",
          "readOnly": true
        },
        "instanceCpuArch": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/InstanceMuCpuArch"
            }
          ]
        },
        "instanceCpuGeneration": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/InstanceMuCpuGeneration"
            }
          ]
        },
        "modifyProgress": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/ClusterComponentModifyProgress"
            }
          ]
        },
        "meteringSkuKeys": {
          "type": "object",
          "additionalProperties": {
            "type": "integer",
            "format": "int64"
          },
          "title": "node:aws:us-west-2:DEPLOY_TYPE_DEDICATED:m6g.8xlarge",
          "readOnly": true
        }
      },
      "required": [
        "componentType"
      ]
    },
    "ClusterClusterComponentStorage": {
      "type": "object",
      "properties": {
        "storageId": {
          "type": "string",
          "format": "uint64",
          "description": "Cluster storage component id.",
          "readOnly": true
        },
        "componentId": {
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "diskType": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/SkuDiskType"
            }
          ]
        },
        "sizeGi": {
          "type": "integer",
          "format": "int64",
          "description": "When creating component, 0 size means use the default size.\nSize changes only when explicitly requested. When updating component, 0 size means do not change the size."
        },
        "iops": {
          "type": "integer",
          "format": "int64",
          "description": "If not set use the value from SKU, no matter create or update. If selected sku changed at the same time, the iops could be changed at the same time."
        },
        "throughputMibps": {
          "type": "integer",
          "format": "int64",
          "description": "If not set use the value from SKU, no matter create or update. If selected sku changed at the same time, the throughput could be changed at the same time."
        },
        "volumeType": {
          "description": "In creating or updating request, UNSPECIFIED means not to provision this disk.\nIn creating request, null means ignoring volume_type filter when selecting sku.\nIn updating request, null means do not change volume_type (use current volume type).\nIn response, UNSPECIFIED and null have the same meaning -- this type of disk is not provisioned.",
          "allOf": [
            {
              "$ref": "#/definitions/StorageMuVolumeType"
            }
          ]
        },
        "additionalIops": {
          "type": "integer",
          "format": "int64",
          "x-nullable": true,
          "description": "Only take effect when iops is not set. Final effective iops = SKU iops + additional_iops.\nIn creating or updating request, 0 means explicitly set to 0.\nIn creating request, 0 and null have the same meaning -- set to 0.\nIn updating request, null means do not change additional_iops, 0 means set to 0.\nIn response, 0 and null have the same meaning -- set to 0."
        },
        "meteringSkuKeys": {
          "type": "object",
          "additionalProperties": {
            "type": "integer",
            "format": "int64"
          },
          "title": "disk-storage:aws:us-west-2:Standard_Optimized:data:gp3",
          "readOnly": true
        }
      }
    },
    "ClusterComponentModifyProgress": {
      "type": "object",
      "properties": {
        "uptodateQuantity": {
          "type": "integer",
          "format": "int32",
          "readOnly": true
        },
        "remainingDeletionQuantity": {
          "type": "integer",
          "format": "int32",
          "title": "available if some nodes are deleting",
          "readOnly": true
        }
      }
    },
    "ClusterConfigurationComponentConfiguration": {
      "type": "object",
      "properties": {
        "componentType": {
          "$ref": "#/definitions/globaldedicatedv1ComponentType"
        },
        "customParams": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/ComponentConfigurationParamItem"
          }
        },
        "overwriteImageTag": {
          "type": "string"
        }
      },
      "required": [
        "componentType"
      ]
    },
    "ComponentConfigurationParamItem": {
      "type": "object",
      "properties": {
        "value": {},
        "comment": {
          "type": "string"
        }
      }
    },
    "ComponentNode": {
      "type": "object",
      "properties": {
        "instanceName": {
          "type": "string"
        },
        "state": {
          "$ref": "#/definitions/ComponentNodeState"
        },
        "cpu": {
          "type": "integer",
          "format": "int64"
        },
        "memorySizeGi": {
          "type": "integer",
          "format": "int64"
        },
        "storageSizeGi": {
          "type": "integer",
          "format": "int64",
          "description": "Deprecated fields: Use `storages` field instead."
        },
        "storageIops": {
          "type": "integer",
          "format": "int64"
        },
        "storageThroughputMibps": {
          "type": "integer",
          "format": "int64"
        },
        "volumeType": {
          "$ref": "#/definitions/StorageMuVolumeType"
        },
        "availabilityZone": {
          "type": "string"
        },
        "instanceType": {
          "type": "string"
        },
        "meteringSkuKeys": {
          "type": "object",
          "additionalProperties": {
            "type": "integer",
            "format": "int64"
          }
        },
        "storages": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/ComponentNodeInfoComponentStorage"
          }
        },
        "nodeSpecName": {
          "type": "string"
        },
        "nodeSpecDisplayName": {
          "type": "string"
        },
        "nodeSpecVersion": {
          "type": "string"
        }
      }
    },
    "ComponentNodeInfoComponentStorage": {
      "type": "object",
      "properties": {
        "storageSizeGi": {
          "type": "integer",
          "format": "int64"
        },
        "storageIops": {
          "type": "integer",
          "format": "int64"
        },
        "storageThroughputMibps": {
          "type": "integer",
          "format": "int64"
        },
        "additionalIops": {
          "type": "integer",
          "format": "int64"
        },
        "volumeType": {
          "$ref": "#/definitions/StorageMuVolumeType"
        },
        "meteringSkuKeys": {
          "type": "object",
          "additionalProperties": {
            "type": "integer",
            "format": "int64"
          },
          "description": "The value is usage value of the SKU."
        }
      }
    },
    "ComponentNodeState": {
      "type": "string",
      "enum": [
        "AVAILABLE",
        "UNAVAILABLE",
        "CREATING",
        "DELETING"
      ]
    },
    "ConditionKey": {
      "type": "string",
      "enum": [
        "TENANT",
        "PROVIDER",
        "REGION",
        "ATTACH_TIERUNIT",
        "TIKV_TOTAL_CPU",
        "TIER_ID",
        "CPUARCH",
        "COMPONENT"
      ],
      "title": "- PROVIDER: PROJECT = 2;\n - TIER_ID: internal use"
    },
    "ConditionOperator": {
      "type": "string",
      "enum": [
        "EQ",
        "NE",
        "IN",
        "NOTIN",
        "RANGE"
      ]
    },
    "GetDefaultCidrResponseDefaultCidr": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "cloudProviderName": {
          "type": "string"
        },
        "regionName": {
          "type": "string"
        },
        "regionDisplayName": {
          "type": "string"
        },
        "cidr": {
          "type": "string"
        },
        "projectId": {
          "type": "string",
          "format": "uint64"
        }
      }
    },
    "GetSpuRequestByAttributes": {
      "type": "object",
      "properties": {
        "cloudProvider": {
          "$ref": "#/definitions/v1CloudProviderName"
        },
        "region": {
          "$ref": "#/definitions/v1RegionName"
        },
        "componentType": {
          "$ref": "#/definitions/globaldedicatedv1ComponentType"
        },
        "spuName": {
          "type": "string"
        },
        "tenantId": {
          "type": "string",
          "format": "uint64"
        },
        "projectId": {
          "type": "string",
          "format": "uint64"
        },
        "existingClusterId": {
          "type": "string",
          "format": "uint64"
        }
      },
      "required": [
        "cloudProvider",
        "region",
        "componentType",
        "spuName",
        "tenantId",
        "projectId"
      ]
    },
    "InstanceMuCpuArch": {
      "type": "string",
      "enum": [
        "AMD64",
        "ARM64"
      ],
      "description": " - AMD64: Amd64 is the same thing as x86_64."
    },
    "InstanceMuCpuGeneration": {
      "type": "string",
      "enum": [
        "GRAVITON2",
        "GRAVITON3",
        "GRAVITON4",
        "GENERATION1_INTEL_XEON",
        "GENERATION2_INTEL_XEON",
        "GENERATION2_AMD_EPYC",
        "GENERATION4_INTEL_XEON",
        "GENERATION4_AXION",
        "GENERATION4_AMD_EPYC",
        "AMPERE_ALTRA",
        "COBALT_100"
      ],
      "description": " - GRAVITON2: AWS self developed arm processors.\n - GENERATION1_INTEL_XEON: GCP. Refer to https://cloud.google.com/compute/docs/machine-resource#machine_type_comparison.\n - AMPERE_ALTRA: Azure.\nArm.\n - COBALT_100: Azure self developed arm64 processors."
    },
    "ListClusterConfigBackupRequestClusterConfigBackupFilter": {
      "type": "object",
      "properties": {
        "clusterIds": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uint64"
          }
        },
        "enabled": {
          "type": "boolean",
          "x-nullable": true
        },
        "hasError": {
          "type": "boolean",
          "x-nullable": true
        },
        "lastBackupAtFrom": {
          "type": "string",
          "format": "date-time"
        },
        "lastBackupAtTo": {
          "type": "string",
          "format": "date-time"
        },
        "lastSuccessAtFrom": {
          "type": "string",
          "format": "date-time"
        },
        "lastSuccessAtTo": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "ListClusterSnapshotsRequestClusterSnapshotFilter": {
      "type": "object",
      "properties": {
        "tenantIds": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uint64"
          }
        },
        "projectIds": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uint64"
          }
        },
        "clusterIds": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uint64"
          }
        },
        "snapshotIds": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uint64"
          }
        }
      }
    },
    "ListSpusRequestFilterWithSku": {
      "type": "object",
      "properties": {
        "cloudProvider": {
          "$ref": "#/definitions/v1CloudProviderName"
        },
        "region": {
          "$ref": "#/definitions/v1RegionName"
        },
        "tenantId": {
          "type": "string",
          "format": "uint64"
        },
        "projectId": {
          "type": "string",
          "format": "uint64"
        },
        "existingClusterId": {
          "type": "string",
          "format": "uint64",
          "description": "If specified, only return spus that available for scale up/down the existing cluster."
        }
      },
      "description": "FilterWithSku means each returned spu must have at least a sku that pass select desired comp process.",
      "required": [
        "cloudProvider",
        "region",
        "tenantId",
        "projectId"
      ]
    },
    "ListSpusRequestFilterWithoutSku": {
      "type": "object",
      "properties": {
        "componentTypes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/globaldedicatedv1ComponentType"
          }
        },
        "name": {
          "type": "string"
        },
        "versions": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "QueryCidrsRequestQueryCidrsFilter": {
      "type": "object",
      "properties": {
        "ids": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uint64"
          }
        },
        "projectIds": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uint64"
          }
        },
        "cloudProviderName": {
          "type": "string"
        }
      }
    },
    "SkuCondition": {
      "type": "object",
      "properties": {
        "key": {
          "$ref": "#/definitions/ConditionKey"
        },
        "operator": {
          "$ref": "#/definitions/ConditionOperator"
        },
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "key",
        "operator",
        "values"
      ]
    },
    "SkuDiskType": {
      "type": "string",
      "enum": [
        "DATA",
        "RAFT_LOG"
      ]
    },
    "SpuDiskPair": {
      "type": "object",
      "properties": {
        "dataVolumeType": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/StorageMuVolumeType"
            }
          ]
        },
        "raftlogVolumeType": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/StorageMuVolumeType"
            }
          ]
        }
      }
    },
    "SpuMapping": {
      "type": "object",
      "properties": {
        "cloudProvider": {
          "$ref": "#/definitions/v1CloudProviderName"
        },
        "physicalRegions": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/v1RegionName"
          }
        },
        "organizationIds": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uint64"
          }
        },
        "skuKey": {
          "type": "string"
        }
      },
      "required": [
        "cloudProvider",
        "skuKey"
      ]
    },
    "StorageMuVolumeType": {
      "type": "string",
      "enum": [
        "GP3",
        "IO2",
        "PD_SSD",
        "PREMIUMV2",
        "ULTRASSD",
        "HYPERDISK_BALANCED",
        "HYPERDISK_EXTREME",
        "GP2",
        "LOCAL_STORAGE"
      ],
      "title": "- GP3: AWS\n - PD_SSD: GCP\n - PREMIUMV2: Azure\n - HYPERDISK_BALANCED: GCP Hyperdisk Balanced\n - GP2: Deprecated"
    },
    "VpcAwsVpcInfo": {
      "type": "object",
      "properties": {
        "tidbCloudAccountId": {
          "type": "string",
          "readOnly": true
        },
        "tidbCloudVpcId": {
          "type": "string",
          "readOnly": true
        }
      }
    },
    "VpcAzureVpcInfo": {
      "type": "object",
      "properties": {
        "tidbCloudVnetId": {
          "type": "string",
          "readOnly": true
        }
      }
    },
    "VpcGcpVpcInfo": {
      "type": "object",
      "properties": {
        "tidbCloudProjectId": {
          "type": "string",
          "readOnly": true
        },
        "tidbCloudNetworkName": {
          "type": "string",
          "readOnly": true
        }
      }
    },
    "commonv1RegionState": {
      "type": "string",
      "enum": [
        "ACTIVE",
        "INACTIVE"
      ]
    },
    "commonv1ServicePlan": {
      "type": "string",
      "enum": [
        "Starter",
        "Essential",
        "Premium",
        "BYOC",
        "Premium_Reserved",
        "Essential_V2"
      ]
    },
    "dedicatedv1AuditLogConfig": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "clusterId": {
          "type": "string",
          "format": "uint64"
        },
        "bucketUrl": {
          "type": "string"
        },
        "region": {
          "type": "string",
          "description": "Required on AWS and GCP."
        },
        "roleArn": {
          "type": "string",
          "description": "Required on AWS."
        },
        "sasToken": {
          "type": "string",
          "description": "Required on Azure."
        },
        "unredacted": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Default is redacted."
        },
        "format": {
          "type": "string",
          "description": "If unset, default to TEXT."
        },
        "maxSizeMib": {
          "type": "integer",
          "format": "int32",
          "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."
        },
        "maxAgeSecond": {
          "type": "integer",
          "format": "int32",
          "x-nullable": true,
          "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."
        },
        "bucketManager": {
          "type": "string",
          "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."
        },
        "enabled": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Default is disabled."
        },
        "legacy": {
          "type": "boolean",
          "description": "Default is false, which means v2 implementation.",
          "readOnly": true
        }
      },
      "required": [
        "clusterId",
        "bucketUrl"
      ]
    },
    "dedicatedv1AzureCmekPrincipal": {
      "type": "object",
      "properties": {
        "azureAppRegistration": {
          "$ref": "#/definitions/globaldedicatedv1AzureAppRegistration"
        },
        "azureKeyVaultKeySuffix": {
          "type": "string"
        }
      }
    },
    "dedicatedv1ClusterPausePlan": {
      "type": "object",
      "properties": {
        "pausePlan": {
          "$ref": "#/definitions/dedicatedv1ClusterPausePlanType"
        },
        "pauseTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "scheduledResumeTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        }
      },
      "required": [
        "pausePlan"
      ]
    },
    "dedicatedv1ClusterPausePlanType": {
      "type": "string",
      "enum": [
        "NORMAL",
        "LONG"
      ],
      "title": "- LONG: not supported yet"
    },
    "dedicatedv1GenerateAuditLogFileDownloadAddressResponse": {
      "type": "object",
      "properties": {
        "downloadAddress": {
          "type": "string"
        }
      }
    },
    "dedicatedv1ListTidbNodeGroupsResponse": {
      "type": "object",
      "properties": {
        "tidbNodeGroups": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/dedicatedv1TidbNodeGroup"
          }
        },
        "total": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "dedicatedv1PrivateLinkEndpoint": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uint64",
          "title": "Unique ID",
          "readOnly": true
        },
        "endpointName": {
          "type": "string"
        },
        "status": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/v1PrivateLinkEndpointStatus"
            }
          ]
        },
        "message": {
          "type": "string",
          "readOnly": true
        },
        "type": {
          "$ref": "#/definitions/v1PrivateLinkEndpointType"
        },
        "privateIpAddress": {
          "type": "string",
          "description": "Only available for Azure clusters.\nThe private IP address of the private endpoint in the user's vNet.\nTiDB Cloud will setup a public DNS record for this private IP address. So the user can use DNS address to connect to the cluster."
        },
        "host": {
          "type": "string",
          "description": "For gcp and azure, different endpoints of a private link service have different hostnames.",
          "readOnly": true
        },
        "ipAddressType": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/v1PrivateLinkIPAddressType"
            }
          ]
        }
      },
      "required": [
        "endpointName",
        "type"
      ]
    },
    "dedicatedv1QueryAuditLogFilesResponse": {
      "type": "object",
      "properties": {
        "auditLogFiles": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/dedicatedv1QueryAuditLogFilesResponseAuditLogFile"
          }
        },
        "total": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "dedicatedv1QueryAuditLogFilesResponseAuditLogFile": {
      "type": "object",
      "properties": {
        "filename": {
          "type": "string"
        },
        "uri": {
          "type": "string"
        },
        "bucket": {
          "type": "string"
        },
        "sizeByte": {
          "type": "integer",
          "format": "int32"
        },
        "createTime": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "dedicatedv1TidbNodeGroup": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uint64"
        },
        "clusterId": {
          "type": "string",
          "format": "uint64"
        },
        "displayName": {
          "type": "string"
        },
        "count": {
          "type": "integer",
          "format": "int32"
        },
        "endpoint": {
          "$ref": "#/definitions/dedicatedv1TidbNodeGroupEndpoint"
        },
        "tiproxySetting": {
          "$ref": "#/definitions/dedicatedv1TidbNodeGroupTiProxySetting"
        },
        "spuName": {
          "type": "string",
          "readOnly": true
        },
        "spuDisplayName": {
          "type": "string",
          "readOnly": true
        },
        "spuVersion": {
          "type": "string",
          "readOnly": true
        },
        "isDefault": {
          "type": "boolean",
          "readOnly": true
        },
        "state": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/dedicatedv1TidbNodeGroupState"
            }
          ]
        },
        "modifyProgress": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/ClusterComponentModifyProgress"
            }
          ]
        },
        "tiproxyModifyProgress": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/ClusterComponentModifyProgress"
            }
          ]
        }
      },
      "required": [
        "clusterId",
        "displayName",
        "count"
      ]
    },
    "dedicatedv1TidbNodeGroupEndpoint": {
      "type": "object",
      "properties": {
        "tidbGroupId": {
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "publicEndpoint": {
          "$ref": "#/definitions/v1TidbNodeGroupEndpointPublicEndpoint"
        },
        "vpcPeeringEndpoint": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/v1TidbNodeGroupEndpointVpcPeeringEndpoint"
            }
          ]
        },
        "privateLinkEndpoints": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1TidbNodeGroupEndpointPrivateLinkEndpoint"
          },
          "description": "On GCP and Azure, different endpoints of a private link service have different hostnames.",
          "readOnly": true
        }
      }
    },
    "dedicatedv1TidbNodeGroupState": {
      "type": "string",
      "enum": [
        "ACTIVE",
        "MODIFYING",
        "PAUSED"
      ],
      "description": " - ACTIVE: All nodes are ready.\n - MODIFYING: When TiDB group is modifying.\n - PAUSED: When cluster is paused."
    },
    "dedicatedv1TidbNodeGroupTiProxySetting": {
      "type": "object",
      "properties": {
        "spuName": {
          "type": "string"
        },
        "spuDisplayName": {
          "type": "string",
          "readOnly": true
        },
        "spuVersion": {
          "type": "string",
          "readOnly": true
        },
        "count": {
          "type": "integer",
          "format": "int32"
        }
      },
      "required": [
        "spuName",
        "count"
      ]
    },
    "globalcommonv1CloudProvider": {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/definitions/v1CloudProviderName"
        },
        "displayName": {
          "type": "string"
        },
        "state": {
          "$ref": "#/definitions/v1CloudProviderState"
        },
        "regions": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/globalcommonv1Region"
          }
        },
        "isPublic": {
          "type": "boolean"
        },
        "servicePlan": {
          "$ref": "#/definitions/commonv1ServicePlan"
        },
        "servicePlans": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/commonv1ServicePlan"
          }
        }
      },
      "required": [
        "id",
        "displayName"
      ]
    },
    "globalcommonv1Region": {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/definitions/v1RegionName"
        },
        "cloudProviderId": {
          "$ref": "#/definitions/v1CloudProviderName"
        },
        "displayName": {
          "type": "string",
          "title": "display name of the region"
        },
        "openedTenantIds": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uint64"
          },
          "title": "if public is false, only these tenants can use this region"
        },
        "sortPriority": {
          "type": "integer",
          "format": "int32",
          "title": "not used now"
        },
        "area": {
          "type": "string",
          "title": "for example: Europe, Americas"
        },
        "countryCode": {
          "type": "string",
          "title": "such as: CN, US"
        },
        "state": {
          "title": "region state, if state is inactive, the region is not available, can not use it",
          "allOf": [
            {
              "$ref": "#/definitions/commonv1RegionState"
            }
          ]
        },
        "isPublic": {
          "type": "boolean",
          "title": "whether the region is public, if true, all organizations can use it"
        },
        "defaultBackupTime": {
          "type": "string",
          "title": "cluster's default auto backup time in this region(dataflow-service), such as \"10:00\""
        },
        "serviceAddress": {
          "type": "string",
          "title": "regional service address"
        },
        "logicalName": {
          "type": "string",
          "title": "logic region name, such as \"cn-north-1\" , if local name is not equal to id , is a byoc region and only set public to false"
        },
        "servicePlan": {
          "title": "service plan of the region, if not set, use default service plan",
          "allOf": [
            {
              "$ref": "#/definitions/commonv1ServicePlan"
            }
          ]
        },
        "sharedBucketUrl": {
          "type": "string",
          "x-nullable": true,
          "title": "shared bucket url of the region, if not set, keep empty"
        },
        "opsAuditLogSetting": {
          "title": "ops audit log setting of the region",
          "allOf": [
            {
              "$ref": "#/definitions/v1RegionOpsAuditLogSetting"
            }
          ]
        },
        "regionWhiteLists": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1RegionWhiteList"
          }
        },
        "engineType": {
          "$ref": "#/definitions/v1RegionEngineType"
        },
        "sys9Config": {
          "$ref": "#/definitions/v1RegionSys9Config"
        }
      },
      "required": [
        "id",
        "cloudProviderId",
        "displayName"
      ]
    },
    "globaldedicatedv1AuditLogFilterRule": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uint64",
          "description": "For audit log v2, id is the pk in management service db.",
          "readOnly": true
        },
        "clusterId": {
          "type": "string",
          "format": "uint64"
        },
        "disabled": {
          "type": "boolean",
          "description": "For audit log v2, default is enabled."
        },
        "userExpr": {
          "type": "string",
          "description": "For audit log v2, user_expr is required."
        },
        "eventTypes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "For audit log v2, if db_expr is empty, it means all events."
        },
        "tables": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "For audit log v2, if tables is empty, it means all tables."
        },
        "statusCodes": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int32"
          },
          "description": "For audit log v2, if status_codes is empty, it means all events no matter success or failure."
        },
        "displayName": {
          "type": "string",
          "description": "For audit log v2, default to `user_expr`."
        },
        "dbExpr": {
          "type": "string"
        },
        "tableExpr": {
          "type": "string"
        },
        "accessTypeList": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "legacy": {
          "type": "boolean",
          "readOnly": true
        }
      },
      "required": [
        "clusterId",
        "userExpr"
      ]
    },
    "globaldedicatedv1AzureAppRegistration": {
      "type": "object",
      "properties": {
        "appRegistrationId": {
          "type": "string"
        },
        "appRegistrationUmi": {
          "type": "string"
        },
        "appRegistrationName": {
          "type": "string"
        }
      }
    },
    "globaldedicatedv1AzureKeyVault": {
      "type": "object",
      "properties": {
        "keyVaultKey": {
          "type": "string"
        },
        "keyVaultName": {
          "type": "string"
        },
        "azureAppRegistration": {
          "$ref": "#/definitions/globaldedicatedv1AzureAppRegistration"
        }
      }
    },
    "globaldedicatedv1ChangeClusterPasswdResponse": {
      "type": "object",
      "properties": {
        "synced": {
          "type": "boolean",
          "title": "whether the passwd is synced to cluster or only saved into metadb"
        }
      }
    },
    "globaldedicatedv1Cluster": {
      "type": "object",
      "properties": {
        "clusterId": {
          "type": "string",
          "format": "uint64",
          "description": "Metadata."
        },
        "organizationId": {
          "type": "string",
          "format": "uint64"
        },
        "projectId": {
          "type": "string",
          "format": "uint64"
        },
        "createTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "createFinishedTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "updateTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "deleteTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "cloudProviderId": {
          "description": "Specs.",
          "allOf": [
            {
              "$ref": "#/definitions/v1CloudProviderName"
            }
          ]
        },
        "regionId": {
          "$ref": "#/definitions/v1RegionName"
        },
        "clusterComponents": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ClusterClusterComponent"
          }
        },
        "port": {
          "type": "integer",
          "format": "int64"
        },
        "rootPassword": {
          "type": "string"
        },
        "encryptedCloudAdminPassword": {
          "type": "string"
        },
        "customerManagedEncryptionKeyId": {
          "type": "string",
          "description": "Default to (project,region) cmek, allow user to specify a cmek."
        },
        "version": {
          "type": "string",
          "description": "Version of TiDB kernel."
        },
        "features": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/v1AvailableFeature"
          },
          "description": "Output only fields.",
          "readOnly": true
        },
        "hasRootPassword": {
          "type": "boolean",
          "readOnly": true
        },
        "state": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/globaldedicatedv1ClusterState"
            }
          ]
        },
        "healthState": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/globaldedicatedv1ClusterHealthState"
            }
          ]
        },
        "proxyBaseUrl": {
          "type": "string",
          "readOnly": true
        },
        "tokenBasedAuthEnabled": {
          "type": "boolean",
          "readOnly": true
        },
        "tidbNodeGroupEndpoints": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/dedicatedv1TidbNodeGroupEndpoint"
          },
          "readOnly": true
        },
        "regionDisplayName": {
          "type": "string",
          "readOnly": true
        },
        "agentBaseUrl": {
          "type": "string",
          "readOnly": true
        },
        "pausePlan": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/dedicatedv1ClusterPausePlan"
            }
          ]
        },
        "insufficientVmResource": {
          "type": "boolean",
          "readOnly": true
        }
      },
      "required": [
        "clusterId",
        "organizationId",
        "projectId",
        "cloudProviderId",
        "regionId",
        "clusterComponents",
        "port"
      ]
    },
    "globaldedicatedv1ClusterHealthState": {
      "type": "string",
      "enum": [
        "HEALTHY",
        "UNHEALTHY"
      ]
    },
    "globaldedicatedv1ClusterState": {
      "type": "string",
      "enum": [
        "CREATING",
        "AVAILABLE",
        "MODIFYING",
        "PAUSED",
        "RESUMING",
        "UNAVAILABLE",
        "PAUSING",
        "SCALING",
        "DELETED"
      ]
    },
    "globaldedicatedv1ComponentType": {
      "type": "string",
      "enum": [
        "TIKV",
        "TIDB",
        "TIFLASH",
        "TIFLASH_LEARNER",
        "PD",
        "TIPROXY"
      ]
    },
    "globaldedicatedv1CreateVpcPeeringResponse": {
      "type": "object",
      "properties": {
        "peeringId": {
          "type": "string",
          "format": "uint64"
        }
      }
    },
    "globaldedicatedv1CustomerManagedEncryptionKey": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "projectId": {
          "type": "string",
          "format": "uint64"
        },
        "organizationId": {
          "type": "string",
          "format": "uint64"
        },
        "cloudProviderId": {
          "$ref": "#/definitions/v1CloudProviderName"
        },
        "regionId": {
          "$ref": "#/definitions/v1RegionName"
        },
        "awsKeyArn": {
          "type": "string"
        },
        "gcpKeyName": {
          "type": "string"
        },
        "azureKeyVault": {
          "$ref": "#/definitions/globaldedicatedv1AzureKeyVault"
        },
        "regionDisplayName": {
          "type": "string",
          "readOnly": true
        },
        "createTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "updateTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "deleteTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        }
      },
      "required": [
        "projectId",
        "organizationId",
        "cloudProviderId",
        "regionId"
      ]
    },
    "globaldedicatedv1GKEHeterogeneousDeploy": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean",
          "readOnly": true
        },
        "componentType": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/globaldedicatedv1ComponentType"
            }
          ]
        },
        "currentInstanceType": {
          "type": "string",
          "readOnly": true
        },
        "alternativeInstanceType": {
          "type": "string",
          "readOnly": true
        },
        "tidbGroupId": {
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "status": {
          "type": "string",
          "readOnly": true
        },
        "podCounts": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1GKEHeterogeneousDeployPodCount"
          },
          "readOnly": true
        }
      }
    },
    "globaldedicatedv1ListAuditLogFilterRulesResponse": {
      "type": "object",
      "properties": {
        "rules": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/globaldedicatedv1AuditLogFilterRule"
          }
        }
      }
    },
    "globaldedicatedv1ListCloudProvidersResponse": {
      "type": "object",
      "properties": {
        "cloudProviders": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/globalcommonv1CloudProvider"
          }
        },
        "total": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "globaldedicatedv1ListClustersResponse": {
      "type": "object",
      "properties": {
        "clusters": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/globaldedicatedv1Cluster"
          }
        },
        "total": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "globaldedicatedv1ListCustomerManagedEncryptionKeysResponse": {
      "type": "object",
      "properties": {
        "customerManagedEncryptionKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/globaldedicatedv1CustomerManagedEncryptionKey"
          }
        },
        "total": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "globaldedicatedv1ListRegionsResponse": {
      "type": "object",
      "properties": {
        "regions": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/globalcommonv1Region"
          }
        },
        "total": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "globaldedicatedv1ListSkusResponse": {
      "type": "object",
      "properties": {
        "skus": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/globaldedicatedv1Sku"
          }
        }
      }
    },
    "globaldedicatedv1ListSpusResponse": {
      "type": "object",
      "properties": {
        "spus": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/globaldedicatedv1Spu"
          }
        }
      },
      "required": [
        "spus"
      ]
    },
    "globaldedicatedv1ListStorageMusResponse": {
      "type": "object",
      "properties": {
        "storageMus": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/globaldedicatedv1StorageMu"
          },
          "description": "Sorted by volume type."
        }
      }
    },
    "globaldedicatedv1ListVpcPeeringsResponse": {
      "type": "object",
      "properties": {
        "vpcPeerings": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/globaldedicatedv1VpcPeering"
          }
        }
      }
    },
    "globaldedicatedv1ListVpcsResponse": {
      "type": "object",
      "properties": {
        "vpcs": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Vpc"
          }
        },
        "total": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "globaldedicatedv1LogRedactionPolicy": {
      "type": "object",
      "properties": {
        "clusterId": {
          "type": "string",
          "format": "uint64"
        },
        "redactLog": {
          "type": "boolean",
          "x-nullable": true,
          "title": "Indicates whether to redact sensitive information in logs.\nDefault policy: true (enable log redaction)"
        }
      },
      "required": [
        "clusterId"
      ]
    },
    "globaldedicatedv1Pager": {
      "type": "object",
      "properties": {
        "page": {
          "type": "string",
          "format": "int64",
          "title": "start from 1"
        },
        "pageSize": {
          "type": "string",
          "format": "int64"
        }
      }
    },
    "globaldedicatedv1PrivateLinkService": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "title": "PrivateLink service name"
        },
        "status": {
          "$ref": "#/definitions/v1PrivateLinkServiceStatus"
        },
        "dnsName": {
          "type": "string"
        },
        "azIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "title": "availability zones, for example: 'usw2-az2', 'usw2-az1'"
        }
      }
    },
    "globaldedicatedv1Sku": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "spuId": {
          "type": "string",
          "format": "uint64",
          "description": "A SKU belongs to a specific SPU."
        },
        "spuKey": {
          "type": "string",
          "readOnly": true
        },
        "spuName": {
          "type": "string",
          "readOnly": true
        },
        "spuDisplayName": {
          "type": "string",
          "readOnly": true
        },
        "spuVersion": {
          "type": "string",
          "readOnly": true
        },
        "key": {
          "type": "string",
          "description": "Human readable SKU name."
        },
        "cloudProvider": {
          "$ref": "#/definitions/v1CloudProviderName"
        },
        "componentType": {
          "$ref": "#/definitions/globaldedicatedv1ComponentType"
        },
        "instanceMuId": {
          "type": "string",
          "format": "uint64"
        },
        "cpuArch": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/InstanceMuCpuArch"
            }
          ]
        },
        "cpuGeneration": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/InstanceMuCpuGeneration"
            }
          ]
        },
        "instanceType": {
          "type": "string",
          "readOnly": true
        },
        "cpuCore": {
          "type": "integer",
          "format": "int32",
          "readOnly": true
        },
        "memoryGi": {
          "type": "integer",
          "format": "int32",
          "readOnly": true
        },
        "defaultNodeCount": {
          "type": "integer",
          "format": "int32"
        },
        "conditions": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SkuCondition"
          }
        },
        "priority": {
          "type": "integer",
          "format": "int32",
          "description": "Smaller value has higher priority."
        },
        "dataStorage": {
          "$ref": "#/definitions/v1SkuStorage"
        },
        "raftlogStorage": {
          "$ref": "#/definitions/v1SkuStorage"
        }
      },
      "description": "Stock Keeping Unit.",
      "required": [
        "spuId",
        "key",
        "cloudProvider",
        "componentType",
        "instanceMuId",
        "defaultNodeCount"
      ]
    },
    "globaldedicatedv1Sorter": {
      "type": "object",
      "properties": {
        "orderBy": {
          "type": "string"
        },
        "sort": {
          "$ref": "#/definitions/v1SorterSort"
        }
      }
    },
    "globaldedicatedv1Spu": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "key": {
          "type": "string",
          "title": "example: 2C8G:DEPLOY_TYPE_DEDICATED:COMPONENT_TYPE_TIKV",
          "readOnly": true
        },
        "displayName": {
          "type": "string",
          "title": "example: 2 vCPU, 8 GiB (Beta)"
        },
        "name": {
          "type": "string",
          "title": "example: 2C8G"
        },
        "version": {
          "type": "string"
        },
        "componentType": {
          "$ref": "#/definitions/globaldedicatedv1ComponentType"
        },
        "cloudProvider": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/v1CloudProviderName"
            }
          ]
        },
        "region": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/v1RegionName"
            }
          ]
        },
        "cpuCore": {
          "type": "integer",
          "format": "int32"
        },
        "memorySizeGi": {
          "type": "integer",
          "format": "int32"
        },
        "defaultCount": {
          "type": "integer",
          "format": "int32",
          "readOnly": true
        },
        "dataStorage": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/v1SpuStorage"
            }
          ]
        },
        "raftlogStorage": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/v1SpuStorage"
            }
          ]
        },
        "mappings": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SpuMapping"
          }
        },
        "supportedDiskPairs": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SpuDiskPair"
          },
          "readOnly": true
        },
        "storageTypeDetails": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/v1SpuStorageTypeDetail"
          },
          "description": "Detailed storage capabilities grouped by storage type enum string values. Currently, only Plus storage type is supported.",
          "readOnly": true
        }
      },
      "description": "Standard Product Unit.",
      "required": [
        "displayName",
        "name",
        "version",
        "componentType",
        "cpuCore",
        "memorySizeGi"
      ]
    },
    "globaldedicatedv1StorageMu": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "cloudProvider": {
          "$ref": "#/definitions/v1CloudProviderName"
        },
        "volumeType": {
          "$ref": "#/definitions/StorageMuVolumeType"
        }
      },
      "description": "Storage Material Unit (StorageMu) simply contains information of storage resource directly from 3rd-party cloud providers.",
      "required": [
        "cloudProvider",
        "volumeType"
      ]
    },
    "globaldedicatedv1VpcPeering": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "projectId": {
          "type": "string",
          "format": "uint64"
        },
        "organizationId": {
          "type": "string",
          "format": "uint64"
        },
        "cloudProvider": {
          "$ref": "#/definitions/v1CloudProviderName"
        },
        "type": {
          "$ref": "#/definitions/v1VpcPeeringType"
        },
        "tidbCloudRegion": {
          "type": "string"
        },
        "customerRegion": {
          "type": "string"
        },
        "tidbCloudCidrBlock": {
          "type": "string",
          "readOnly": true
        },
        "customerCidrBlock": {
          "type": "string"
        },
        "state": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/globaldedicatedv1VpcPeeringState"
            }
          ]
        },
        "createAt": {
          "type": "string",
          "format": "date-time"
        },
        "aws": {
          "$ref": "#/definitions/v1VpcPeeringAws"
        },
        "gcp": {
          "$ref": "#/definitions/v1VpcPeeringGcp"
        }
      },
      "required": [
        "projectId",
        "organizationId",
        "cloudProvider",
        "type",
        "tidbCloudRegion",
        "customerRegion",
        "customerCidrBlock"
      ]
    },
    "globaldedicatedv1VpcPeeringState": {
      "type": "string",
      "enum": [
        "PENDING",
        "FAILED",
        "ACTIVE"
      ]
    },
    "googlerpcStatus": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "description": "The status code, which should be an enum value of\n[google.rpc.Code][google.rpc.Code]."
        },
        "message": {
          "type": "string",
          "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."
        },
        "details": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/protobufAny"
          },
          "description": "A list of messages that carry the error details.  There is a common set of\nmessage types for APIs to use."
        }
      },
      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). Each `Status` message contains\nthree pieces of data: error code, error message, and error details.\n\nYou can find out more about this error model and how to work with it in the\n[API Design Guide](https://cloud.google.com/apis/design/errors)."
    },
    "protobufAny": {
      "type": "object",
      "properties": {
        "@type": {
          "type": "string",
          "description": "A URL/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."
        }
      },
      "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    }"
    },
    "protobufNullValue": {
      "type": "string",
      "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\nThe JSON representation for `NullValue` is JSON `null`."
    },
    "v1AvailableFeature": {
      "type": "string",
      "enum": [
        "DISABLE_PUBLIC_LB",
        "DELEGATE_USER",
        "PRIVATELINK",
        "VECTOR_TYPE"
      ],
      "title": "Available feature for a cluster"
    },
    "v1BatchUpsertInstanceMusResponse": {
      "type": "object",
      "properties": {
        "adds": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1InstanceMu"
          }
        }
      }
    },
    "v1BatchUpsertSkusRequestUpdate": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uint64"
        },
        "defaultNodeCount": {
          "type": "integer",
          "format": "int32"
        },
        "priority": {
          "type": "integer",
          "format": "int32"
        },
        "dataStorage": {
          "$ref": "#/definitions/BatchUpsertSkusRequestUpdateStorage"
        },
        "raftlogStorage": {
          "$ref": "#/definitions/BatchUpsertSkusRequestUpdateStorage"
        },
        "conditions": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SkuCondition"
          }
        }
      },
      "required": [
        "id"
      ]
    },
    "v1BatchUpsertSkusResponse": {
      "type": "object",
      "properties": {
        "adds": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/globaldedicatedv1Sku"
          }
        },
        "updates": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/globaldedicatedv1Sku"
          }
        }
      }
    },
    "v1BatchUpsertSpusRequestUpdate": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uint64"
        },
        "displayName": {
          "type": "string"
        },
        "mappings": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SpuMapping"
          },
          "description": "Override the whole mapping list."
        }
      },
      "required": [
        "id"
      ]
    },
    "v1BatchUpsertSpusResponse": {
      "type": "object",
      "properties": {
        "adds": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/globaldedicatedv1Spu"
          }
        },
        "updates": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/globaldedicatedv1Spu"
          }
        }
      }
    },
    "v1BatchUpsertStorageMusResponse": {
      "type": "object",
      "properties": {
        "adds": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/globaldedicatedv1StorageMu"
          }
        }
      }
    },
    "v1BuildDesiredComponentsRequestCreate": {
      "type": "object",
      "properties": {
        "tenantId": {
          "type": "string",
          "format": "uint64"
        },
        "projectId": {
          "type": "string",
          "format": "uint64"
        },
        "cloudProvider": {
          "$ref": "#/definitions/v1CloudProviderName"
        },
        "region": {
          "$ref": "#/definitions/v1RegionName"
        },
        "clusterComponents": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ClusterClusterComponent"
          }
        }
      },
      "required": [
        "tenantId",
        "projectId",
        "cloudProvider",
        "region",
        "clusterComponents"
      ]
    },
    "v1BuildDesiredComponentsResponse": {
      "type": "object",
      "properties": {
        "clusterDiffs": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/BuildDesiredComponentsResponseClusterDiff"
          }
        }
      }
    },
    "v1CalcClusterFeeResponse": {
      "type": "object",
      "properties": {
        "costs": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/CalcClusterFeeResponseComponentCost"
          }
        }
      }
    },
    "v1Cidr": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uint64",
          "description": "Output_only. The unique ID of the CIDR.",
          "readOnly": true
        },
        "projectId": {
          "type": "string",
          "format": "uint64",
          "description": "Required. The ID of the project."
        },
        "cidr": {
          "type": "string",
          "description": "Required. The CIDR setting by user."
        },
        "cloudProviderName": {
          "type": "string",
          "description": "Required. The name of the cloud provider."
        },
        "regionName": {
          "type": "string",
          "description": "Required. The region of the CIDR."
        },
        "regionDisplayName": {
          "type": "string",
          "description": "Output_only. The region display name of the CIDR.",
          "readOnly": true
        },
        "state": {
          "description": "Output_only. The current state of the CIDR.",
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/v1CidrState"
            }
          ]
        },
        "vpcId": {
          "type": "string",
          "description": "Output_only. The ID of the VPC that the CIDR belongs to.",
          "readOnly": true
        }
      },
      "required": [
        "projectId",
        "cidr",
        "cloudProviderName",
        "regionName"
      ]
    },
    "v1CidrOverlap": {
      "type": "object",
      "properties": {
        "regions": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/CidrOverlapCloudRegion"
          },
          "description": "The list of regions that their CIDRs overlap with the CIDR to be created."
        },
        "projectId": {
          "type": "string",
          "format": "uint64",
          "description": "The ID of of the project that the CIDR overlaps with."
        }
      }
    },
    "v1CidrState": {
      "type": "string",
      "enum": [
        "STATE_ACTIVE",
        "STATE_INACTIVE"
      ],
      "description": "Enum for CIDR state.\n\n - STATE_ACTIVE: The CIDR is active.\n - STATE_INACTIVE: The CIDR is inactive."
    },
    "v1CloudProviderName": {
      "type": "string",
      "enum": [
        "AWS",
        "GCP",
        "AZURE",
        "ALICLOUD"
      ],
      "description": "Refer to terraform provider name: https://registry.terraform.io/browse/providers."
    },
    "v1CloudProviderState": {
      "type": "string",
      "enum": [
        "ACTIVE",
        "INACTIVE"
      ]
    },
    "v1ClusterApplyMask": {
      "type": "object",
      "properties": {
        "version": {
          "type": "boolean",
          "title": "if set to true, tidb cluster version will be updated, but will ingore tiproxy\nif want to update tiproxy, set component_apply_mask with tiproxy"
        },
        "componentApplyMasks": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ClusterApplyMaskComponentApplyMask"
          }
        },
        "hotReload": {
          "type": "boolean"
        },
        "strategy": {
          "$ref": "#/definitions/ClusterApplyMaskStrategy"
        }
      },
      "required": [
        "strategy"
      ]
    },
    "v1ClusterConfigBackupPolicy": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "clusterId": {
          "type": "string",
          "format": "uint64"
        },
        "enabled": {
          "type": "boolean",
          "readOnly": true
        },
        "intervalSec": {
          "type": "integer",
          "format": "int32",
          "readOnly": true
        },
        "nextRunAt": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "lastBackupAt": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "lastSuccessAt": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "lastError": {
          "type": "string",
          "readOnly": true
        }
      },
      "required": [
        "clusterId"
      ]
    },
    "v1ClusterConfiguration": {
      "type": "object",
      "properties": {
        "componentConfigurations": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ClusterConfigurationComponentConfiguration"
          }
        }
      },
      "required": [
        "componentConfigurations"
      ]
    },
    "v1ClusterSnapshot": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uint64"
        },
        "tenantId": {
          "type": "string",
          "format": "uint64"
        },
        "projectId": {
          "type": "string",
          "format": "uint64"
        },
        "cloudProviderName": {
          "type": "string"
        },
        "clusterId": {
          "type": "string",
          "format": "uint64"
        },
        "components": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ClusterClusterComponent"
          }
        }
      }
    },
    "v1ComponentNodeInfo": {
      "type": "object",
      "properties": {
        "tidb": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1ComponentNodeInfoComponent"
          }
        },
        "tikv": {
          "$ref": "#/definitions/v1ComponentNodeInfoComponent"
        },
        "tiflash": {
          "$ref": "#/definitions/v1ComponentNodeInfoComponent"
        },
        "tiproxy": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1ComponentNodeInfoComponent"
          }
        }
      },
      "description": "All fields are output only unless otherwise specified."
    },
    "v1ComponentNodeInfoComponent": {
      "type": "object",
      "properties": {
        "nodes": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ComponentNode"
          }
        },
        "tidbGroupId": {
          "type": "string",
          "format": "uint64"
        },
        "tidbGroupDisplayName": {
          "type": "string"
        },
        "isDefaultTidbGroup": {
          "type": "boolean"
        }
      }
    },
    "v1CreateCidrResponse": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uint64"
        },
        "overlaps": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1CidrOverlap"
          },
          "description": "Only output when validate_only is true."
        },
        "maxNodeIp": {
          "type": "integer",
          "format": "int64",
          "description": "Only output when validate_only is true. The max node IP of the CIDR."
        }
      }
    },
    "v1CreateClusterSnapshotResponse": {
      "type": "object",
      "properties": {
        "snapshotId": {
          "type": "string",
          "format": "uint64"
        }
      }
    },
    "v1CreatePrivateLinkEndpointResponse": {
      "type": "object",
      "properties": {
        "privateLinkEndpoint": {
          "$ref": "#/definitions/dedicatedv1PrivateLinkEndpoint"
        }
      }
    },
    "v1CreatePrivateLinkServiceResponse": {
      "type": "object",
      "properties": {
        "privateLinkService": {
          "$ref": "#/definitions/globaldedicatedv1PrivateLinkService"
        }
      }
    },
    "v1GKEHeterogeneousDeployPodCount": {
      "type": "object",
      "properties": {
        "machineType": {
          "type": "string",
          "readOnly": true
        },
        "podCount": {
          "type": "integer",
          "format": "int32",
          "readOnly": true
        }
      }
    },
    "v1GetAccountResponse": {
      "type": "object",
      "properties": {
        "account": {
          "type": "string"
        }
      }
    },
    "v1GetBillableClustersCountResponse": {
      "type": "object",
      "properties": {
        "billableClustersCount": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "v1GetClientCaCertificateResponse": {
      "type": "object",
      "properties": {
        "caCertificate": {
          "type": "string"
        }
      }
    },
    "v1GetClusterConfidentialInfoResponse": {
      "type": "object",
      "properties": {
        "encryptedCloudAdminPassword": {
          "type": "string"
        }
      }
    },
    "v1GetClusterCustomParamsResponse": {
      "type": "object",
      "properties": {
        "clusterConfiguration": {
          "$ref": "#/definitions/v1ClusterConfiguration"
        }
      },
      "required": [
        "clusterConfiguration"
      ]
    },
    "v1GetCmekAccessIamPrincipalResponse": {
      "type": "object",
      "properties": {
        "iamPrincipal": {
          "type": "string"
        },
        "azureCmekPrincipal": {
          "$ref": "#/definitions/dedicatedv1AzureCmekPrincipal"
        }
      }
    },
    "v1GetComponentNodeInfoResponse": {
      "type": "object",
      "properties": {
        "componentNodeInfo": {
          "$ref": "#/definitions/v1ComponentNodeInfo"
        }
      }
    },
    "v1GetDefaultCidrResponse": {
      "type": "object",
      "properties": {
        "defaultCidr": {
          "$ref": "#/definitions/GetDefaultCidrResponseDefaultCidr"
        }
      }
    },
    "v1GetDefaultTidbVersionResponse": {
      "type": "object",
      "properties": {
        "version": {
          "type": "string"
        }
      }
    },
    "v1GetPrivateLinkServiceResponse": {
      "type": "object",
      "properties": {
        "privateLinkService": {
          "$ref": "#/definitions/globaldedicatedv1PrivateLinkService"
        }
      },
      "description": "Deprecated: This method only returns the private link service of the default Tidb node group."
    },
    "v1InstanceMu": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "cloudProvider": {
          "$ref": "#/definitions/v1CloudProviderName"
        },
        "instanceType": {
          "type": "string"
        },
        "cpuCore": {
          "type": "integer",
          "format": "int32"
        },
        "memoryGi": {
          "type": "integer",
          "format": "int32"
        },
        "cpuArch": {
          "$ref": "#/definitions/InstanceMuCpuArch"
        },
        "cpuGeneration": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/InstanceMuCpuGeneration"
            }
          ]
        }
      },
      "description": "Compute Material Unit (InstanceMu) simply contains information of compute resource directly from 3rd-party cloud providers.",
      "required": [
        "cloudProvider",
        "instanceType",
        "cpuCore",
        "memoryGi",
        "cpuArch"
      ]
    },
    "v1ListClusterConfigBackupResponse": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1ClusterConfigBackupPolicy"
          }
        },
        "total": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "v1ListClusterSnapshotsResponse": {
      "type": "object",
      "properties": {
        "snapshots": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1ClusterSnapshot"
          }
        }
      }
    },
    "v1ListInstanceMusResponse": {
      "type": "object",
      "properties": {
        "instanceMus": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1InstanceMu"
          },
          "description": "Sorted by num of cpu then memory size."
        }
      }
    },
    "v1ListPrivateLinkEndpointsResponse": {
      "type": "object",
      "properties": {
        "endpoints": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/dedicatedv1PrivateLinkEndpoint"
          }
        }
      }
    },
    "v1ListTenantQuotaResponse": {
      "type": "object",
      "properties": {
        "tenantQuotas": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1TenantQuota"
          }
        }
      }
    },
    "v1ListTidbNodeGroupPrivateLinkEndpointsResponse": {
      "type": "object",
      "properties": {
        "endpoints": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/dedicatedv1PrivateLinkEndpoint"
          }
        },
        "privateLinkService": {
          "$ref": "#/definitions/globaldedicatedv1PrivateLinkService"
        }
      }
    },
    "v1PrecheckAuditLogConfigResponse": {
      "type": "object",
      "properties": {
        "valid": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        }
      }
    },
    "v1PrivateLinkEndpointStatus": {
      "type": "string",
      "enum": [
        "PENDING",
        "ACTIVE",
        "DELETING",
        "FAILED",
        "DISCOVERED"
      ]
    },
    "v1PrivateLinkEndpointType": {
      "type": "string",
      "enum": [
        "TYPE_CUSTOMER",
        "TYPE_DBAAS"
      ],
      "title": "- TYPE_CUSTOMER: This endpoint is created by customer\n - TYPE_DBAAS: This endpoint is created by DBaaS system and not visible to customer"
    },
    "v1PrivateLinkIPAddressType": {
      "type": "string",
      "enum": [
        "PRIVATE_LINK_IP_ADDRESS_TYPE_IPV4",
        "PRIVATE_LINK_IP_ADDRESS_TYPE_IPV6",
        "PRIVATE_LINK_IP_ADDRESS_TYPE_DUALSTACK"
      ]
    },
    "v1PrivateLinkServiceStatus": {
      "type": "string",
      "enum": [
        "CREATING",
        "ACTIVE",
        "DELETING"
      ],
      "title": "- CREATING: The following must be consistent with 'PrivateLinkServicePhase' defined in infra-api"
    },
    "v1QueryCidrsResponse": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Cidr"
          }
        }
      }
    },
    "v1RegionEngineType": {
      "type": "string",
      "enum": [
        "MYSQL_COMPATIBLE",
        "POSTGRESQL_COMPATIBLE"
      ]
    },
    "v1RegionName": {
      "type": "string",
      "enum": [
        "AWS_US_EAST_2",
        "AWS_US_EAST_1",
        "AWS_US_WEST_1",
        "AWS_US_WEST_2",
        "AWS_AF_SOUTH_1",
        "AWS_AP_EAST_1",
        "AWS_AP_SOUTH_2",
        "AWS_AP_SOUTHEAST_3",
        "AWS_AP_SOUTHEAST_4",
        "AWS_AP_SOUTH_1",
        "AWS_AP_NORTHEAST_3",
        "AWS_AP_NORTHEAST_2",
        "AWS_AP_SOUTHEAST_1",
        "AWS_AP_SOUTHEAST_2",
        "AWS_AP_NORTHEAST_1",
        "AWS_CA_CENTRAL_1",
        "AWS_CA_WEST_1",
        "AWS_EU_CENTRAL_1",
        "AWS_EU_WEST_1",
        "AWS_EU_WEST_2",
        "AWS_EU_SOUTH_1",
        "AWS_EU_WEST_3",
        "AWS_EU_SOUTH_2",
        "AWS_EU_NORTH_1",
        "AWS_EU_CENTRAL_2",
        "AWS_IL_CENTRAL_1",
        "AWS_ME_SOUTH_1",
        "AWS_ME_CENTRAL_1",
        "AWS_SA_EAST_1",
        "AWS_AP_SOUTHEAST_5",
        "AWS_AP_SOUTHEAST_6",
        "AWS_AP_SOUTHEAST_7",
        "AWS_MX_CENTRAL_1",
        "GCP_ASIA_EAST1",
        "GCP_ASIA_EAST2",
        "GCP_ASIA_NORTHEAST1",
        "GCP_ASIA_NORTHEAST2",
        "GCP_ASIA_NORTHEAST3",
        "GCP_ASIA_SOUTH1",
        "GCP_ASIA_SOUTH2",
        "GCP_ASIA_SOUTHEAST1",
        "GCP_ASIA_SOUTHEAST2",
        "GCP_AUSTRALIA_SOUTHEAST1",
        "GCP_AUSTRALIA_SOUTHEAST2",
        "GCP_EUROPE_CENTRAL2",
        "GCP_EUROPE_NORTH1",
        "GCP_EUROPE_SOUTHWEST1",
        "GCP_EUROPE_WEST1",
        "GCP_EUROPE_WEST10",
        "GCP_EUROPE_WEST12",
        "GCP_EUROPE_WEST2",
        "GCP_EUROPE_WEST3",
        "GCP_EUROPE_WEST4",
        "GCP_EUROPE_WEST6",
        "GCP_EUROPE_WEST8",
        "GCP_EUROPE_WEST9",
        "GCP_ME_CENTRAL1",
        "GCP_ME_CENTRAL2",
        "GCP_ME_WEST1",
        "GCP_NORTHAMERICA_NORTHEAST1",
        "GCP_NORTHAMERICA_NORTHEAST2",
        "GCP_SOUTHAMERICA_EAST1",
        "GCP_SOUTHAMERICA_WEST1",
        "GCP_US_CENTRAL1",
        "GCP_US_EAST1",
        "GCP_US_EAST4",
        "GCP_US_EAST5",
        "GCP_US_SOUTH1",
        "GCP_US_WEST1",
        "GCP_US_WEST2",
        "GCP_US_WEST3",
        "GCP_US_WEST4",
        "AZURE_EASTUS",
        "AZURE_SOUTHCENTRALUS",
        "AZURE_WESTUS2",
        "AZURE_WESTUS3",
        "AZURE_AUSTRALIAEAST",
        "AZURE_SOUTHEASTASIA",
        "AZURE_NORTHEUROPE",
        "AZURE_SWEDENCENTRAL",
        "AZURE_UKSOUTH",
        "AZURE_WESTEUROPE",
        "AZURE_CENTRALUS",
        "AZURE_SOUTHAFRICANORTH",
        "AZURE_CENTRALINDIA",
        "AZURE_EASTASIA",
        "AZURE_JAPANEAST",
        "AZURE_KOREACENTRAL",
        "AZURE_CANADACENTRAL",
        "AZURE_FRANCECENTRAL",
        "AZURE_GERMANYWESTCENTRAL",
        "AZURE_ITALYNORTH",
        "AZURE_NORWAYEAST",
        "AZURE_POLANDCENTRAL",
        "AZURE_SPAINCENTRAL",
        "AZURE_SWITZERLANDNORTH",
        "AZURE_MEXICOCENTRAL",
        "AZURE_UAENORTH",
        "AZURE_BRAZILSOUTH",
        "AZURE_ISRAELCENTRAL",
        "AZURE_QATARCENTRAL",
        "AZURE_CENTRALUSSTAGE",
        "AZURE_EASTUSSTAGE",
        "AZURE_EASTUS2STAGE",
        "AZURE_NORTHCENTRALUSSTAGE",
        "AZURE_SOUTHCENTRALUSSTAGE",
        "AZURE_WESTUSSTAGE",
        "AZURE_WESTUS2STAGE",
        "AZURE_ASIA",
        "AZURE_ASIAPACIFIC",
        "AZURE_AUSTRALIA",
        "AZURE_BRAZIL",
        "AZURE_CANADA",
        "AZURE_EUROPE",
        "AZURE_FRANCE",
        "AZURE_GERMANY",
        "AZURE_GLOBAL",
        "AZURE_INDIA",
        "AZURE_ISRAEL",
        "AZURE_ITALY",
        "AZURE_JAPAN",
        "AZURE_KOREA",
        "AZURE_NEWZEALAND",
        "AZURE_NORWAY",
        "AZURE_POLAND",
        "AZURE_QATAR",
        "AZURE_SINGAPORE",
        "AZURE_SOUTHAFRICA",
        "AZURE_SWEDEN",
        "AZURE_SWITZERLAND",
        "AZURE_UAE",
        "AZURE_UK",
        "AZURE_UNITEDSTATES",
        "AZURE_UNITEDSTATESEUAP",
        "AZURE_EASTASIASTAGE",
        "AZURE_SOUTHEASTASIASTAGE",
        "AZURE_BRAZILUS",
        "AZURE_EASTUS2",
        "AZURE_EASTUSSTG",
        "AZURE_NORTHCENTRALUS",
        "AZURE_WESTUS",
        "AZURE_JAPANWEST",
        "AZURE_JIOINDIAWEST",
        "AZURE_CENTRALUSEUAP",
        "AZURE_EASTUS2EUAP",
        "AZURE_WESTCENTRALUS",
        "AZURE_SOUTHAFRICAWEST",
        "AZURE_AUSTRALIACENTRAL",
        "AZURE_AUSTRALIACENTRAL2",
        "AZURE_AUSTRALIASOUTHEAST",
        "AZURE_JIOINDIACENTRAL",
        "AZURE_KOREASOUTH",
        "AZURE_SOUTHINDIA",
        "AZURE_WESTINDIA",
        "AZURE_CANADAEAST",
        "AZURE_FRANCESOUTH",
        "AZURE_GERMANYNORTH",
        "AZURE_NORWAYWEST",
        "AZURE_SWITZERLANDWEST",
        "AZURE_UKWEST",
        "AZURE_UAECENTRAL",
        "AZURE_BRAZILSOUTHEAST",
        "ALICLOUD_AP_SOUTHEAST_1",
        "ALICLOUD_AP_NORTHEAST_1",
        "ALICLOUD_AP_NORTHEAST_2",
        "ALICLOUD_AP_SOUTHEAST_3",
        "ALICLOUD_AP_SOUTHEAST_5",
        "ALICLOUD_AP_SOUTHEAST_6",
        "ALICLOUD_AP_SOUTHEAST_7",
        "ALICLOUD_NA_SOUTH_1",
        "ALICLOUD_US_WEST_1",
        "ALICLOUD_US_EAST_1",
        "ALICLOUD_EU_CENTRAL_1",
        "ALICLOUD_EU_WEST_1",
        "ALICLOUD_ME_EAST_1",
        "ALICLOUD_ME_CENTRAL_1",
        "ALICLOUD_CN_HONGKONG"
      ],
      "description": "- AWS_US_EAST_2: AWS.\n - GCP_ASIA_EAST1: GCP.\n - AZURE_EASTUS: Azure\n - ALICLOUD_AP_SOUTHEAST_1: AliCloud",
      "title": "Refer to:\n  - AWS: https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints.\n  - GCP: https://console.cloud.google.com/compute/zones\n  - Azure: https://gist.github.com/ausfestivus/04e55c7d80229069bf3bc75870630ec8"
    },
    "v1RegionOpsAuditLogSetting": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "logLocation": {
          "$ref": "#/definitions/v1RegionOpsAuditLogSettingLogLocation"
        },
        "logRotation": {
          "$ref": "#/definitions/v1RegionOpsAuditLogSettingLogRotation"
        }
      },
      "required": [
        "enabled"
      ]
    },
    "v1RegionOpsAuditLogSettingLogLocation": {
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/definitions/v1RegionOpsAuditLogSettingType"
        },
        "bucketUri": {
          "type": "string"
        },
        "roleArn": {
          "type": "string"
        },
        "externalId": {
          "type": "string"
        },
        "accountId": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "bucketUri",
        "roleArn",
        "externalId",
        "accountId"
      ]
    },
    "v1RegionOpsAuditLogSettingLogRotation": {
      "type": "object",
      "properties": {
        "fileSizeLimitInMb": {
          "type": "string",
          "format": "uint64"
        },
        "rotationIntervalInMin": {
          "type": "string",
          "format": "uint64"
        }
      },
      "required": [
        "fileSizeLimitInMb",
        "rotationIntervalInMin"
      ]
    },
    "v1RegionOpsAuditLogSettingType": {
      "type": "string",
      "enum": [
        "TYPE_STANDARD",
        "TYPE_CUSTOMIZED"
      ]
    },
    "v1RegionSys9Config": {
      "type": "object",
      "properties": {
        "oemProfileRef": {
          "type": "string"
        },
        "authMode": {
          "type": "string"
        },
        "tokenTtlSec": {
          "type": "integer",
          "format": "int64"
        },
        "sessionRefreshBeforeSec": {
          "type": "integer",
          "format": "int64"
        },
        "retryPolicyRef": {
          "type": "string"
        }
      }
    },
    "v1RegionWhiteList": {
      "type": "object",
      "properties": {
        "servicePlan": {
          "$ref": "#/definitions/commonv1ServicePlan"
        },
        "isPublic": {
          "type": "boolean"
        },
        "openedTenantIds": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uint64"
          }
        }
      },
      "required": [
        "servicePlan"
      ]
    },
    "v1SkuStorage": {
      "type": "object",
      "properties": {
        "diskType": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/SkuDiskType"
            }
          ]
        },
        "storageMuId": {
          "type": "string",
          "format": "uint64"
        },
        "volumeType": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/StorageMuVolumeType"
            }
          ]
        },
        "sizeGiDefault": {
          "type": "integer",
          "format": "int32"
        },
        "sizeGiMax": {
          "type": "integer",
          "format": "int32",
          "description": "0 means no limit."
        },
        "sizeGiMin": {
          "type": "integer",
          "format": "int32",
          "description": "0 means no limit."
        },
        "iopsMax": {
          "type": "integer",
          "format": "int32",
          "description": "0 means no limit."
        },
        "iopsMin": {
          "type": "integer",
          "format": "int32",
          "description": "0 means no limit."
        },
        "throughputMibpsMax": {
          "type": "integer",
          "format": "int32",
          "description": "0 means no limit."
        },
        "throughputMibpsMin": {
          "type": "integer",
          "format": "int32",
          "description": "0 means no limit."
        },
        "iopsFixed": {
          "$ref": "#/definitions/v1SkuStorageIopsFixed"
        },
        "iopsDynamic": {
          "$ref": "#/definitions/v1SkuStorageIopsDynamic"
        },
        "throughputFixed": {
          "$ref": "#/definitions/v1SkuStorageThroughputFixed"
        },
        "throughputDynamic": {
          "$ref": "#/definitions/v1SkuStorageThroughputDynamic"
        }
      },
      "required": [
        "storageMuId",
        "sizeGiDefault"
      ]
    },
    "v1SkuStorageIopsDynamic": {
      "type": "object",
      "properties": {
        "iopsPerSizeGi": {
          "type": "number",
          "format": "float"
        }
      },
      "description": "iops = ceil(iops_per_size_gi * size_gi), and in range of [iops_min, iops_max].",
      "required": [
        "iopsPerSizeGi"
      ]
    },
    "v1SkuStorageIopsFixed": {
      "type": "object",
      "properties": {
        "iops": {
          "type": "integer",
          "format": "int32"
        }
      },
      "required": [
        "iops"
      ]
    },
    "v1SkuStorageThroughputDynamic": {
      "type": "object",
      "properties": {
        "throughputMibpsPerSizeGi": {
          "type": "number",
          "format": "float"
        },
        "throughputMibpsPerIops": {
          "type": "number",
          "format": "float"
        }
      },
      "description": "throughput = ceil(max(throughput_mibps_per_size_gi * size_gi, throughput_mibps_per_iops * iops)), and in range of [throughput_mibps_min, throughput_mibps_max].",
      "required": [
        "throughputMibpsPerSizeGi",
        "throughputMibpsPerIops"
      ]
    },
    "v1SkuStorageThroughputFixed": {
      "type": "object",
      "properties": {
        "throughputMibps": {
          "type": "integer",
          "format": "int32"
        }
      },
      "required": [
        "throughputMibps"
      ]
    },
    "v1SorterSort": {
      "type": "string",
      "enum": [
        "ASC",
        "DESC"
      ]
    },
    "v1SpuStorage": {
      "type": "object",
      "properties": {
        "defaultSizeGi": {
          "type": "integer",
          "format": "int32",
          "description": "Behavior not defined. Currently choose value of the first selected sku.",
          "readOnly": true
        },
        "maxSizeGi": {
          "type": "integer",
          "format": "int32",
          "description": "Behavior not defined. Currently choose value of the first selected sku.",
          "readOnly": true
        },
        "minSizeGi": {
          "type": "integer",
          "format": "int32",
          "description": "Behavior not defined. Currently choose value of the first selected sku.",
          "readOnly": true
        },
        "defaultIops": {
          "type": "integer",
          "format": "int32",
          "description": "Currently only useful when overriding iops for raftlog storage.",
          "readOnly": true
        },
        "maxIops": {
          "type": "integer",
          "format": "int32",
          "description": "Behavior not defined. Currently choose value of the first selected sku.",
          "readOnly": true
        },
        "minIops": {
          "type": "integer",
          "format": "int32",
          "description": "Behavior not defined. Currently choose value of the first selected sku.",
          "readOnly": true
        }
      }
    },
    "v1SpuStorageTypeDetail": {
      "type": "object",
      "properties": {
        "dataStorage": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/v1SpuStorage"
            }
          ]
        },
        "raftlogStorage": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/v1SpuStorage"
            }
          ]
        }
      }
    },
    "v1TenantQuota": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uint64"
        },
        "tenantId": {
          "type": "string",
          "format": "uint64"
        },
        "component": {
          "$ref": "#/definitions/globaldedicatedv1ComponentType"
        },
        "quota": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "v1TidbGroupPrivateLinkIPAddressTypeStatus": {
      "type": "object",
      "properties": {
        "desired": {
          "$ref": "#/definitions/v1PrivateLinkIPAddressType"
        },
        "observed": {
          "$ref": "#/definitions/v1PrivateLinkIPAddressType"
        },
        "ready": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "state": {
          "$ref": "#/definitions/v1TidbGroupPrivateLinkIPAddressTypeStatusState"
        }
      }
    },
    "v1TidbGroupPrivateLinkIPAddressTypeStatusState": {
      "type": "string",
      "enum": [
        "READY",
        "CHANGING",
        "UNKNOWN"
      ],
      "description": " - CHANGING: The address workflow is running or being retried by Fastflow.\n - UNKNOWN: The infrastructure is not strictly ready and no active address operation\ncan be proven."
    },
    "v1TidbNodeGroupEndpointIpAddress": {
      "type": "object",
      "properties": {
        "cidrBlock": {
          "type": "string"
        },
        "description": {
          "type": "string"
        }
      },
      "required": [
        "cidrBlock"
      ]
    },
    "v1TidbNodeGroupEndpointPrivateLinkEndpoint": {
      "type": "object",
      "properties": {
        "host": {
          "type": "string",
          "readOnly": true
        },
        "port": {
          "type": "integer",
          "format": "int64",
          "readOnly": true
        }
      }
    },
    "v1TidbNodeGroupEndpointPublicEndpoint": {
      "type": "object",
      "properties": {
        "host": {
          "type": "string",
          "readOnly": true
        },
        "port": {
          "type": "integer",
          "format": "int64",
          "readOnly": true
        },
        "ipAllowList": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1TidbNodeGroupEndpointIpAddress"
          }
        },
        "enablePublicLb": {
          "type": "boolean",
          "x-nullable": true
        }
      }
    },
    "v1TidbNodeGroupEndpointVpcPeeringEndpoint": {
      "type": "object",
      "properties": {
        "host": {
          "type": "string",
          "readOnly": true
        },
        "port": {
          "type": "integer",
          "format": "int64",
          "readOnly": true
        }
      }
    },
    "v1UpdateCidrResponse": {
      "type": "object",
      "properties": {
        "overlaps": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1CidrOverlap"
          },
          "description": "Only output when validate_only is true."
        },
        "maxNodeIp": {
          "type": "integer",
          "format": "int64",
          "description": "Only output when validate_only is true. The max node IP of the CIDR."
        }
      }
    },
    "v1UpdateTenantQuotaResponse": {
      "type": "object",
      "properties": {
        "tenantQuota": {
          "$ref": "#/definitions/v1TenantQuota"
        }
      }
    },
    "v1Vpc": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "readOnly": true
        },
        "projectId": {
          "type": "string",
          "format": "uint64"
        },
        "organizationId": {
          "type": "string",
          "format": "uint64"
        },
        "cloudProviderId": {
          "$ref": "#/definitions/v1CloudProviderName"
        },
        "regionId": {
          "$ref": "#/definitions/v1RegionName"
        },
        "tidbCloudCidrBlock": {
          "type": "string"
        },
        "aws": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/VpcAwsVpcInfo"
            }
          ]
        },
        "gcp": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/VpcGcpVpcInfo"
            }
          ]
        },
        "azure": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/VpcAzureVpcInfo"
            }
          ]
        },
        "secondaryCidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "readOnly": true
        }
      },
      "required": [
        "projectId",
        "organizationId",
        "cloudProviderId",
        "regionId",
        "tidbCloudCidrBlock"
      ]
    },
    "v1VpcPeeringAws": {
      "type": "object",
      "properties": {
        "tidbCloudAccountId": {
          "type": "string",
          "readOnly": true
        },
        "customerAccountId": {
          "type": "string"
        },
        "tidbCloudVpcId": {
          "type": "string",
          "readOnly": true
        },
        "customerVpcId": {
          "type": "string"
        },
        "vpcPeeringConnectionId": {
          "type": "string",
          "readOnly": true
        }
      },
      "required": [
        "customerAccountId",
        "customerVpcId"
      ]
    },
    "v1VpcPeeringGcp": {
      "type": "object",
      "properties": {
        "tidbCloudProjectId": {
          "type": "string",
          "readOnly": true
        },
        "customerProjectId": {
          "type": "string"
        },
        "tidbCloudNetworkName": {
          "type": "string",
          "readOnly": true
        },
        "customerNetworkName": {
          "type": "string"
        }
      },
      "required": [
        "customerProjectId",
        "customerNetworkName"
      ]
    },
    "v1VpcPeeringType": {
      "type": "string",
      "enum": [
        "CUSTOMER",
        "DBAAS",
        "CUSTOMER_READONLY"
      ]
    }
  }
}
