{
  "repo": "tidbcloud/mimir",
  "binary": "server",
  "binary_path": "cmd/server/main.go",
  "surface_kind": "mixed_service",
  "type": "mixed_service",
  "extensions": {},
  "services": [
    {
      "name": "HealthAndMetrics",
      "type": "http",
      "methods": [
        {
          "name": "ping",
          "name_key": "HealthAndMetrics.ping",
          "path": "/ping",
          "method": "GET",
          "description": "Plain health probe that returns OK."
        },
        {
          "name": "metrics",
          "name_key": "HealthAndMetrics.metrics",
          "path": "/metrics",
          "method": "GET",
          "description": "Prometheus metrics handler mounted on the mux router."
        },
        {
          "name": "live",
          "name_key": "HealthAndMetrics.live",
          "path": "/live",
          "method": "GET",
          "description": "Liveness probe from heptiolabs healthcheck."
        },
        {
          "name": "ready",
          "name_key": "HealthAndMetrics.ready",
          "path": "/ready",
          "method": "GET",
          "description": "Readiness probe from heptiolabs healthcheck."
        }
      ]
    },
    {
      "name": "JobManagementAPI",
      "type": "http",
      "methods": [
        {
          "name": "SubmitJob",
          "name_key": "JobManagementAPI.SubmitJob",
          "path": "/api/v1/submit/flink",
          "method": "POST",
          "description": "Create a Flink job from the v1 request payload."
        },
        {
          "name": "ListJob",
          "name_key": "JobManagementAPI.ListJob",
          "path": "/api/v1/list",
          "method": "GET",
          "description": "List tracked jobs."
        },
        {
          "name": "StopJob",
          "name_key": "JobManagementAPI.StopJob",
          "path": "/api/v1/stop",
          "method": "POST",
          "description": "Stop a running job."
        },
        {
          "name": "ResumeJob",
          "name_key": "JobManagementAPI.ResumeJob",
          "path": "/api/v1/resume",
          "method": "POST",
          "description": "Resume a stopped job."
        },
        {
          "name": "GetLogs",
          "name_key": "JobManagementAPI.GetLogs",
          "path": "/api/v1/logs/{id}",
          "method": "GET",
          "description": "Stream job logs from Kubernetes pods."
        },
        {
          "name": "RmJob",
          "name_key": "JobManagementAPI.RmJob",
          "path": "/api/v1/rm",
          "method": "POST",
          "description": "Delete a submitted job."
        },
        {
          "name": "ShowSql",
          "name_key": "JobManagementAPI.ShowSql",
          "path": "/api/v1/show-sql",
          "method": "POST",
          "description": "Render the SQL used for a submitted job."
        },
        {
          "name": "CreateIngress",
          "name_key": "JobManagementAPI.CreateIngress",
          "path": "/api/v1/create-ingress",
          "method": "POST",
          "description": "Create an ingress for a job endpoint."
        },
        {
          "name": "RmIngress",
          "name_key": "JobManagementAPI.RmIngress",
          "path": "/api/v1/rm-ingress",
          "method": "POST",
          "description": "Remove a previously created ingress."
        },
        {
          "name": "SubmitJobV2",
          "name_key": "JobManagementAPI.SubmitJobV2",
          "path": "/api/v2/submit",
          "method": "POST",
          "description": "Create a job using the v2 request model."
        },
        {
          "name": "ListIngress",
          "name_key": "JobManagementAPI.ListIngress",
          "path": "/api/v2/list-ingress",
          "method": "GET",
          "description": "List managed ingress records."
        }
      ]
    },
    {
      "name": "SinkAPI",
      "type": "http",
      "methods": [
        {
          "name": "CreateSink",
          "name_key": "SinkAPI.CreateSink",
          "path": "/api/v2/sink/create",
          "method": "POST",
          "description": "Create a sink definition."
        },
        {
          "name": "ListSink",
          "name_key": "SinkAPI.ListSink",
          "path": "/api/v2/sink/list",
          "method": "GET",
          "description": "List configured sinks."
        },
        {
          "name": "RmSink",
          "name_key": "SinkAPI.RmSink",
          "path": "/api/v2/sink/rm",
          "method": "POST",
          "description": "Delete a sink definition."
        }
      ]
    },
    {
      "name": "FlinkSessionProxy",
      "type": "http",
      "methods": [
        {
          "name": "Proxy",
          "name_key": "FlinkSessionProxy.Proxy",
          "path": "/flink-api/*",
          "method": "ANY",
          "description": "Reverse proxy to the configured Flink session REST endpoint."
        }
      ]
    },
    {
      "name": "TableCheckerEventSubscriber",
      "type": "worker",
      "methods": [
        {
          "name": "Register",
          "name_key": "TableCheckerEventSubscriber.Register",
          "description": "Register the table checker subscriber on the in-process event bus during startup."
        }
      ]
    }
  ]
}
