{
  "repo": "pingcap/dm",
  "binary": "dm-master",
  "binary_path": "cmd/dm-master/main.go",
  "surface_kind": "mixed_service",
  "type": "mixed_service",
  "extensions": {},
  "services": [
    {
      "name": "MasterRPC",
      "type": "grpc",
      "methods": [
        {
          "name": "StartTask",
          "name_key": "MasterRPC.StartTask",
          "description": "Cluster control-plane gRPC endpoint for starting migration tasks."
        },
        {
          "name": "QueryStatus",
          "name_key": "MasterRPC.QueryStatus",
          "description": "Cluster control-plane gRPC endpoint for querying task and worker status."
        },
        {
          "name": "OperateTask",
          "name_key": "MasterRPC.OperateTask",
          "description": "Cluster control-plane gRPC endpoint for pausing, resuming, or stopping migration tasks."
        }
      ]
    },
    {
      "name": "GatewayAPI",
      "type": "http",
      "methods": [
        {
          "name": "TaskStatus",
          "name_key": "GatewayAPI.TaskStatus",
          "path": "/apis/v1alpha1/status/{task}",
          "method": "GET",
          "description": "grpc-gateway HTTP endpoint backed by the master gRPC server."
        }
      ]
    },
    {
      "name": "OpenAPI",
      "type": "http",
      "methods": [
        {
          "name": "GetClusterMasterList",
          "name_key": "OpenAPI.GetClusterMasterList",
          "path": "/api/v1/cluster/masters",
          "method": "GET",
          "description": "Echo-based OpenAPI endpoint for DM cluster membership."
        },
        {
          "name": "GetDocJSON",
          "name_key": "OpenAPI.GetDocJSON",
          "path": "/api/v1/dm.json",
          "method": "GET",
          "description": "Serves the generated OpenAPI document."
        }
      ]
    },
    {
      "name": "StatusAPI",
      "type": "http",
      "methods": [
        {
          "name": "Status",
          "name_key": "StatusAPI.Status",
          "path": "/status",
          "method": "GET",
          "description": "Process status endpoint on the embedded etcd client listener."
        }
      ]
    },
    {
      "name": "MetricsAPI",
      "type": "http",
      "methods": [
        {
          "name": "Metrics",
          "name_key": "MetricsAPI.Metrics",
          "path": "/metrics",
          "method": "GET",
          "description": "Prometheus metrics exposed by embedded etcd plus DM master metrics."
        }
      ]
    },
    {
      "name": "DebugAPI",
      "type": "http",
      "methods": [
        {
          "name": "PprofIndex",
          "name_key": "DebugAPI.PprofIndex",
          "path": "/debug/pprof/",
          "method": "GET",
          "description": "pprof index served on the master listener."
        }
      ]
    }
  ]
}
