{
  "repo": "tidbcloud/config-center",
  "binary": "server",
  "binary_path": "cmd/server/main.go",
  "surface_kind": "mixed_service",
  "type": "mixed_service",
  "services": [
    {
      "name": "ConfigCenterService",
      "package": "config_center",
      "description": "Service to manage cluster configurations and component images.",
      "methods": [
        {"name": "CreateClusterConfigurationFile", "name_key": "Runtime ConfigCenterService.CreateClusterConfigurationFile", "input": "CreateClusterConfigurationFileRequest", "output": "ConfigurationFile"},
        {"name": "BatchCreateClusterConfigurationFiles", "name_key": "Runtime ConfigCenterService.BatchCreateClusterConfigurationFiles", "input": "BatchCreateClusterConfigurationFilesRequest", "output": "BatchCreateClusterConfigurationFilesResponse"},
        {"name": "GetClusterConfigurationFile", "name_key": "Runtime ConfigCenterService.GetClusterConfigurationFile", "input": "GetClusterConfigurationFileRequest", "output": "ConfigurationFile"},
        {"name": "ListClusterConfigurationFiles", "name_key": "Runtime ConfigCenterService.ListClusterConfigurationFiles", "input": "ListClusterConfigurationFilesRequest", "output": "ListClusterConfigurationFilesResponse"},
        {"name": "UpsertClusterCustomParams", "name_key": "Runtime ConfigCenterService.UpsertClusterCustomParams", "input": "UpsertClusterCustomParamsRequest", "output": "ConfigurationFile"},
        {"name": "BatchUpsertClusterCustomParams", "name_key": "Runtime ConfigCenterService.BatchUpsertClusterCustomParams", "input": "BatchUpsertClusterCustomParamsRequest", "output": "BatchUpsertClusterCustomParamsResponse"},
        {"name": "UpdateClusterConfigurationFile", "name_key": "Runtime ConfigCenterService.UpdateClusterConfigurationFile", "input": "UpdateClusterConfigurationFileRequest", "output": "ConfigurationFile"},
        {"name": "BatchUpdateClusterConfigurationFiles", "name_key": "Runtime ConfigCenterService.BatchUpdateClusterConfigurationFiles", "input": "BatchUpdateClusterConfigurationFilesRequest", "output": "BatchUpdateClusterConfigurationFilesResponse"},
        {"name": "AutoUpdateClusterConfigurationFile", "name_key": "Runtime ConfigCenterService.AutoUpdateClusterConfigurationFile", "input": "AutoUpdateClusterConfigurationFileRequest", "output": "ConfigurationFile"},
        {"name": "BatchAutoUpdateClusterConfigurationFiles", "name_key": "Runtime ConfigCenterService.BatchAutoUpdateClusterConfigurationFiles", "input": "BatchAutoUpdateClusterConfigurationFilesRequest", "output": "BatchAutoUpdateClusterConfigurationFilesResponse"},
        {"name": "DeleteClusterConfigurationFile", "name_key": "Runtime ConfigCenterService.DeleteClusterConfigurationFile", "input": "DeleteClusterConfigurationFileRequest", "output": "google.protobuf.Empty"},
        {"name": "BatchDeleteClusterConfigurationFiles", "name_key": "Runtime ConfigCenterService.BatchDeleteClusterConfigurationFiles", "input": "BatchDeleteClusterConfigurationFilesRequest", "output": "google.protobuf.Empty"},
        {"name": "CreateConfigurationTemplate", "name_key": "Runtime ConfigCenterService.CreateConfigurationTemplate", "input": "CreateConfigurationTemplateRequest", "output": "ConfigurationTemplate"},
        {"name": "BatchCreateConfigurationTemplates", "name_key": "Runtime ConfigCenterService.BatchCreateConfigurationTemplates", "input": "BatchCreateConfigurationTemplatesRequest", "output": "BatchCreateConfigurationTemplatesResponse"},
        {"name": "GetConfigurationTemplate", "name_key": "Runtime ConfigCenterService.GetConfigurationTemplate", "input": "GetConfigurationTemplateRequest", "output": "ConfigurationTemplate"},
        {"name": "ListConfigurationTemplates", "name_key": "Runtime ConfigCenterService.ListConfigurationTemplates", "input": "ListConfigurationTemplatesRequest", "output": "ListConfigurationTemplatesResponse"},
        {"name": "DeleteConfigurationTemplate", "name_key": "Runtime ConfigCenterService.DeleteConfigurationTemplate", "input": "DeleteConfigurationTemplateRequest", "output": "google.protobuf.Empty"},
        {"name": "SearchDefaultConfigurationTemplate", "name_key": "Runtime ConfigCenterService.SearchDefaultConfigurationTemplate", "input": "SearchDefaultConfigurationTemplateRequest", "output": "ConfigurationTemplate"},
        {"name": "BatchSearchDefaultConfigurationTemplate", "name_key": "Runtime ConfigCenterService.BatchSearchDefaultConfigurationTemplate", "input": "BatchSearchDefaultConfigurationTemplateRequest", "output": "BatchSearchDefaultConfigurationTemplateResponse"},
        {"name": "ListConfigurationTemplateDefaultCaseBindings", "name_key": "Runtime ConfigCenterService.ListConfigurationTemplateDefaultCaseBindings", "input": "ListConfigurationTemplateDefaultCaseBindingsRequest", "output": "ListConfigurationTemplateDefaultCaseBindingsResponse"},
        {"name": "UpdateDefaultConfigurationTemplate", "name_key": "Runtime ConfigCenterService.UpdateDefaultConfigurationTemplate", "input": "UpdateDefaultConfigurationTemplateRequest", "output": "ConfigurationTemplate"},
        {"name": "DeleteDefaultConfigurationTemplate", "name_key": "Runtime ConfigCenterService.DeleteDefaultConfigurationTemplate", "input": "DeleteDefaultConfigurationTemplateRequest", "output": "google.protobuf.Empty"},
        {"name": "BatchUpdateDefaultConfigurationTemplate", "name_key": "Runtime ConfigCenterService.BatchUpdateDefaultConfigurationTemplate", "input": "BatchUpdateDefaultConfigurationTemplateRequest", "output": "BatchUpdateDefaultConfigurationTemplateResponse"},
        {"name": "GetTemplateUsage", "name_key": "Runtime ConfigCenterService.GetTemplateUsage", "input": "GetTemplateUsageRequest", "output": "TemplateUsage"},
        {"name": "CreateMetaProfile", "name_key": "Runtime ConfigCenterService.CreateMetaProfile", "input": "CreateMetaProfileRequest", "output": "MetaProfile"},
        {"name": "GetMetaProfile", "name_key": "Runtime ConfigCenterService.GetMetaProfile", "input": "GetMetaProfileRequest", "output": "MetaProfile"},
        {"name": "ListMetaProfiles", "name_key": "Runtime ConfigCenterService.ListMetaProfiles", "input": "ListMetaProfilesRequest", "output": "ListMetaProfilesResponse"},
        {"name": "DeleteMetaProfile", "name_key": "Runtime ConfigCenterService.DeleteMetaProfile", "input": "DeleteMetaProfileRequest", "output": "google.protobuf.Empty"},
        {"name": "GetTenantInitialCustomParams", "name_key": "Runtime ConfigCenterService.GetTenantInitialCustomParams", "input": "GetTenantInitialCustomParamsRequest", "output": "TenantInitialCustomPatams"},
        {"name": "ListTenantInitialCustomParams", "name_key": "Runtime ConfigCenterService.ListTenantInitialCustomParams", "input": "ListTenantInitialCustomParamsRequest", "output": "ListTenantInitialCustomParamsResponse"},
        {"name": "UpdateTenantInitialCustomParams", "name_key": "Runtime ConfigCenterService.UpdateTenantInitialCustomParams", "input": "UpdateTenantInitialCustomParamsRequest", "output": "TenantInitialCustomPatams"},
        {"name": "BatchUpdateTenantInitialCustomParams", "name_key": "Runtime ConfigCenterService.BatchUpdateTenantInitialCustomParams", "input": "BatchUpdateTenantInitialCustomParamsRequest", "output": "BatchUpdateTenantInitialCustomParamsResponse"},
        {"name": "CopyConfigurationDictFromOldVersion", "name_key": "Runtime ConfigCenterService.CopyConfigurationDictFromOldVersion", "input": "CopyConfigurationDictFromOldVersionRequest", "output": "google.protobuf.Empty"},
        {"name": "BatchCreateConfigurationDictItems", "name_key": "Runtime ConfigCenterService.BatchCreateConfigurationDictItems", "input": "BatchCreateConfigurationDictRequest", "output": "BatchCreateConfigurationDictResponse"},
        {"name": "GetConfigurationDictItem", "name_key": "Runtime ConfigCenterService.GetConfigurationDictItem", "input": "GetConfigurationDictItemRequest", "output": "ConfigurationDictItem"},
        {"name": "ListConfigurationDictItems", "name_key": "Runtime ConfigCenterService.ListConfigurationDictItems", "input": "ListConfigurationDictItemsRequest", "output": "ListConfigurationDictItemsResponse"},
        {"name": "ListConfigurationDictVersions", "name_key": "Runtime ConfigCenterService.ListConfigurationDictVersions", "input": "ListConfigurationDictVersionsRequest", "output": "ListConfigurationDictVersionsResponse"},
        {"name": "UpdateConfigurationDictItem", "name_key": "Runtime ConfigCenterService.UpdateConfigurationDictItem", "input": "UpdateConfigurationDictItemReq", "output": "ConfigurationDictItem"},
        {"name": "PurgeDictItems", "name_key": "Runtime ConfigCenterService.PurgeDictItems", "input": "PurgeDictItemsRequest", "output": "PurgeDictItemsResponse"},
        {"name": "GetComponentImage", "name_key": "Runtime ConfigCenterService.GetComponentImage", "input": "GetComponentImageRequest", "output": "ComponentImage"},
        {"name": "UpdateComponentImage", "name_key": "Runtime ConfigCenterService.UpdateComponentImage", "input": "UpdateComponentImageRequest", "output": "ComponentImage"},
        {"name": "ListComponentImages", "name_key": "Runtime ConfigCenterService.ListComponentImages", "input": "ListComponentImagesRequest", "output": "ListComponentImagesResponse"},
        {"name": "GetClusterComponent", "name_key": "Runtime ConfigCenterService.GetClusterComponent", "input": "GetClusterComponentRequest", "output": "ClusterComponent"},
        {"name": "ListClusterComponents", "name_key": "Runtime ConfigCenterService.ListClusterComponents", "input": "ListClusterComponentsRequest", "output": "ListClusterComponentsResponse"},
        {"name": "UpdateClusterComponent", "name_key": "Runtime ConfigCenterService.UpdateClusterComponent", "input": "UpdateClusterComponentRequest", "output": "ClusterComponent"},
        {"name": "BatchUpdateClusterComponents", "name_key": "Runtime ConfigCenterService.BatchUpdateClusterComponents", "input": "BatchUpdateClusterComponentsRequest", "output": "BatchUpdateClusterComponentsResponse"},
        {"name": "InitClusterMeta", "name_key": "Runtime ConfigCenterService.InitClusterMeta", "input": "InitClusterMetaRequest", "output": "ClusterMeta"},
        {"name": "GetClusterMeta", "name_key": "Runtime ConfigCenterService.GetClusterMeta", "input": "GetClusterMetaRequest", "output": "ClusterMeta"},
        {"name": "UpdateClusterMeta", "name_key": "Runtime ConfigCenterService.UpdateClusterMeta", "input": "UpdateClusterMetaRequest", "output": "UpdateClusterMetaResponse"},
        {"name": "AutoUpdateClusterMeta", "name_key": "Runtime ConfigCenterService.AutoUpdateClusterMeta", "input": "AutoUpdateClusterMetaRequest", "output": "AutoUpdateClusterMetaResponse"},
        {"name": "ListAvailableVersions", "name_key": "Runtime ConfigCenterService.ListAvailableVersions", "input": "ListAvailableVersionsRequest", "output": "ListAvailableVersionsResponse"},
        {"name": "ListAvailableInstances", "name_key": "Runtime ConfigCenterService.ListAvailableInstances", "input": "ListAvailableInstancesRequest", "output": "ListAvailableInstancesResponse"},
        {"name": "GetDefaultVersion", "name_key": "Runtime ConfigCenterService.GetDefaultVersion", "input": "GetDefaultVersionRequest", "output": "DefaultVersion"},
        {"name": "UpdateDefaultVersion", "name_key": "Runtime ConfigCenterService.UpdateDefaultVersion", "input": "UpdateDefaultVersionRequest", "output": "DefaultVersion"},
        {"name": "DeleteDefaultVersion", "name_key": "Runtime ConfigCenterService.DeleteDefaultVersion", "input": "DeleteDefaultVersionRequest", "output": "google.protobuf.Empty"},
        {"name": "ListDefaultVersionRules", "name_key": "Runtime ConfigCenterService.ListDefaultVersionRules", "input": "ListDefaultVersionRulesRequest", "output": "ListDefaultVersionRulesResponse"},
        {"name": "RegisterRegionalServer", "name_key": "Runtime ConfigCenterService.RegisterRegionalServer", "input": "RegisterRegionalServerRequest", "output": "RegionalServer"},
        {"name": "ListRegionalServers", "name_key": "Runtime ConfigCenterService.ListRegionalServers", "input": "ListRegionalServersRequest", "output": "ListRegionalServersResponse"},
        {"name": "OfflineRegionalServer", "name_key": "Runtime ConfigCenterService.OfflineRegionalServer", "input": "OfflineRegionalServerRequest", "output": "google.protobuf.Empty"}
      ]
    }
  ],
  "extensions": {
    "notes": [
      "The binary serves gRPC on port 8080 and grpc-gateway HTTP routes on port 8081.",
      "The grpc-gateway includes template, tenant-initial-custom-params, component-image, cluster-meta, default-version, and regional-server routes.",
      "The service supports global mode backed by MySQL plus regional fan-out, and regional mode backed by MySQL only."
    ]
  }
}
