{
  "repo": "tidbcloud/chaos-svc",
  "binary": "server",
  "binary_path": "cmd/server/main.go",
  "surface_kind": "mixed_service",
  "type": "mixed_service",
  "services": [
    {
      "name": "ChaosService",
      "package": "chaos",
      "methods": [
        {
          "name": "EnableChaosBackend",
          "name_key": "ChaosService.EnableChaosBackend",
          "input": "EnableChaosBackendRequest",
          "output": "EnableChaosBackendResp"
        },
        {
          "name": "DisableChaosBackend",
          "name_key": "ChaosService.DisableChaosBackend",
          "input": "DisableChaosBackendRequest",
          "output": "DisableChaosBackendResp"
        },
        {
          "name": "GetChaosBackend",
          "name_key": "ChaosService.GetChaosBackend",
          "input": "GetChaosBackendRequest",
          "output": "GetChaosBackendResp"
        },
        {
          "name": "ListExperiments",
          "name_key": "ChaosService.ListExperiments",
          "input": "ListExperimentsRequest",
          "output": "ListExperimentsResp"
        },
        {
          "name": "CreateExperiment",
          "name_key": "ChaosService.CreateExperiment",
          "input": "CreateExperimentRequest",
          "output": "CreateExperimentResp"
        },
        {
          "name": "UpdateExperiment",
          "name_key": "ChaosService.UpdateExperiment",
          "input": "UpdateExperimentRequest",
          "output": "UpdateExperimentResp"
        },
        {
          "name": "DeleteExperiment",
          "name_key": "ChaosService.DeleteExperiment",
          "input": "DeleteExperimentRequest",
          "output": "DeleteExperimentResp"
        },
        {
          "name": "GetExperiment",
          "name_key": "ChaosService.GetExperiment",
          "input": "GetExperimentRequest",
          "output": "GetExperimentResp"
        },
        {
          "name": "GetTiDBComponentTopology",
          "name_key": "ChaosService.GetTiDBComponentTopology",
          "input": "GetTiDBComponentTopologyRequest",
          "output": "GetTiDBComponentTopologyResp"
        }
      ]
    },
    {
      "name": "BackgroundWorker",
      "package": "chaos",
      "type": "worker",
      "methods": [
        {
          "name": "SyncBackend",
          "name_key": "Runtime BackgroundWorker.SyncBackend",
          "output": "Synchronize chaos backend status from the control plane."
        },
        {
          "name": "SyncWorkflow",
          "name_key": "Runtime BackgroundWorker.SyncWorkflow",
          "output": "Synchronize workflow execution status from Kubernetes resources."
        }
      ]
    }
  ],
  "extensions": {
    "http_routes": [
      {
        "method": "GET",
        "path": "/metrics",
        "handler": "promhttp.Handler()",
        "description": "Prometheus metrics",
        "name_key": "HTTP GET /metrics"
      },
      {
        "method": "GET",
        "path": "/debug/pprof/",
        "handler": "pprof.Index",
        "description": "pprof index",
        "name_key": "HTTP GET /debug/pprof/"
      },
      {
        "method": "GET",
        "path": "/debug/pprof/cmdline",
        "handler": "pprof.Cmdline",
        "description": "pprof cmdline",
        "name_key": "HTTP GET /debug/pprof/cmdline"
      },
      {
        "method": "GET",
        "path": "/debug/pprof/profile",
        "handler": "pprof.Profile",
        "description": "pprof profile",
        "name_key": "HTTP GET /debug/pprof/profile"
      },
      {
        "method": "GET",
        "path": "/debug/pprof/symbol",
        "handler": "pprof.Symbol",
        "description": "pprof symbol",
        "name_key": "HTTP GET /debug/pprof/symbol"
      },
      {
        "method": "GET",
        "path": "/debug/pprof/trace",
        "handler": "pprof.Trace",
        "description": "pprof trace",
        "name_key": "HTTP GET /debug/pprof/trace"
      }
    ]
  }
}
