{
  "repo": "tidbcloud/idl",
  "binary": "http",
  "binary_path": "http/main.go",
  "surface_kind": "http_service",
  "type": "http_service",
  "extensions": {},
  "services": [
    {
      "name": "SwaggerService",
      "package": "http",
      "methods": [
        {
          "name": "SwaggerUI",
          "name_key": "SwaggerService.SwaggerUI",
          "http_method": "GET",
          "path": "/swagger/*any",
          "description": "Swagger documentation UI"
        }
      ]
    },
    {
      "name": "ServerlessService",
      "package": "serverless",
      "methods": [
        {
          "name": "ListServerlessCloudProviders",
          "name_key": "ServerlessService.ListServerlessCloudProviders",
          "http_method": "GET",
          "path": "/serverless/cloud-providers"
        },
        {
          "name": "ListServerlessRegions",
          "name_key": "ServerlessService.ListServerlessRegions",
          "http_method": "GET",
          "path": "/serverless/cloud-providers/regions"
        },
        {
          "name": "ListServerlessClusters",
          "name_key": "ServerlessService.ListServerlessClusters",
          "http_method": "GET",
          "path": "/orgs/{org_id}/projects/{project_id}/serverless"
        },
        {
          "name": "CreateServerlessCluster",
          "name_key": "ServerlessService.CreateServerlessCluster",
          "http_method": "POST",
          "path": "/orgs/{org_id}/projects/{project_id}/serverless"
        },
        {
          "name": "GetServerlessCluster",
          "name_key": "ServerlessService.GetServerlessCluster",
          "http_method": "GET",
          "path": "/orgs/{org_id}/projects/{project_id}/serverless/{cluster_id}"
        },
        {
          "name": "DeleteServerlessCluster",
          "name_key": "ServerlessService.DeleteServerlessCluster",
          "http_method": "DELETE",
          "path": "/orgs/{org_id}/projects/{project_id}/serverless/{cluster_id}"
        },
        {
          "name": "UpdateServerlessClusterSpendLimit",
          "name_key": "ServerlessService.UpdateServerlessClusterSpendLimit",
          "http_method": "PUT",
          "path": "/orgs/{org_id}/projects/{project_id}/serverless/{cluster_id}/spend-limit"
        },
        {
          "name": "GetServerlessClusterPublicAddress",
          "name_key": "ServerlessService.GetServerlessClusterPublicAddress",
          "http_method": "GET",
          "path": "/orgs/{org_id}/projects/{project_id}/serverless/{cluster_id}/public-address"
        }
      ]
    },
    {
      "name": "DedicatedService",
      "package": "dedicated",
      "methods": [
        {
          "name": "ListDedicatedCloudProviders",
          "name_key": "DedicatedService.ListDedicatedCloudProviders",
          "http_method": "GET",
          "path": "/dedicated-clusters/cloud-providers"
        },
        {
          "name": "ListDedicatedCloudProviderRegions",
          "name_key": "DedicatedService.ListDedicatedCloudProviderRegions",
          "http_method": "GET",
          "path": "/dedicated-clusters/cloud-providers/regions"
        },
        {
          "name": "ListDedicatedCloudProvidersNodeTypes",
          "name_key": "DedicatedService.ListDedicatedCloudProvidersNodeTypes",
          "http_method": "GET",
          "path": "/dedicated-clusters/cloud-providers/node-types"
        },
        {
          "name": "CreateDedicatedCluster",
          "name_key": "DedicatedService.CreateDedicatedCluster",
          "http_method": "POST",
          "path": "/orgs/{org_id}/projects/{project_id}/dedicated-clusters"
        },
        {
          "name": "DeleteDedicatedCluster",
          "name_key": "DedicatedService.DeleteDedicatedCluster",
          "http_method": "DELETE",
          "path": "/orgs/{org_id}/projects/{project_id}/dedicated-clusters/{cluster_id}"
        },
        {
          "name": "GetDedicatedCluster",
          "name_key": "DedicatedService.GetDedicatedCluster",
          "http_method": "GET",
          "path": "/orgs/{org_id}/projects/{project_id}/dedicated-clusters/{cluster_id}"
        },
        {
          "name": "ListDedicatedClusters",
          "name_key": "DedicatedService.ListDedicatedClusters",
          "http_method": "GET",
          "path": "/orgs/{org_id}/projects/{project_id}/dedicated-clusters"
        },
        {
          "name": "PauseDedicatedCluster",
          "name_key": "DedicatedService.PauseDedicatedCluster",
          "http_method": "POST",
          "path": "/orgs/{org_id}/projects/{project_id}/dedicated-clusters/{cluster_id}/pause"
        },
        {
          "name": "ResumeDedicatedCluster",
          "name_key": "DedicatedService.ResumeDedicatedCluster",
          "http_method": "POST",
          "path": "/orgs/{org_id}/projects/{project_id}/dedicated-clusters/{cluster_id}/resume"
        },
        {
          "name": "ScaleDedicatedCluster",
          "name_key": "DedicatedService.ScaleDedicatedCluster",
          "http_method": "POST",
          "path": "/orgs/{org_id}/projects/{project_id}/dedicated-clusters/{cluster_id}/scale"
        },
        {
          "name": "GetDedicatedClusterPublicAddress",
          "name_key": "DedicatedService.GetDedicatedClusterPublicAddress",
          "http_method": "GET",
          "path": "/orgs/{org_id}/projects/{project_id}/dedicated-clusters/{cluster_id}/public-address"
        },
        {
          "name": "GetDedicatedClusterIPAccessList",
          "name_key": "DedicatedService.GetDedicatedClusterIPAccessList",
          "http_method": "GET",
          "path": "/orgs/{org_id}/projects/{project_id}/dedicated-clusters/{cluster_id}/ip-access-list"
        },
        {
          "name": "UpdateDedicatedClusterIPAccessList",
          "name_key": "DedicatedService.UpdateDedicatedClusterIPAccessList",
          "http_method": "PUT",
          "path": "/orgs/{org_id}/projects/{project_id}/dedicated-clusters/{cluster_id}/ip-access-list"
        },
        {
          "name": "GetDedicatedClusterCaCertDownloadUrl",
          "name_key": "DedicatedService.GetDedicatedClusterCaCertDownloadUrl",
          "http_method": "GET",
          "path": "/orgs/{org_id}/projects/{project_id}/dedicated-clusters/{cluster_id}/ca-cert-download-url"
        }
      ]
    },
    {
      "name": "OperationService",
      "package": "operation",
      "methods": [
        {
          "name": "GetOperation",
          "name_key": "OperationService.GetOperation",
          "http_method": "GET",
          "path": "/orgs/{org_id}/projects/{project_id}/operations/{operation_id}"
        },
        {
          "name": "ListOperations",
          "name_key": "OperationService.ListOperations",
          "http_method": "GET",
          "path": "/orgs/{org_id}/projects/{project_id}/operations"
        }
      ]
    },
    {
      "name": "NetworkService",
      "package": "network",
      "methods": [
        {
          "name": "CreateOrCheckDedicatedClusterPrivateEndpointService",
          "name_key": "NetworkService.CreateOrCheckDedicatedClusterPrivateEndpointService",
          "http_method": "POST",
          "path": "/orgs/{org_id}/projects/{project_id}/dedicated-clusters/{cluster_id}/private-endpoint-services"
        },
        {
          "name": "SubmitDedicatedClusterPrivateEndpoint",
          "name_key": "NetworkService.SubmitDedicatedClusterPrivateEndpoint",
          "http_method": "POST",
          "path": "/orgs/{org_id}/projects/{project_id}/dedicated-clusters/{cluster_id}/private-endpoints"
        },
        {
          "name": "ListDedicatedClusterPrivateEndpoints",
          "name_key": "NetworkService.ListDedicatedClusterPrivateEndpoints",
          "http_method": "GET",
          "path": "/orgs/{org_id}/projects/{project_id}/dedicated-clusters/private-endpoints"
        },
        {
          "name": "DeleteDedicatedClusterPrivateEndpoint",
          "name_key": "NetworkService.DeleteDedicatedClusterPrivateEndpoint",
          "http_method": "DELETE",
          "path": "/orgs/{org_id}/projects/{project_id}/dedicated-clusters/private-endpoints/{endpoint_id}"
        },
        {
          "name": "GetDedicatedClusterPrivateAddress",
          "name_key": "NetworkService.GetDedicatedClusterPrivateAddress",
          "http_method": "GET",
          "path": "/orgs/{org_id}/projects/{project_id}/dedicated-clusters/{cluster_id}/private-address"
        },
        {
          "name": "ListDedicatedClusterVpcPeerings",
          "name_key": "NetworkService.ListDedicatedClusterVpcPeerings",
          "http_method": "GET",
          "path": "/orgs/{org_id}/projects/{project_id}/dedicated-clusters/vpc-peerings"
        },
        {
          "name": "CreateDedicatedClusterVpcPeering",
          "name_key": "NetworkService.CreateDedicatedClusterVpcPeering",
          "http_method": "POST",
          "path": "/orgs/{org_id}/projects/{project_id}/dedicated-clusters/vpc-peerings"
        },
        {
          "name": "DeleteDedicatedClusterVpcPeering",
          "name_key": "NetworkService.DeleteDedicatedClusterVpcPeering",
          "http_method": "DELETE",
          "path": "/orgs/{org_id}/projects/{project_id}/dedicated-clusters/vpc-peerings/{id}"
        },
        {
          "name": "GetDedicatedClusterProjectCidrs",
          "name_key": "NetworkService.GetDedicatedClusterProjectCidrs",
          "http_method": "GET",
          "path": "/orgs/{org_id}/projects/{project_id}/dedicated-clusters/cidrs"
        },
        {
          "name": "CreateDedicatedClusterProjectCidr",
          "name_key": "NetworkService.CreateDedicatedClusterProjectCidr",
          "http_method": "POST",
          "path": "/orgs/{org_id}/projects/{project_id}/dedicated-clusters/cidrs"
        }
      ]
    }
  ]
}
