{
  "repo": "tidbcloud/observability",
  "binary": "vmbackupmanager",
  "binary_path": "vmbackupmanager/main.go",
  "surface_kind": "mixed_service",
  "type": "mixed_service",
  "services": [],
  "extensions": {
    "http_routes": [
      {
        "method": "GET",
        "path": "/metrics",
        "handler": "promhttp.Handler",
        "name_key": "HTTP GET /metrics"
      },
      {
        "method": "GET",
        "path": "/health",
        "handler": "health check",
        "name_key": "HTTP GET /health"
      },
      {
        "method": "GET",
        "path": "/api/v1/backups",
        "handler": "api.listBackups",
        "name_key": "HTTP GET /api/v1/backups"
      },
      {
        "method": "GET",
        "path": "/api/v1/backups/:id",
        "handler": "api.getBackup",
        "name_key": "HTTP GET /api/v1/backups/:id"
      },
      {
        "method": "POST",
        "path": "/api/v1/backups",
        "handler": "api.createBackup",
        "name_key": "HTTP POST /api/v1/backups"
      }
    ],
    "runtime_components": [
      {
        "name": "VMBackupManager",
        "kind": "cron_job",
        "description": "Scheduled incremental backup runner.",
        "name_key": "Runtime VMBackupManager.ScheduledIncrementalBackup"
      },
      {
        "name": "VMBackupManager",
        "kind": "cron_job",
        "description": "Scheduled full backup runner.",
        "name_key": "Runtime VMBackupManager.ScheduledFullBackup"
      },
      {
        "name": "VMBackupManager",
        "kind": "background_worker",
        "description": "Backup retention cleanup loop.",
        "name_key": "Runtime VMBackupManager.BackupRetention"
      }
    ],
    "notes": [
      "VictoriaMetrics backup manager with scheduled incremental and full backups."
    ]
  }
}
