{
  "repo": "tidbcloud/serverless-service",
  "binary": "server",
  "binary_path": "cmd/server/main.go",
  "surface_kind": "mixed_service",
  "type": "mixed_service",
  "extensions": {
    "notes": [
      "cmd/server is one binary with five distinct runtime modes: http, grpc, worker, brworker, and exec jobs.",
      "Console, v1beta, and v1beta1 APIs are exposed through a local TLS gRPC server plus grpc-gateway; methods are listed once with transport aliases instead of being double-counted as separate business logic.",
      "GET /metrics runs on a dedicated listener started by grpc, http, worker, and brworker modes; it is not mounted on the main Gin router.",
      "Worker mode adds eventbus subscribers and periodic workers that materially change dependencies even though they are not part of the proto surface."
    ]
  },
  "services": [
    {
      "name": "ServerlessServiceLifecycle",
      "package": "cmd/server/app",
      "methods": [
        {
          "name": "Startup",
          "name_key": "ServerlessServiceLifecycle.Startup",
          "input": "config file + env + subcommand",
          "output": "initialized logger, tracing, auditlog, DI, infra manager, and config watcher",
          "type": "local"
        },
        {
          "name": "SetupLogger",
          "name_key": "ServerlessServiceLifecycle.SetupLogger",
          "input": "server.log_level",
          "output": "global redacted zap logger",
          "type": "local"
        },
        {
          "name": "InitTracing",
          "name_key": "ServerlessServiceLifecycle.InitTracing",
          "input": "work mode derived service name",
          "output": "Jaeger tracing pipeline",
          "type": "local"
        },
        {
          "name": "InitAuditLog",
          "name_key": "ServerlessServiceLifecycle.InitAuditLog",
          "input": "server.enable_audit_log",
          "output": "auditlog SDK or disabled auditlog state",
          "type": "local"
        },
        {
          "name": "InitDependencies",
          "name_key": "ServerlessServiceLifecycle.InitDependencies",
          "input": "work mode",
          "output": "dig container with service implementations, workers, and facades",
          "type": "local"
        },
        {
          "name": "StartInfraManager",
          "name_key": "ServerlessServiceLifecycle.StartInfraManager",
          "input": "controller-runtime manager",
          "output": "running infra cache plus field indexers",
          "type": "local"
        },
        {
          "name": "StartConfigWatcher",
          "name_key": "ServerlessServiceLifecycle.StartConfigWatcher",
          "input": "oneconfig remote config path",
          "output": "background config watch loop plus feature-gate refresh",
          "type": "local"
        }
      ]
    },
    {
      "name": "ServerlessHTTPMode",
      "package": "cmd/server/app",
      "methods": [
        {
          "name": "StartPublisher",
          "name_key": "ServerlessHTTPMode.StartPublisher",
          "input": "eventbus publisher",
          "output": "running publish-only eventbus transport",
          "type": "local"
        },
        {
          "name": "StartLRPCServer",
          "name_key": "ServerlessHTTPMode.StartLRPCServer",
          "input": "grpc port + auth0/JWKS + interceptors",
          "output": "local TLS gRPC backend for gateway traffic",
          "type": "local"
        },
        {
          "name": "RegisterHTTPGateway",
          "name_key": "ServerlessHTTPMode.RegisterHTTPGateway",
          "input": "gin.Engine + grpc-gateway handlers",
          "output": "console, v1beta, v1beta1, ops gateway routes plus /healthz",
          "type": "local"
        },
        {
          "name": "StartHTTPServer",
          "name_key": "ServerlessHTTPMode.StartHTTPServer",
          "input": "server.http_listen_addr",
          "output": "running Gin HTTP gateway server",
          "type": "local"
        },
        {
          "name": "StartMetricsServer",
          "name_key": "ServerlessHTTPMode.StartMetricsServer",
          "input": "server.metrics_port",
          "output": "separate /metrics listener",
          "type": "local"
        }
      ]
    },
    {
      "name": "ServerlessGRPCMode",
      "package": "cmd/server/app",
      "methods": [
        {
          "name": "StartPublisher",
          "name_key": "ServerlessGRPCMode.StartPublisher",
          "input": "eventbus publisher",
          "output": "running publish-only eventbus transport",
          "type": "local"
        },
        {
          "name": "RegisterGrpcServices",
          "name_key": "ServerlessGRPCMode.RegisterGrpcServices",
          "input": "grpc.Server",
          "output": "registered internal rpc and billing services",
          "type": "local"
        },
        {
          "name": "StartGRPCServer",
          "name_key": "ServerlessGRPCMode.StartGRPCServer",
          "input": "server.grpc_port",
          "output": "running gRPC server",
          "type": "local"
        },
        {
          "name": "StartMetricsServer",
          "name_key": "ServerlessGRPCMode.StartMetricsServer",
          "input": "server.metrics_port",
          "output": "separate /metrics listener",
          "type": "local"
        }
      ]
    },
    {
      "name": "ServerlessWorkerMode",
      "package": "cmd/server/app",
      "methods": [
        {
          "name": "RunDBMigrate",
          "name_key": "ServerlessWorkerMode.RunDBMigrate",
          "input": "gorm DB handle",
          "output": "schema migration before workers start",
          "type": "local"
        },
        {
          "name": "RunReconcilers",
          "name_key": "ServerlessWorkerMode.RunReconcilers",
          "input": "election managers + branch/canary reconcilers",
          "output": "controller-runtime reconcile loops",
          "type": "local"
        },
        {
          "name": "StartEventbusSubscribers",
          "name_key": "ServerlessWorkerMode.StartEventbusSubscribers",
          "input": "eventbus subscribers",
          "output": "running spend-limit, cluster, branch, and backup subscribers",
          "type": "local"
        },
        {
          "name": "StartGlobalWorkers",
          "name_key": "ServerlessWorkerMode.StartGlobalWorkers",
          "input": "period workers",
          "output": "background worker loops for cluster, import/export, billing, and DM",
          "type": "local"
        },
        {
          "name": "StartMetricsServer",
          "name_key": "ServerlessWorkerMode.StartMetricsServer",
          "input": "server.metrics_port",
          "output": "separate /metrics listener",
          "type": "local"
        }
      ]
    },
    {
      "name": "ServerlessBRWorkerMode",
      "package": "cmd/server/app",
      "methods": [
        {
          "name": "StartPublisher",
          "name_key": "ServerlessBRWorkerMode.StartPublisher",
          "input": "eventbus publisher",
          "output": "running publish-only eventbus transport",
          "type": "local"
        },
        {
          "name": "StartBRWorkers",
          "name_key": "ServerlessBRWorkerMode.StartBRWorkers",
          "input": "period workers + cron scheduler",
          "output": "background backup, restore, cdc, and private-link loops",
          "type": "local"
        },
        {
          "name": "StartMetricsServer",
          "name_key": "ServerlessBRWorkerMode.StartMetricsServer",
          "input": "server.metrics_port",
          "output": "separate /metrics listener",
          "type": "local"
        }
      ]
    },
    {
      "name": "ServerlessJobMode",
      "package": "cmd/server/app",
      "methods": [
        {
          "name": "SyncClusterRUMode",
          "name_key": "ServerlessJobMode.SyncClusterRUMode",
          "input": "all clusters from metadata DB",
          "output": "cluster ru_mode synchronized from tidb-management-service annotations",
          "type": "local"
        },
        {
          "name": "SendExpensiveSQLEmail",
          "name_key": "ServerlessJobMode.SendExpensiveSQLEmail",
          "input": "org filters + preview flag",
          "output": "expensive SQL emails sent through billing service controller",
          "type": "local"
        }
      ]
    },
    {
      "name": "ServerlessIngress",
      "type": "http",
      "methods": [
        {
          "name": "GET /healthz",
          "name_key": "HTTP GET /healthz",
          "input": "none",
          "output": "HTTP 200",
          "path": "/healthz",
          "type": "http"
        },
        {
          "name": "GET /metrics",
          "name_key": "HTTP GET /metrics",
          "input": "none",
          "output": "Prometheus metrics",
          "path": "/metrics",
          "type": "http"
        }
      ]
    },
    {
      "name": "ServerlessWorkerEvents",
      "package": "internal/infra/eventbus/subscriber",
      "methods": [
        {
          "name": "SpendLimitEvent",
          "name_key": "ServerlessWorkerEvents.SpendLimitEvent",
          "input": "cluster spend limit event",
          "output": "tidb-pool policy update",
          "type": "event"
        },
        {
          "name": "ClusterEvent",
          "name_key": "ServerlessWorkerEvents.ClusterEvent",
          "input": "cluster lifecycle event",
          "output": "cluster event side effects",
          "type": "event"
        },
        {
          "name": "BranchClusterEvent",
          "name_key": "ServerlessWorkerEvents.BranchClusterEvent",
          "input": "branch sync event",
          "output": "branch sync side effects",
          "type": "event"
        },
        {
          "name": "BackupClusterEvent",
          "name_key": "ServerlessWorkerEvents.BackupClusterEvent",
          "input": "backup cluster event",
          "output": "backup event side effects",
          "type": "event"
        }
      ]
    },
    {
      "name": "ServerlessWorkerTasks",
      "package": "internal/controller",
      "methods": [
        {
          "name": "ExportMeteringWorker",
          "name_key": "ServerlessWorkerTasks.ExportMeteringWorker",
          "input": "billing metering context",
          "output": "export billing metering run",
          "type": "local"
        },
        {
          "name": "ClusterTidbPoolSyncer",
          "name_key": "ServerlessWorkerTasks.ClusterTidbPoolSyncer",
          "input": "cluster/tidb-pool state",
          "output": "tidb-pool sync run",
          "type": "local"
        },
        {
          "name": "BranchMetricCollector",
          "name_key": "ServerlessWorkerTasks.BranchMetricCollector",
          "input": "branch metadata",
          "output": "branch metrics refresh",
          "type": "local"
        },
        {
          "name": "BranchStorageLimiter",
          "name_key": "ServerlessWorkerTasks.BranchStorageLimiter",
          "input": "branch size metadata",
          "output": "branch storage enforcement run",
          "type": "local"
        },
        {
          "name": "ImportSyncer",
          "name_key": "ServerlessWorkerTasks.ImportSyncer",
          "input": "import task state",
          "output": "import sync run",
          "type": "local"
        },
        {
          "name": "ExportSyncer",
          "name_key": "ServerlessWorkerTasks.ExportSyncer",
          "input": "export task state",
          "output": "export sync run",
          "type": "local"
        },
        {
          "name": "TriggerIndexAdvisorWorker",
          "name_key": "ServerlessWorkerTasks.TriggerIndexAdvisorWorker",
          "input": "index advisor candidates",
          "output": "async index advisor execution",
          "type": "local"
        },
        {
          "name": "DowntimeWorker",
          "name_key": "ServerlessWorkerTasks.DowntimeWorker",
          "input": "downtime schedule state",
          "output": "downtime execution run",
          "type": "local"
        },
        {
          "name": "ServicePlanEventJob",
          "name_key": "ServerlessWorkerTasks.ServicePlanEventJob",
          "input": "service plan event state",
          "output": "service plan synchronization",
          "type": "local"
        },
        {
          "name": "DMTaskWorker",
          "name_key": "ServerlessWorkerTasks.DMTaskWorker",
          "input": "migration tasks",
          "output": "migration task state-machine run",
          "type": "local"
        },
        {
          "name": "DMPrecheckWorker",
          "name_key": "ServerlessWorkerTasks.DMPrecheckWorker",
          "input": "migration prechecks",
          "output": "migration precheck state-machine run",
          "type": "local"
        },
        {
          "name": "DMEndpointWorker",
          "name_key": "ServerlessWorkerTasks.DMEndpointWorker",
          "input": "migration endpoints",
          "output": "migration endpoint state-machine run",
          "type": "local"
        },
        {
          "name": "BackupCronJob",
          "name_key": "ServerlessWorkerTasks.BackupCronJob",
          "input": "scheduled backup policies",
          "output": "scheduled backup trigger",
          "type": "local"
        },
        {
          "name": "BackupCleanWorker",
          "name_key": "ServerlessWorkerTasks.BackupCleanWorker",
          "input": "backup retention state",
          "output": "backup cleanup run",
          "type": "local"
        },
        {
          "name": "RestoreSyncWorker",
          "name_key": "ServerlessWorkerTasks.RestoreSyncWorker",
          "input": "restore jobs",
          "output": "restore sync run",
          "type": "local"
        },
        {
          "name": "RestoreWorker",
          "name_key": "ServerlessWorkerTasks.RestoreWorker",
          "input": "restore jobs",
          "output": "restore execution run",
          "type": "local"
        },
        {
          "name": "BackupScheduleCheckWorker",
          "name_key": "ServerlessWorkerTasks.BackupScheduleCheckWorker",
          "input": "backup schedules",
          "output": "backup schedule validation",
          "type": "local"
        },
        {
          "name": "CDCWorker.SyncCreating",
          "name_key": "Runtime CDCWorker.SyncCreating",
          "input": "creating changefeeds",
          "output": "cdc creating-state sync",
          "type": "local"
        },
        {
          "name": "CDCWorker.SyncChangefeedState",
          "name_key": "Runtime CDCWorker.SyncChangefeedState",
          "input": "changefeed state",
          "output": "cdc status sync",
          "type": "local"
        },
        {
          "name": "PrivateLinkConnectionWorker.SyncPrivateLinkConnections",
          "name_key": "Runtime PrivateLinkConnectionWorker.SyncPrivateLinkConnections",
          "input": "private link connections",
          "output": "private link sync run",
          "type": "local"
        },
        {
          "name": "PrivateLinkConnectionWorker.DeletePrivateLinkConnections",
          "name_key": "Runtime PrivateLinkConnectionWorker.DeletePrivateLinkConnections",
          "input": "private link deletion state",
          "output": "private link deletion run",
          "type": "local"
        },
        {
          "name": "PrivateLinkConnectionWorker.SyncPLCDomainRecords",
          "name_key": "Runtime PrivateLinkConnectionWorker.SyncPLCDomainRecords",
          "input": "private link dns records",
          "output": "plc domain record sync",
          "type": "local"
        }
      ]
    },
    {
      "name": "ConsoleClusterService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/console",
      "type": "grpc",
      "transports": [
        "lrpc",
        "http_gateway"
      ],
      "methods": [
        {
          "name": "ListDatabases",
          "name_key": "ConsoleClusterService.ListDatabases",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CreateDatabase",
          "name_key": "ConsoleClusterService.CreateDatabase",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "AdviseIndexes",
          "name_key": "ConsoleClusterService.AdviseIndexes",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CloseIndexAdvice",
          "name_key": "ConsoleClusterService.CloseIndexAdvice",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ApplyIndexAdvice",
          "name_key": "ConsoleClusterService.ApplyIndexAdvice",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ListIndexAdvices",
          "name_key": "ConsoleClusterService.ListIndexAdvices",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetIndexAdviceSummary",
          "name_key": "ConsoleClusterService.GetIndexAdviceSummary",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetIndexAdvice",
          "name_key": "ConsoleClusterService.GetIndexAdvice",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CheckFeature",
          "name_key": "ConsoleClusterService.CheckFeature",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "ConsoleBranchService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/console",
      "type": "grpc",
      "transports": [
        "lrpc",
        "http_gateway"
      ],
      "methods": [
        {
          "name": "ListBranches",
          "name_key": "ConsoleBranchService.ListBranches",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CreateBranch",
          "name_key": "ConsoleBranchService.CreateBranch",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetBranch",
          "name_key": "ConsoleBranchService.GetBranch",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DeleteBranch",
          "name_key": "ConsoleBranchService.DeleteBranch",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ChangeBranchPassword",
          "name_key": "ConsoleBranchService.ChangeBranchPassword",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ListDatabases",
          "name_key": "ConsoleBranchService.ListDatabases",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ResetBranch",
          "name_key": "ConsoleBranchService.ResetBranch",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "UpdateBranch",
          "name_key": "ConsoleBranchService.UpdateBranch",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "ConsoleBackupRestoreService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/console",
      "type": "grpc",
      "transports": [
        "lrpc",
        "http_gateway"
      ],
      "methods": [
        {
          "name": "ListBackups",
          "name_key": "ConsoleBackupRestoreService.ListBackups",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetBackup",
          "name_key": "ConsoleBackupRestoreService.GetBackup",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ListRecycledInstances",
          "name_key": "ConsoleBackupRestoreService.ListRecycledInstances",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetRecycledInstance",
          "name_key": "ConsoleBackupRestoreService.GetRecycledInstance",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ListRecycledInstanceBackups",
          "name_key": "ConsoleBackupRestoreService.ListRecycledInstanceBackups",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DeleteRecycledInstanceBackup",
          "name_key": "ConsoleBackupRestoreService.DeleteRecycledInstanceBackup",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "Restore",
          "name_key": "ConsoleBackupRestoreService.Restore",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetBackupRetention",
          "name_key": "ConsoleBackupRestoreService.GetBackupRetention",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetRestoreProgress",
          "name_key": "ConsoleBackupRestoreService.GetRestoreProgress",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "ConsoleChangefeedService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/console",
      "type": "grpc",
      "transports": [
        "lrpc",
        "http_gateway"
      ],
      "methods": [
        {
          "name": "ListChangefeeds",
          "name_key": "ConsoleChangefeedService.ListChangefeeds",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetChangefeed",
          "name_key": "ConsoleChangefeedService.GetChangefeed",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "StartChangefeed",
          "name_key": "ConsoleChangefeedService.StartChangefeed",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "StopChangefeed",
          "name_key": "ConsoleChangefeedService.StopChangefeed",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CreateChangefeed",
          "name_key": "ConsoleChangefeedService.CreateChangefeed",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "EditChangefeed",
          "name_key": "ConsoleChangefeedService.EditChangefeed",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DeleteChangefeed",
          "name_key": "ConsoleChangefeedService.DeleteChangefeed",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "TestChangefeed",
          "name_key": "ConsoleChangefeedService.TestChangefeed",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DescribeSchemaTable",
          "name_key": "ConsoleChangefeedService.DescribeSchemaTable",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "ConsoleImportService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/console",
      "type": "grpc",
      "transports": [
        "lrpc",
        "http_gateway"
      ],
      "methods": [
        {
          "name": "Upload",
          "name_key": "ConsoleImportService.Upload",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ListImports",
          "name_key": "ConsoleImportService.ListImports",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CreateImport",
          "name_key": "ConsoleImportService.CreateImport",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetImport",
          "name_key": "ConsoleImportService.GetImport",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CancelImport",
          "name_key": "ConsoleImportService.CancelImport",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "PreviewLocal",
          "name_key": "ConsoleImportService.PreviewLocal",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetTableColumns",
          "name_key": "ConsoleImportService.GetTableColumns",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetDataIngestionProfile",
          "name_key": "ConsoleImportService.GetDataIngestionProfile",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ListSupportedDataTypes",
          "name_key": "ConsoleImportService.ListSupportedDataTypes",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ValidateImport",
          "name_key": "ConsoleImportService.ValidateImport",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "Precheck",
          "name_key": "ConsoleImportService.Precheck",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ListTargetTables",
          "name_key": "ConsoleImportService.ListTargetTables",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "ConsoleExportService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/console",
      "type": "grpc",
      "transports": [
        "lrpc",
        "http_gateway"
      ],
      "methods": [
        {
          "name": "ListExports",
          "name_key": "ConsoleExportService.ListExports",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetExport",
          "name_key": "ConsoleExportService.GetExport",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CancelExport",
          "name_key": "ConsoleExportService.CancelExport",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CreateExport",
          "name_key": "ConsoleExportService.CreateExport",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DeleteExport",
          "name_key": "ConsoleExportService.DeleteExport",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ParseTableFilter",
          "name_key": "ConsoleExportService.ParseTableFilter",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "ConsolePrivateLinkConnectionService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/console",
      "type": "grpc",
      "transports": [
        "lrpc",
        "http_gateway"
      ],
      "methods": [
        {
          "name": "GetPrivateLinkConnection",
          "name_key": "ConsolePrivateLinkConnectionService.GetPrivateLinkConnection",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ListPrivateLinkConnections",
          "name_key": "ConsolePrivateLinkConnectionService.ListPrivateLinkConnections",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CreatePrivateLinkConnection",
          "name_key": "ConsolePrivateLinkConnectionService.CreatePrivateLinkConnection",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DeletePrivateLinkConnection",
          "name_key": "ConsolePrivateLinkConnectionService.DeletePrivateLinkConnection",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetAvailabilityZones",
          "name_key": "ConsolePrivateLinkConnectionService.GetAvailabilityZones",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "AttachDomains",
          "name_key": "ConsolePrivateLinkConnectionService.AttachDomains",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DetachDomains",
          "name_key": "ConsolePrivateLinkConnectionService.DetachDomains",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "ConsoleDatabaseAuditLogService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/console",
      "type": "grpc",
      "transports": [
        "lrpc",
        "http_gateway"
      ],
      "methods": [
        {
          "name": "ListAuditLogFiles",
          "name_key": "ConsoleDatabaseAuditLogService.ListAuditLogFiles",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DownloadAuditLogFiles",
          "name_key": "ConsoleDatabaseAuditLogService.DownloadAuditLogFiles",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetAuditLogFilterRule",
          "name_key": "ConsoleDatabaseAuditLogService.GetAuditLogFilterRule",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ListAuditLogFilterRules",
          "name_key": "ConsoleDatabaseAuditLogService.ListAuditLogFilterRules",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CreateAuditLogFilterRule",
          "name_key": "ConsoleDatabaseAuditLogService.CreateAuditLogFilterRule",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DeleteAuditLogFilterRule",
          "name_key": "ConsoleDatabaseAuditLogService.DeleteAuditLogFilterRule",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "UpdateAuditLogFilterRule",
          "name_key": "ConsoleDatabaseAuditLogService.UpdateAuditLogFilterRule",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetAuditLogConfig",
          "name_key": "ConsoleDatabaseAuditLogService.GetAuditLogConfig",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "UpdateAuditLogConfig",
          "name_key": "ConsoleDatabaseAuditLogService.UpdateAuditLogConfig",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "PreCheckAuditLogConfig",
          "name_key": "ConsoleDatabaseAuditLogService.PreCheckAuditLogConfig",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetCloudStorageProfile",
          "name_key": "ConsoleDatabaseAuditLogService.GetCloudStorageProfile",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "ConsoleMigrationService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/console",
      "type": "grpc",
      "transports": [
        "lrpc",
        "http_gateway"
      ],
      "methods": [
        {
          "name": "Precheck",
          "name_key": "ConsoleMigrationService.Precheck",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CreateTask",
          "name_key": "ConsoleMigrationService.CreateTask",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetTask",
          "name_key": "ConsoleMigrationService.GetTask",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ListTasks",
          "name_key": "ConsoleMigrationService.ListTasks",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DeleteTask",
          "name_key": "ConsoleMigrationService.DeleteTask",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "PauseTask",
          "name_key": "ConsoleMigrationService.PauseTask",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ResumeTask",
          "name_key": "ConsoleMigrationService.ResumeTask",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CancelPrecheck",
          "name_key": "ConsoleMigrationService.CancelPrecheck",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetPrecheck",
          "name_key": "ConsoleMigrationService.GetPrecheck",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetSupportedSources",
          "name_key": "ConsoleMigrationService.GetSupportedSources",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetSourceTables",
          "name_key": "ConsoleMigrationService.GetSourceTables",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ValidateMigrationSourceConn",
          "name_key": "ConsoleMigrationService.ValidateMigrationSourceConn",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ValidateMigrationTargetConn",
          "name_key": "ConsoleMigrationService.ValidateMigrationTargetConn",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CreateVpcEndpoint",
          "name_key": "ConsoleMigrationService.CreateVpcEndpoint",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DescribeVpcEndpoint",
          "name_key": "ConsoleMigrationService.DescribeVpcEndpoint",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetVpcInfo",
          "name_key": "ConsoleMigrationService.GetVpcInfo",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetIpWhitelist",
          "name_key": "ConsoleMigrationService.GetIpWhitelist",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "RpcClusterService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/rpc",
      "type": "grpc",
      "transports": [
        "grpc"
      ],
      "methods": [
        {
          "name": "ListClusters",
          "name_key": "RpcClusterService.ListClusters",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetCluster",
          "name_key": "RpcClusterService.GetCluster",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ListSpendLimitEvents",
          "name_key": "RpcClusterService.ListSpendLimitEvents",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ListDatabases",
          "name_key": "RpcClusterService.ListDatabases",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CreateDatabase",
          "name_key": "RpcClusterService.CreateDatabase",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CanCreateCluster",
          "name_key": "RpcClusterService.CanCreateCluster",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "RpcBranchService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/rpc",
      "type": "grpc",
      "transports": [
        "grpc"
      ],
      "methods": [
        {
          "name": "ListBranches",
          "name_key": "RpcBranchService.ListBranches",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CreateBranch",
          "name_key": "RpcBranchService.CreateBranch",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetBranch",
          "name_key": "RpcBranchService.GetBranch",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DeleteBranch",
          "name_key": "RpcBranchService.DeleteBranch",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CreateDBUser",
          "name_key": "RpcBranchService.CreateDBUser",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DeleteDBUser",
          "name_key": "RpcBranchService.DeleteDBUser",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ResetBranch",
          "name_key": "RpcBranchService.ResetBranch",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "RpcBackupRestoreService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/rpc",
      "type": "grpc",
      "transports": [
        "grpc"
      ],
      "methods": [
        {
          "name": "ListBackupPolicies",
          "name_key": "RpcBackupRestoreService.ListBackupPolicies",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "UpdateBackupPolicy",
          "name_key": "RpcBackupRestoreService.UpdateBackupPolicy",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "RpcClusterCROperationService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/rpc",
      "type": "grpc",
      "transports": [
        "grpc"
      ],
      "methods": [
        {
          "name": "UpdateCluster",
          "name_key": "RpcClusterCROperationService.UpdateCluster",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetCluster",
          "name_key": "RpcClusterCROperationService.GetCluster",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "RpcRegionalK8sOperationService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/rpc",
      "type": "grpc",
      "transports": [
        "grpc"
      ],
      "methods": [
        {
          "name": "ListGatewayHPAInfos",
          "name_key": "RpcRegionalK8sOperationService.ListGatewayHPAInfos",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "UpdateGatewayHPAMinReplicas",
          "name_key": "RpcRegionalK8sOperationService.UpdateGatewayHPAMinReplicas",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ListTiDBAutoscalingInfos",
          "name_key": "RpcRegionalK8sOperationService.ListTiDBAutoscalingInfos",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "UpdateTiDBAutoscalingThreshold",
          "name_key": "RpcRegionalK8sOperationService.UpdateTiDBAutoscalingThreshold",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "RpcUserService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/rpc",
      "type": "grpc",
      "transports": [
        "grpc"
      ],
      "methods": [
        {
          "name": "CreateUser",
          "name_key": "RpcUserService.CreateUser",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DeleteUser",
          "name_key": "RpcUserService.DeleteUser",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "ServerlessServerlessBillingService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/serverless",
      "type": "grpc",
      "transports": [
        "grpc",
        "lrpc",
        "http_gateway"
      ],
      "methods": [
        {
          "name": "GetAllSpendLimits",
          "name_key": "ServerlessServerlessBillingService.GetAllSpendLimits",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetSpendLimit",
          "name_key": "ServerlessServerlessBillingService.GetSpendLimit",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ModifySpendLimit",
          "name_key": "ServerlessServerlessBillingService.ModifySpendLimit",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "SetSpendLimit",
          "name_key": "ServerlessServerlessBillingService.SetSpendLimit",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DeleteSpendLimit",
          "name_key": "ServerlessServerlessBillingService.DeleteSpendLimit",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "PredictSpendLimit",
          "name_key": "ServerlessServerlessBillingService.PredictSpendLimit",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "PredictClusterSpendLimit",
          "name_key": "ServerlessServerlessBillingService.PredictClusterSpendLimit",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetSpendLimitDetails",
          "name_key": "ServerlessServerlessBillingService.GetSpendLimitDetails",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetResourceLimitMode",
          "name_key": "ServerlessServerlessBillingService.GetResourceLimitMode",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetPricingDetails",
          "name_key": "ServerlessServerlessBillingService.GetPricingDetails",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "SendExpensiveSQLEmail",
          "name_key": "ServerlessServerlessBillingService.SendExpensiveSQLEmail",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "PredictCost",
          "name_key": "ServerlessServerlessBillingService.PredictCost",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "V1betaImportService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/v1beta",
      "type": "grpc",
      "transports": [
        "lrpc",
        "http_gateway"
      ],
      "methods": [
        {
          "name": "ListImports",
          "name_key": "V1betaImportService.ListImports",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CreateImport",
          "name_key": "V1betaImportService.CreateImport",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetImport",
          "name_key": "V1betaImportService.GetImport",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CancelImport",
          "name_key": "V1betaImportService.CancelImport",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GenerateUploadURL",
          "name_key": "V1betaImportService.GenerateUploadURL",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "V1betaBranchService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/v1beta",
      "type": "grpc",
      "transports": [
        "lrpc",
        "http_gateway"
      ],
      "methods": [
        {
          "name": "ListBranches",
          "name_key": "V1betaBranchService.ListBranches",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CreateBranch",
          "name_key": "V1betaBranchService.CreateBranch",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetBranch",
          "name_key": "V1betaBranchService.GetBranch",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DeleteBranch",
          "name_key": "V1betaBranchService.DeleteBranch",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "V1betaUserService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/v1beta",
      "type": "grpc",
      "transports": [
        "lrpc",
        "http_gateway"
      ],
      "methods": [
        {
          "name": "CreateUser",
          "name_key": "V1betaUserService.CreateUser",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DeleteUser",
          "name_key": "V1betaUserService.DeleteUser",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "V1beta1BranchService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/v1beta1",
      "type": "grpc",
      "transports": [
        "lrpc",
        "http_gateway"
      ],
      "methods": [
        {
          "name": "CreateBranch",
          "name_key": "V1beta1BranchService.CreateBranch",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ListBranches",
          "name_key": "V1beta1BranchService.ListBranches",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetBranch",
          "name_key": "V1beta1BranchService.GetBranch",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DeleteBranch",
          "name_key": "V1beta1BranchService.DeleteBranch",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ResetBranch",
          "name_key": "V1beta1BranchService.ResetBranch",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "UpdateSqlUser",
          "name_key": "V1beta1BranchService.UpdateSqlUser",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "V1beta1ImportService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/v1beta1",
      "type": "grpc",
      "transports": [
        "lrpc",
        "http_gateway"
      ],
      "methods": [
        {
          "name": "StartUpload",
          "name_key": "V1beta1ImportService.StartUpload",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CompleteUpload",
          "name_key": "V1beta1ImportService.CompleteUpload",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CancelUpload",
          "name_key": "V1beta1ImportService.CancelUpload",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ListImports",
          "name_key": "V1beta1ImportService.ListImports",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CreateImport",
          "name_key": "V1beta1ImportService.CreateImport",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetImport",
          "name_key": "V1beta1ImportService.GetImport",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CancelImport",
          "name_key": "V1beta1ImportService.CancelImport",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "V1beta1ExportService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/v1beta1",
      "type": "grpc",
      "transports": [
        "lrpc",
        "http_gateway"
      ],
      "methods": [
        {
          "name": "ListExports",
          "name_key": "V1beta1ExportService.ListExports",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetExport",
          "name_key": "V1beta1ExportService.GetExport",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CancelExport",
          "name_key": "V1beta1ExportService.CancelExport",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CreateExport",
          "name_key": "V1beta1ExportService.CreateExport",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DeleteExport",
          "name_key": "V1beta1ExportService.DeleteExport",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DownloadExport",
          "name_key": "V1beta1ExportService.DownloadExport",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ListExportFiles",
          "name_key": "V1beta1ExportService.ListExportFiles",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DownloadExportFiles",
          "name_key": "V1beta1ExportService.DownloadExportFiles",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "V1beta1AuditLogService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/v1beta1",
      "type": "grpc",
      "transports": [
        "lrpc",
        "http_gateway"
      ],
      "methods": [
        {
          "name": "ListAuditLogs",
          "name_key": "V1beta1AuditLogService.ListAuditLogs",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DownloadAuditLogs",
          "name_key": "V1beta1AuditLogService.DownloadAuditLogs",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetAuditLogFilterRule",
          "name_key": "V1beta1AuditLogService.GetAuditLogFilterRule",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ListAuditLogFilterRules",
          "name_key": "V1beta1AuditLogService.ListAuditLogFilterRules",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CreateAuditLogFilterRule",
          "name_key": "V1beta1AuditLogService.CreateAuditLogFilterRule",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DeleteAuditLogFilterRule",
          "name_key": "V1beta1AuditLogService.DeleteAuditLogFilterRule",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "UpdateAuditLogFilterRule",
          "name_key": "V1beta1AuditLogService.UpdateAuditLogFilterRule",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "V1beta1DatabaseAuditLogService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/v1beta1",
      "type": "grpc",
      "transports": [
        "lrpc",
        "http_gateway"
      ],
      "methods": [
        {
          "name": "ListAuditLogFiles",
          "name_key": "V1beta1DatabaseAuditLogService.ListAuditLogFiles",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DownloadAuditLogFiles",
          "name_key": "V1beta1DatabaseAuditLogService.DownloadAuditLogFiles",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetAuditLogFilterRule",
          "name_key": "V1beta1DatabaseAuditLogService.GetAuditLogFilterRule",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ListAuditLogFilterRules",
          "name_key": "V1beta1DatabaseAuditLogService.ListAuditLogFilterRules",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CreateAuditLogFilterRule",
          "name_key": "V1beta1DatabaseAuditLogService.CreateAuditLogFilterRule",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DeleteAuditLogFilterRule",
          "name_key": "V1beta1DatabaseAuditLogService.DeleteAuditLogFilterRule",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "UpdateAuditLogFilterRule",
          "name_key": "V1beta1DatabaseAuditLogService.UpdateAuditLogFilterRule",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetAuditLogConfig",
          "name_key": "V1beta1DatabaseAuditLogService.GetAuditLogConfig",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "UpdateAuditLogConfig",
          "name_key": "V1beta1DatabaseAuditLogService.UpdateAuditLogConfig",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "V1beta1ChangefeedService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/v1beta1",
      "type": "grpc",
      "transports": [
        "lrpc",
        "http_gateway"
      ],
      "methods": [
        {
          "name": "ListChangefeeds",
          "name_key": "V1beta1ChangefeedService.ListChangefeeds",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetChangefeed",
          "name_key": "V1beta1ChangefeedService.GetChangefeed",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CreateChangefeed",
          "name_key": "V1beta1ChangefeedService.CreateChangefeed",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "EditChangefeed",
          "name_key": "V1beta1ChangefeedService.EditChangefeed",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DeleteChangefeed",
          "name_key": "V1beta1ChangefeedService.DeleteChangefeed",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "StartChangefeed",
          "name_key": "V1beta1ChangefeedService.StartChangefeed",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "StopChangefeed",
          "name_key": "V1beta1ChangefeedService.StopChangefeed",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "TestChangefeed",
          "name_key": "V1beta1ChangefeedService.TestChangefeed",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DescribeSchemaTable",
          "name_key": "V1beta1ChangefeedService.DescribeSchemaTable",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "V1beta1PrivateLinkConnectionService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/v1beta1",
      "type": "grpc",
      "transports": [
        "lrpc",
        "http_gateway"
      ],
      "methods": [
        {
          "name": "GetPrivateLinkConnection",
          "name_key": "V1beta1PrivateLinkConnectionService.GetPrivateLinkConnection",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ListPrivateLinkConnections",
          "name_key": "V1beta1PrivateLinkConnectionService.ListPrivateLinkConnections",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CreatePrivateLinkConnection",
          "name_key": "V1beta1PrivateLinkConnectionService.CreatePrivateLinkConnection",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DeletePrivateLinkConnection",
          "name_key": "V1beta1PrivateLinkConnectionService.DeletePrivateLinkConnection",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetAvailabilityZones",
          "name_key": "V1beta1PrivateLinkConnectionService.GetAvailabilityZones",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "AttachDomains",
          "name_key": "V1beta1PrivateLinkConnectionService.AttachDomains",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DetachDomains",
          "name_key": "V1beta1PrivateLinkConnectionService.DetachDomains",
          "input": "request message",
          "output": "response message"
        }
      ]
    },
    {
      "name": "V1beta1MigrationService",
      "package": "github.com/tidbcloud/serverless-service/idl/pbgen/proto/v1beta1",
      "type": "grpc",
      "transports": [
        "lrpc",
        "http_gateway"
      ],
      "methods": [
        {
          "name": "CreateMigration",
          "name_key": "V1beta1MigrationService.CreateMigration",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetMigration",
          "name_key": "V1beta1MigrationService.GetMigration",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ListMigrations",
          "name_key": "V1beta1MigrationService.ListMigrations",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "DeleteMigration",
          "name_key": "V1beta1MigrationService.DeleteMigration",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "PauseMigration",
          "name_key": "V1beta1MigrationService.PauseMigration",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "ResumeMigration",
          "name_key": "V1beta1MigrationService.ResumeMigration",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "Precheck",
          "name_key": "V1beta1MigrationService.Precheck",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "CancelPrecheck",
          "name_key": "V1beta1MigrationService.CancelPrecheck",
          "input": "request message",
          "output": "response message"
        },
        {
          "name": "GetPrecheck",
          "name_key": "V1beta1MigrationService.GetPrecheck",
          "input": "request message",
          "output": "response message"
        }
      ]
    }
  ]
}
