{
  "repo": "tidbcloud/tidb-management-service",
  "binary": "tidb-mgmt-portal",
  "binary_path": "tidb-mgmt-portal/cmd/tidb-mgmt-portal/main.go",
  "surface_kind": "mixed_service",
  "type": "mixed_service",
  "services": [
    {
      "name": "TiDBMgmtPortalLifecycle",
      "package": "github.com/tidbcloud/tidb-management-service/tidb-mgmt-portal",
      "type": "lifecycle",
      "methods": [
        {
          "name": "Startup",
          "name_key": "TiDBMgmtPortalLifecycle.Startup",
          "input": "config path + tiinf init",
          "output": "running HTTP gateway"
        },
        {
          "name": "RegisterRoutes",
          "name_key": "TiDBMgmtPortalLifecycle.RegisterRoutes",
          "input": "gin.Engine",
          "output": "health/version/ping + portal route groups"
        },
        {
          "name": "SetupOpenApiHandler",
          "name_key": "TiDBMgmtPortalLifecycle.SetupOpenApiHandler",
          "input": "gin.Engine + timeout",
          "output": "serverless and dedicated OpenAPI gateway routes"
        },
        {
          "name": "SetupTiDBXApiHandler",
          "name_key": "TiDBMgmtPortalLifecycle.SetupTiDBXApiHandler",
          "input": "gin.Engine + timeout",
          "output": "nextgen OpenAPI gateway routes"
        },
        {
          "name": "SetupTiDBZeroApiHandler",
          "name_key": "TiDBMgmtPortalLifecycle.SetupTiDBZeroApiHandler",
          "input": "gin.Engine + timeout",
          "output": "zero OpenAPI gateway routes"
        }
      ]
    },
    {
      "name": "ClusterService",
      "package": "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/dedicated/v1beta1",
      "type": "dedicated_openapi",
      "methods": [
        {
          "name": "CreateCluster",
          "name_key": "DedicatedClusterService.CreateCluster",
          "input": "CreateClusterRequest",
          "output": "Cluster"
        },
        {
          "name": "ListClusters",
          "name_key": "DedicatedClusterService.ListClusters",
          "input": "ListClustersRequest",
          "output": "ListClustersResponse"
        },
        {
          "name": "GetCluster",
          "name_key": "DedicatedClusterService.GetCluster",
          "input": "GetClusterRequest",
          "output": "Cluster"
        },
        {
          "name": "DeleteCluster",
          "name_key": "DedicatedClusterService.DeleteCluster",
          "input": "DeleteClusterRequest",
          "output": "Cluster"
        },
        {
          "name": "UpdateCluster",
          "name_key": "DedicatedClusterService.UpdateCluster",
          "input": "UpdateClusterRequest",
          "output": "Cluster"
        },
        {
          "name": "PauseCluster",
          "name_key": "DedicatedClusterService.PauseCluster",
          "input": "PauseClusterRequest",
          "output": "PauseClusterResponse"
        },
        {
          "name": "ResumeCluster",
          "name_key": "DedicatedClusterService.ResumeCluster",
          "input": "ResumeClusterRequest",
          "output": "ResumeClusterResponse"
        },
        {
          "name": "ResetRootPassword",
          "name_key": "DedicatedClusterService.ResetRootPassword",
          "input": "ResetRootPasswordRequest",
          "output": "ResetRootPasswordResponse"
        },
        {
          "name": "ListNodeInstances",
          "name_key": "DedicatedClusterService.ListNodeInstances",
          "input": "ListNodeInstancesRequest",
          "output": "ListNodeInstancesResponse"
        },
        {
          "name": "GetNodeInstance",
          "name_key": "DedicatedClusterService.GetNodeInstance",
          "input": "GetNodeInstanceRequest",
          "output": "NodeInstance"
        },
        {
          "name": "ShowNodeQuota",
          "name_key": "DedicatedClusterService.ShowNodeQuota",
          "input": "ShowNodeQuotaRequest",
          "output": "ShowNodeQuotaResponse"
        },
        {
          "name": "GetLogRedactionPolicy",
          "name_key": "DedicatedClusterService.GetLogRedactionPolicy",
          "input": "GetLogRedactionPolicyRequest",
          "output": "LogRedactionPolicy"
        },
        {
          "name": "UpdateLogRedactionPolicy",
          "name_key": "DedicatedClusterService.UpdateLogRedactionPolicy",
          "input": "UpdateLogRedactionPolicyRequest",
          "output": "LogRedactionPolicy"
        }
      ]
    },
    {
      "name": "NetworkContainerService",
      "package": "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/dedicated/v1beta1",
      "type": "dedicated_openapi",
      "methods": [
        {
          "name": "CreateNetworkContainer",
          "name_key": "DedicatedNetworkContainerService.CreateNetworkContainer",
          "input": "CreateNetworkContainerRequest",
          "output": "NetworkContainer"
        },
        {
          "name": "GetNetworkContainer",
          "name_key": "DedicatedNetworkContainerService.GetNetworkContainer",
          "input": "GetNetworkContainerRequest",
          "output": "NetworkContainer"
        },
        {
          "name": "ListNetworkContainers",
          "name_key": "DedicatedNetworkContainerService.ListNetworkContainers",
          "input": "ListNetworkContainersRequest",
          "output": "ListNetworkContainersResponse"
        },
        {
          "name": "DeleteNetworkContainer",
          "name_key": "DedicatedNetworkContainerService.DeleteNetworkContainer",
          "input": "DeleteNetworkContainerRequest",
          "output": "google.protobuf.Empty"
        },
        {
          "name": "CreateVpcPeering",
          "name_key": "DedicatedNetworkContainerService.CreateVpcPeering",
          "input": "CreateVpcPeeringRequest",
          "output": "VpcPeering"
        },
        {
          "name": "DeleteVpcPeering",
          "name_key": "DedicatedNetworkContainerService.DeleteVpcPeering",
          "input": "DeleteVpcPeeringRequest",
          "output": "google.protobuf.Empty"
        },
        {
          "name": "ListVpcPeerings",
          "name_key": "DedicatedNetworkContainerService.ListVpcPeerings",
          "input": "ListVpcPeeringsRequest",
          "output": "ListVpcPeeringsResponse"
        },
        {
          "name": "GetVpcPeering",
          "name_key": "DedicatedNetworkContainerService.GetVpcPeering",
          "input": "GetVpcPeeringRequest",
          "output": "VpcPeering"
        }
      ]
    },
    {
      "name": "RegionService",
      "package": "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/dedicated/v1beta1",
      "type": "dedicated_openapi",
      "methods": [
        {
          "name": "ListRegions",
          "name_key": "DedicatedRegionService.ListRegions",
          "input": "ListRegionsRequest",
          "output": "ListRegionsResponse"
        },
        {
          "name": "GetRegion",
          "name_key": "DedicatedRegionService.GetRegion",
          "input": "GetRegionRequest",
          "output": "Region"
        },
        {
          "name": "ShowCloudProviders",
          "name_key": "DedicatedRegionService.ShowCloudProviders",
          "input": "ShowCloudProvidersRequest",
          "output": "ShowCloudProvidersResponse"
        },
        {
          "name": "ListNodeSpecs",
          "name_key": "DedicatedRegionService.ListNodeSpecs",
          "input": "ListNodeSpecsRequest",
          "output": "ListNodeSpecsResponse"
        },
        {
          "name": "GetNodeSpec",
          "name_key": "DedicatedRegionService.GetNodeSpec",
          "input": "GetNodeSpecRequest",
          "output": "NodeSpec"
        }
      ]
    },
    {
      "name": "MaintenanceService",
      "package": "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/dedicated/v1beta1",
      "type": "dedicated_openapi",
      "methods": [
        {
          "name": "GetMaintenanceWindow",
          "name_key": "DedicatedMaintenanceService.GetMaintenanceWindow",
          "input": "GetMaintenanceWindowRequest",
          "output": "MaintenanceWindow"
        },
        {
          "name": "ListMaintenanceWindows",
          "name_key": "DedicatedMaintenanceService.ListMaintenanceWindows",
          "input": "ListMaintenanceWindowsRequest",
          "output": "ListMaintenanceWindowsResponse"
        },
        {
          "name": "UpdateMaintenanceWindow",
          "name_key": "DedicatedMaintenanceService.UpdateMaintenanceWindow",
          "input": "UpdateMaintenanceWindowRequest",
          "output": "MaintenanceWindow"
        },
        {
          "name": "ListMaintenanceTasks",
          "name_key": "DedicatedMaintenanceService.ListMaintenanceTasks",
          "input": "ListMaintenanceTasksRequest",
          "output": "ListMaintenanceTasksResponse"
        },
        {
          "name": "GetMaintenanceTask",
          "name_key": "DedicatedMaintenanceService.GetMaintenanceTask",
          "input": "GetMaintenanceTaskRequest",
          "output": "MaintenanceTask"
        },
        {
          "name": "UpdateMaintenanceTask",
          "name_key": "DedicatedMaintenanceService.UpdateMaintenanceTask",
          "input": "UpdateMaintenanceTaskRequest",
          "output": "MaintenanceTask"
        }
      ]
    },
    {
      "name": "TidbNodeGroupService",
      "package": "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/dedicated/v1beta1",
      "type": "dedicated_openapi",
      "methods": [
        {
          "name": "CreateTidbNodeGroup",
          "name_key": "DedicatedTidbNodeGroupService.CreateTidbNodeGroup",
          "input": "CreateTidbNodeGroupRequest",
          "output": "TidbNodeGroup"
        },
        {
          "name": "ListTidbNodeGroups",
          "name_key": "DedicatedTidbNodeGroupService.ListTidbNodeGroups",
          "input": "ListTidbNodeGroupsRequest",
          "output": "ListTidbNodeGroupsResponse"
        },
        {
          "name": "GetTidbNodeGroup",
          "name_key": "DedicatedTidbNodeGroupService.GetTidbNodeGroup",
          "input": "GetTidbNodeGroupRequest",
          "output": "TidbNodeGroup"
        },
        {
          "name": "DeleteTidbNodeGroup",
          "name_key": "DedicatedTidbNodeGroupService.DeleteTidbNodeGroup",
          "input": "DeleteTidbNodeGroupRequest",
          "output": "google.protobuf.Empty"
        },
        {
          "name": "UpdateTidbNodeGroup",
          "name_key": "DedicatedTidbNodeGroupService.UpdateTidbNodeGroup",
          "input": "UpdateTidbNodeGroupRequest",
          "output": "TidbNodeGroup"
        },
        {
          "name": "GetPublicEndpointSetting",
          "name_key": "DedicatedTidbNodeGroupService.GetPublicEndpointSetting",
          "input": "GetPublicEndpointSettingRequest",
          "output": "PublicEndpointSetting"
        },
        {
          "name": "UpdatePublicEndpointSetting",
          "name_key": "DedicatedTidbNodeGroupService.UpdatePublicEndpointSetting",
          "input": "UpdatePublicEndpointSettingRequest",
          "output": "PublicEndpointSetting"
        }
      ]
    },
    {
      "name": "PrivateEndpointConnectionService",
      "package": "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/dedicated/v1beta1",
      "type": "dedicated_openapi",
      "methods": [
        {
          "name": "GetPrivateLinkService",
          "name_key": "DedicatedPrivateEndpointConnectionService.GetPrivateLinkService",
          "input": "GetPrivateLinkServiceRequest",
          "output": "PrivateLinkService"
        },
        {
          "name": "CreatePrivateEndpointConnection",
          "name_key": "DedicatedPrivateEndpointConnectionService.CreatePrivateEndpointConnection",
          "input": "CreatePrivateEndpointConnectionRequest",
          "output": "PrivateEndpointConnection"
        },
        {
          "name": "ListPrivateEndpointConnections",
          "name_key": "DedicatedPrivateEndpointConnectionService.ListPrivateEndpointConnections",
          "input": "ListPrivateEndpointConnectionsRequest",
          "output": "ListPrivateEndpointConnectionsResponse"
        },
        {
          "name": "GetPrivateEndpointConnection",
          "name_key": "DedicatedPrivateEndpointConnectionService.GetPrivateEndpointConnection",
          "input": "GetPrivateEndpointConnectionRequest",
          "output": "PrivateEndpointConnection"
        },
        {
          "name": "DeletePrivateEndpointConnection",
          "name_key": "DedicatedPrivateEndpointConnectionService.DeletePrivateEndpointConnection",
          "input": "DeletePrivateEndpointConnectionRequest",
          "output": "google.protobuf.Empty"
        }
      ]
    },
    {
      "name": "DatabaseAuditLogService",
      "package": "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/dedicated/v1beta1",
      "type": "dedicated_openapi",
      "methods": [
        {
          "name": "GetAuditLogConfig",
          "name_key": "DedicatedDatabaseAuditLogService.GetAuditLogConfig",
          "input": "GetAuditLogConfigRequest",
          "output": "AuditLogConfig"
        },
        {
          "name": "UpdateAuditLogConfig",
          "name_key": "DedicatedDatabaseAuditLogService.UpdateAuditLogConfig",
          "input": "UpdateAuditLogConfigRequest",
          "output": "AuditLogConfig"
        },
        {
          "name": "CreateAuditLogFilterRule",
          "name_key": "DedicatedDatabaseAuditLogService.CreateAuditLogFilterRule",
          "input": "CreateAuditLogFilterRuleRequest",
          "output": "AuditLogFilterRule"
        },
        {
          "name": "ReplaceAuditLogFilterRule",
          "name_key": "DedicatedDatabaseAuditLogService.ReplaceAuditLogFilterRule",
          "input": "ReplaceAuditLogFilterRuleRequest",
          "output": "ReplaceAuditLogFilterRuleResponse"
        },
        {
          "name": "GetAuditLogFilterRule",
          "name_key": "DedicatedDatabaseAuditLogService.GetAuditLogFilterRule",
          "input": "GetAuditLogFilterRuleRequest",
          "output": "AuditLogFilterRule"
        },
        {
          "name": "ListAuditLogFilterRules",
          "name_key": "DedicatedDatabaseAuditLogService.ListAuditLogFilterRules",
          "input": "ListAuditLogFilterRulesRequest",
          "output": "ListAuditLogFilterRulesResponse"
        },
        {
          "name": "DeleteAuditLogFilterRule",
          "name_key": "DedicatedDatabaseAuditLogService.DeleteAuditLogFilterRule",
          "input": "DeleteAuditLogFilterRuleRequest",
          "output": "google.protobuf.Empty"
        },
        {
          "name": "ShowObjectStorageAccessIamPrincipal",
          "name_key": "DedicatedDatabaseAuditLogService.ShowObjectStorageAccessIamPrincipal",
          "input": "ShowObjectStorageAccessIamPrincipalRequest",
          "output": "ShowObjectStorageAccessIamPrincipalResponse"
        },
        {
          "name": "QueryAuditLogFiles",
          "name_key": "DedicatedDatabaseAuditLogService.QueryAuditLogFiles",
          "input": "QueryAuditLogFilesRequest",
          "output": "QueryAuditLogFilesResponse"
        },
        {
          "name": "GenerateAuditLogFileDownloadAddress",
          "name_key": "DedicatedDatabaseAuditLogService.GenerateAuditLogFileDownloadAddress",
          "input": "GenerateAuditLogFileDownloadAddressRequest",
          "output": "GenerateAuditLogFileDownloadAddressResponse"
        }
      ]
    },
    {
      "name": "CustomerManagedEncryptionKeyService",
      "package": "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/dedicated/v1beta1",
      "type": "dedicated_openapi",
      "methods": [
        {
          "name": "CreateCustomerManagedEncryptionKey",
          "name_key": "DedicatedCustomerManagedEncryptionKeyService.CreateCustomerManagedEncryptionKey",
          "input": "CreateCustomerManagedEncryptionKeyRequest",
          "output": "CustomerManagedEncryptionKey"
        },
        {
          "name": "GetCustomerManagedEncryptionKey",
          "name_key": "DedicatedCustomerManagedEncryptionKeyService.GetCustomerManagedEncryptionKey",
          "input": "GetCustomerManagedEncryptionKeyRequest",
          "output": "CustomerManagedEncryptionKey"
        },
        {
          "name": "ListCustomerManagedEncryptionKeys",
          "name_key": "DedicatedCustomerManagedEncryptionKeyService.ListCustomerManagedEncryptionKeys",
          "input": "ListCustomerManagedEncryptionKeysRequest",
          "output": "ListCustomerManagedEncryptionKeysResponse"
        },
        {
          "name": "DeleteCustomerManagedEncryptionKey",
          "name_key": "DedicatedCustomerManagedEncryptionKeyService.DeleteCustomerManagedEncryptionKey",
          "input": "DeleteCustomerManagedEncryptionKeyRequest",
          "output": "google.protobuf.Empty"
        },
        {
          "name": "ShowCmekAccessIamPrincipal",
          "name_key": "DedicatedCustomerManagedEncryptionKeyService.ShowCmekAccessIamPrincipal",
          "input": "ShowCmekAccessIamPrincipalRequest",
          "output": "ShowCmekAccessIamPrincipalResponse"
        }
      ]
    },
    {
      "name": "TidbService",
      "package": "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/nextgen/v1beta2",
      "type": "nextgen_openapi",
      "methods": [
        {
          "name": "CreateTidb",
          "name_key": "NextgenTidbService.CreateTidb",
          "input": "CreateTidbRequest",
          "output": "Tidb"
        },
        {
          "name": "ListTidbs",
          "name_key": "NextgenTidbService.ListTidbs",
          "input": "ListTidbsRequest",
          "output": "ListTidbsResponse"
        },
        {
          "name": "GetTidb",
          "name_key": "NextgenTidbService.GetTidb",
          "input": "GetTidbRequest",
          "output": "Tidb"
        },
        {
          "name": "DeleteTidb",
          "name_key": "NextgenTidbService.DeleteTidb",
          "input": "DeleteTidbRequest",
          "output": "Tidb"
        },
        {
          "name": "UpdateTidb",
          "name_key": "NextgenTidbService.UpdateTidb",
          "input": "UpdateTidbRequest",
          "output": "Tidb"
        },
        {
          "name": "ResetRootPassword",
          "name_key": "NextgenTidbService.ResetRootPassword",
          "input": "ResetRootPasswordRequest",
          "output": "ResetRootPasswordResponse"
        },
        {
          "name": "GetCloudProviderInfo",
          "name_key": "NextgenTidbService.GetCloudProviderInfo",
          "input": "GetCloudProviderInfoRequest",
          "output": "CloudProviderInfo"
        },
        {
          "name": "EstimatePrice",
          "name_key": "NextgenTidbService.EstimatePrice",
          "input": "EstimatePriceRequest",
          "output": "EstimatePriceResponse"
        },
        {
          "name": "ListBackupPolicies",
          "name_key": "NextgenTidbService.ListBackupPolicies",
          "input": "ListBackupPoliciesRequest",
          "output": "ListBackupPoliciesResponse"
        },
        {
          "name": "GetBackupSetting",
          "name_key": "NextgenTidbService.GetBackupSetting",
          "input": "GetBackupSettingRequest",
          "output": "BackupSetting"
        },
        {
          "name": "UpdateBackupSetting",
          "name_key": "NextgenTidbService.UpdateBackupSetting",
          "input": "UpdateBackupSettingRequest",
          "output": "BackupSetting"
        },
        {
          "name": "ListTidbBackups",
          "name_key": "NextgenTidbService.ListTidbBackups",
          "input": "ListTidbBackupsRequest",
          "output": "ListTidbBackupsResponse"
        },
        {
          "name": "DeleteTidbBackup",
          "name_key": "NextgenTidbService.DeleteTidbBackup",
          "input": "DeleteTidbBackupRequest",
          "output": "google.protobuf.Empty"
        },
        {
          "name": "CreateTidbBackup",
          "name_key": "NextgenTidbService.CreateTidbBackup",
          "input": "CreateTidbBackupRequest",
          "output": "CreateTidbBackupResponse"
        },
        {
          "name": "RestoreTidb",
          "name_key": "NextgenTidbService.RestoreTidb",
          "input": "RestoreTidbRequest",
          "output": "RestoreTidbResponse"
        },
        {
          "name": "RestoreStatus",
          "name_key": "NextgenTidbService.RestoreStatus",
          "input": "RestoreStatusRequest",
          "output": "RestoreStatusResponse"
        },
        {
          "name": "GetRestoreStatus",
          "name_key": "NextgenTidbService.GetRestoreStatus",
          "input": "GetRestoreStatusRequest",
          "output": "GetRestoreStatusResponse"
        },
        {
          "name": "ValidateClassicBackup",
          "name_key": "NextgenTidbService.ValidateClassicBackup",
          "input": "ValidateClassicBackupRequest",
          "output": "ValidateClassicBackupResponse"
        },
        {
          "name": "GetCaCertificateDownloadUrl",
          "name_key": "NextgenTidbService.GetCaCertificateDownloadUrl",
          "input": "GetCaCertificateDownloadUrlRequest",
          "output": "CaCertificateDownloadUrl"
        },
        {
          "name": "UpdateTidbDualLayerEncryption",
          "name_key": "NextgenTidbService.UpdateTidbDualLayerEncryption",
          "input": "UpdateTidbDualLayerEncryptionRequest",
          "output": "TidbDualLayerEncryption"
        },
        {
          "name": "GetTidbDualLayerEncryption",
          "name_key": "NextgenTidbService.GetTidbDualLayerEncryption",
          "input": "GetTidbDualLayerEncryptionRequest",
          "output": "TidbDualLayerEncryption"
        }
      ]
    },
    {
      "name": "BackupService",
      "package": "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/nextgen/v1beta2",
      "type": "nextgen_openapi",
      "methods": [
        {
          "name": "ListBackups",
          "name_key": "NextgenBackupService.ListBackups",
          "input": "ListBackupsRequest",
          "output": "ListBackupsResponse"
        },
        {
          "name": "DeleteBackup",
          "name_key": "NextgenBackupService.DeleteBackup",
          "input": "DeleteBackupRequest",
          "output": "google.protobuf.Empty"
        },
        {
          "name": "ListDeletedTidbs",
          "name_key": "NextgenBackupService.ListDeletedTidbs",
          "input": "ListDeletedTidbsRequest",
          "output": "ListDeletedTidbsResponse"
        }
      ]
    },
    {
      "name": "ExportService",
      "package": "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/nextgen/v1beta2",
      "type": "nextgen_openapi",
      "methods": [
        {
          "name": "ListExports",
          "name_key": "NextgenExportService.ListExports",
          "input": "ListExportsRequest",
          "output": "ListExportsResponse"
        },
        {
          "name": "GetExport",
          "name_key": "NextgenExportService.GetExport",
          "input": "GetExportRequest",
          "output": "Export"
        },
        {
          "name": "CreateExport",
          "name_key": "NextgenExportService.CreateExport",
          "input": "CreateExportRequest",
          "output": "Export"
        },
        {
          "name": "DeleteExport",
          "name_key": "NextgenExportService.DeleteExport",
          "input": "DeleteExportRequest",
          "output": "Export"
        },
        {
          "name": "CancelExport",
          "name_key": "NextgenExportService.CancelExport",
          "input": "CancelExportRequest",
          "output": "Export"
        }
      ]
    },
    {
      "name": "RegionService",
      "package": "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/nextgen/v1beta2",
      "type": "nextgen_openapi",
      "methods": [
        {
          "name": "ListRegions",
          "name_key": "NextgenRegionService.ListRegions",
          "input": "ListRegionsRequest",
          "output": "ListRegionsResponse"
        },
        {
          "name": "ListCloudProviders",
          "name_key": "NextgenRegionService.ListCloudProviders",
          "input": "ListCloudProvidersRequest",
          "output": "ListCloudProvidersResponse"
        },
        {
          "name": "ListOpsAuditLogSettings",
          "name_key": "NextgenRegionService.ListOpsAuditLogSettings",
          "input": "ListOpsAuditLogSettingsRequest",
          "output": "ListOpsAuditLogSettingsResponse"
        },
        {
          "name": "ListRegionCapacities",
          "name_key": "NextgenRegionService.ListRegionCapacities",
          "input": "ListRegionCapacitiesRequest",
          "output": "ListRegionCapacitiesResponse"
        }
      ]
    },
    {
      "name": "CustomerManagedEncryptionKeyService",
      "package": "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/nextgen/v1beta2",
      "type": "nextgen_openapi",
      "methods": [
        {
          "name": "GetCmekAccessIamPrincipal",
          "name_key": "NextgenCustomerManagedEncryptionKeyService.GetCmekAccessIamPrincipal",
          "input": "GetCmekAccessIamPrincipalRequest",
          "output": "CmekAccessIamPrincipal"
        },
        {
          "name": "VerifyCmekAccessIamPrincipal",
          "name_key": "NextgenCustomerManagedEncryptionKeyService.VerifyCmekAccessIamPrincipal",
          "input": "VerifyCmekAccessIamPrincipalRequest",
          "output": "VerifyCmekAccessIamPrincipalResponse"
        },
        {
          "name": "GetCustomerManagedEncryptionKey",
          "name_key": "NextgenCustomerManagedEncryptionKeyService.GetCustomerManagedEncryptionKey",
          "input": "GetCustomerManagedEncryptionKeyRequest",
          "output": "CustomerManagedEncryptionKey"
        },
        {
          "name": "GetCustomerManagedEncryptionKeyByClusterId",
          "name_key": "NextgenCustomerManagedEncryptionKeyService.GetCustomerManagedEncryptionKeyByClusterId",
          "input": "GetCustomerManagedEncryptionKeyByClusterIdRequest",
          "output": "CustomerManagedEncryptionKey"
        },
        {
          "name": "ListCustomerManagedEncryptionKeys",
          "name_key": "NextgenCustomerManagedEncryptionKeyService.ListCustomerManagedEncryptionKeys",
          "input": "ListCustomerManagedEncryptionKeysRequest",
          "output": "ListCustomerManagedEncryptionKeysResponse"
        }
      ]
    },
    {
      "name": "DatabaseAuditLogService",
      "package": "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/nextgen/v1beta2",
      "type": "nextgen_openapi",
      "methods": [
        {
          "name": "GetAuditLogSetting",
          "name_key": "NextgenDatabaseAuditLogService.GetAuditLogSetting",
          "input": "GetAuditLogSettingRequest",
          "output": "AuditLogSetting"
        },
        {
          "name": "UpdateAuditLogSetting",
          "name_key": "NextgenDatabaseAuditLogService.UpdateAuditLogSetting",
          "input": "UpdateAuditLogSettingRequest",
          "output": "AuditLogSetting"
        },
        {
          "name": "ListAuditLogFilterRules",
          "name_key": "NextgenDatabaseAuditLogService.ListAuditLogFilterRules",
          "input": "ListAuditLogFilterRulesRequest",
          "output": "ListAuditLogFilterRulesResponse"
        },
        {
          "name": "CreateAuditLogFilterRule",
          "name_key": "NextgenDatabaseAuditLogService.CreateAuditLogFilterRule",
          "input": "CreateAuditLogFilterRuleRequest",
          "output": "AuditLogFilterRule"
        },
        {
          "name": "DeleteAuditLogFilterRule",
          "name_key": "NextgenDatabaseAuditLogService.DeleteAuditLogFilterRule",
          "input": "DeleteAuditLogFilterRuleRequest",
          "output": "google.protobuf.Empty"
        },
        {
          "name": "UpdateAuditLogFilterRule",
          "name_key": "NextgenDatabaseAuditLogService.UpdateAuditLogFilterRule",
          "input": "UpdateAuditLogFilterRuleRequest",
          "output": "AuditLogFilterRule"
        }
      ]
    },
    {
      "name": "LogRedactionPolicyService",
      "package": "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/nextgen/v1beta2",
      "type": "nextgen_openapi",
      "methods": [
        {
          "name": "GetLogRedactionPolicy",
          "name_key": "NextgenLogRedactionPolicyService.GetLogRedactionPolicy",
          "input": "GetLogRedactionPolicyRequest",
          "output": "LogRedactionPolicy"
        },
        {
          "name": "UpdateLogRedactionPolicy",
          "name_key": "NextgenLogRedactionPolicyService.UpdateLogRedactionPolicy",
          "input": "UpdateLogRedactionPolicyRequest",
          "output": "LogRedactionPolicy"
        }
      ]
    },
    {
      "name": "PrivateLinkConnectionService",
      "package": "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/nextgen/v1beta2",
      "type": "nextgen_openapi",
      "methods": [
        {
          "name": "ListPrivateLinkServices",
          "name_key": "NextgenPrivateLinkConnectionService.ListPrivateLinkServices",
          "input": "ListPrivateLinkServicesRequest",
          "output": "ListPrivateLinkServicesResponse"
        },
        {
          "name": "CreatePrivateLinkConnection",
          "name_key": "NextgenPrivateLinkConnectionService.CreatePrivateLinkConnection",
          "input": "CreatePrivateLinkConnectionRequest",
          "output": "PrivateLinkConnection"
        },
        {
          "name": "DeletePrivateLinkConnection",
          "name_key": "NextgenPrivateLinkConnectionService.DeletePrivateLinkConnection",
          "input": "DeletePrivateLinkConnectionRequest",
          "output": "PrivateLinkConnection"
        },
        {
          "name": "GetPrivateLinkConnection",
          "name_key": "NextgenPrivateLinkConnectionService.GetPrivateLinkConnection",
          "input": "GetPrivateLinkConnectionRequest",
          "output": "PrivateLinkConnection"
        },
        {
          "name": "ListPrivateLinkConnections",
          "name_key": "NextgenPrivateLinkConnectionService.ListPrivateLinkConnections",
          "input": "ListPrivateLinkConnectionsRequest",
          "output": "ListPrivateLinkConnectionsResponse"
        }
      ]
    },
    {
      "name": "PublicConnectionSettingService",
      "package": "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/nextgen/v1beta2",
      "type": "nextgen_openapi",
      "methods": [
        {
          "name": "GetPublicConnectionSetting",
          "name_key": "NextgenPublicConnectionSettingService.GetPublicConnectionSetting",
          "input": "GetPublicConnectionSettingRequest",
          "output": "PublicConnectionSetting"
        },
        {
          "name": "UpdatePublicConnectionSetting",
          "name_key": "NextgenPublicConnectionSettingService.UpdatePublicConnectionSetting",
          "input": "UpdatePublicConnectionSettingRequest",
          "output": "PublicConnectionSetting"
        }
      ]
    },
    {
      "name": "QuotaService",
      "package": "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/nextgen/v1beta2",
      "type": "nextgen_openapi",
      "methods": [
        {
          "name": "ListQuotas",
          "name_key": "NextgenQuotaService.ListQuotas",
          "input": "ListQuotasRequest",
          "output": "ListQuotasResponse"
        }
      ]
    },
    {
      "name": "ClusterService",
      "package": "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/serverless/v1beta1",
      "type": "serverless_openapi",
      "methods": [
        {
          "name": "CreateCluster",
          "name_key": "ServerlessClusterService.CreateCluster",
          "input": "CreateClusterRequest",
          "output": "Cluster"
        },
        {
          "name": "ListClusters",
          "name_key": "ServerlessClusterService.ListClusters",
          "input": "ListClustersRequest",
          "output": "ListClustersResponse"
        },
        {
          "name": "GetCluster",
          "name_key": "ServerlessClusterService.GetCluster",
          "input": "GetClusterRequest",
          "output": "Cluster"
        },
        {
          "name": "DeleteCluster",
          "name_key": "ServerlessClusterService.DeleteCluster",
          "input": "DeleteClusterRequest",
          "output": "Cluster"
        },
        {
          "name": "PartialUpdateCluster",
          "name_key": "ServerlessClusterService.PartialUpdateCluster",
          "input": "PartialUpdateClusterRequest",
          "output": "Cluster"
        },
        {
          "name": "ChangeRootPassword",
          "name_key": "ServerlessClusterService.ChangeRootPassword",
          "input": "ChangeRootPasswordRequest",
          "output": "ChangeRootPasswordResponse"
        },
        {
          "name": "ListRegions",
          "name_key": "ServerlessClusterService.ListRegions",
          "input": "ListRegionsRequest",
          "output": "ListRegionsResponse"
        },
        {
          "name": "ListCloudProviders",
          "name_key": "ServerlessClusterService.ListCloudProviders",
          "input": "ListCloudProvidersRequest",
          "output": "ListCloudProvidersResponse"
        },
        {
          "name": "BatchCreateClusters",
          "name_key": "ServerlessClusterService.BatchCreateClusters",
          "input": "BatchCreateClustersRequest",
          "output": "BatchCreateClustersResponse"
        },
        {
          "name": "BatchGetClusters",
          "name_key": "ServerlessClusterService.BatchGetClusters",
          "input": "BatchGetClustersRequest",
          "output": "BatchGetClustersResponse"
        },
        {
          "name": "ClaimClusterFromZero",
          "name_key": "ServerlessClusterService.ClaimClusterFromZero",
          "input": "ClaimClusterFromZeroRequest",
          "output": "Cluster"
        },
        {
          "name": "TakeoverClusterFromPool",
          "name_key": "ServerlessClusterService.TakeoverClusterFromPool",
          "input": "TakeoverClusterFromPoolRequest",
          "output": "Cluster"
        }
      ]
    },
    {
      "name": "ZeroInstanceService",
      "package": "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/zero/v1beta1",
      "type": "zero_openapi",
      "methods": [
        {
          "name": "AllocateZeroInstance",
          "name_key": "ZeroInstanceService.AllocateZeroInstance",
          "input": "AllocateZeroInstanceRequest",
          "output": "AllocateZeroInstanceResponse"
        },
        {
          "name": "GetZeroInstance",
          "name_key": "ZeroInstanceService.GetZeroInstance",
          "input": "GetZeroInstanceRequest",
          "output": "GetZeroInstanceResponse"
        }
      ]
    }
  ],
  "extensions": {
    "notes": [
      "tidb-mgmt-portal is a long-running Cobra-based HTTP API gateway, not an admin CLI.",
      "OpenAPI routes are served through grpc-gateway handlers backed by TiDBMgmtServiceConfig.Address.",
      "The same binary also registers inner APIs and BFF routes, but this file currently expands the complete OpenAPI surface first because root-call-graph entry coverage is the immediate goal."
    ]
  }
}
