{
  "openapi": "3.0.3",
  "info": {
    "title": "Backup Browser Agent API",
    "version": "1.0.0",
    "description": "Read-only access to recovery instructions and restic backup contents. This API never restores, changes, or deletes data."
  },
  "servers": [{"url": "https://s3.itcode.team"}],
  "security": [{"agentKey": []}],
  "paths": {
    "/api/v1/catalog": {"get": {"summary": "List instructions, servers, and latest snapshots", "responses": {"200": {"description": "Catalog"}}}},
    "/api/v1/instructions": {"get": {"summary": "List root recovery documents", "responses": {"200": {"description": "Instruction list"}}}},
    "/api/v1/instructions/{name}": {"get": {"summary": "Read or download a recovery document", "parameters": [{"name": "name", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "download", "in": "query", "schema": {"type": "integer", "enum": [1]}}], "responses": {"200": {"description": "Document body"}}}},
    "/api/v1/repositories": {"get": {"summary": "List configured backup repositories", "responses": {"200": {"description": "Repository list"}}}},
    "/api/v1/repositories/{server}/snapshots": {"get": {"summary": "List snapshots", "parameters": [{"name": "server", "in": "path", "required": true, "schema": {"type": "string"}}], "responses": {"200": {"description": "Snapshot list"}}}},
    "/api/v1/repositories/{server}/snapshots/{snapshot}/entries": {"get": {"summary": "List a directory", "parameters": [{"name": "server", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "snapshot", "in": "path", "required": true, "description": "Snapshot ID or latest", "schema": {"type": "string"}}, {"name": "path", "in": "query", "required": true, "schema": {"type": "string"}}], "responses": {"200": {"description": "Directory entries"}}}},
    "/api/v1/repositories/{server}/snapshots/{snapshot}/download": {"get": {"summary": "Download one file or a directory as ZIP", "parameters": [{"name": "server", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "snapshot", "in": "path", "required": true, "description": "Snapshot ID or latest", "schema": {"type": "string"}}, {"name": "path", "in": "query", "required": true, "schema": {"type": "string"}}], "responses": {"200": {"description": "File or ZIP stream"}}}}
  },
  "components": {"securitySchemes": {"agentKey": {"type": "http", "scheme": "bearer", "bearerFormat": "bba temporary key"}}}
}
