{ "openapi": "3.1.0", "info": { "title": "FastAPI", "version": "0.1.0" }, "paths": { "/api/system_info": { "get": { "summary": "Get System Info", "operationId": "get_system_info", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemInfo" } } } } } } }, "/api/status": { "get": { "summary": "Route Get Status", "description": "Get system status including frontend, coordinator, and generators.", "operationId": "route_get_status", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemStatus" } } } } } } }, "/api/healthz": { "get": { "summary": "Healthz", "operationId": "healthz", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/quicklooks/{visit_name}/tiles/{z}/{y}/{x}": { "get": { "summary": "Get Tile", "operationId": "get_tile", "parameters": [ { "name": "visit_name", "in": "path", "required": true, "schema": { "type": "string", "pattern": "^\\w+:\\w+$", "title": "Visit Name" } }, { "name": "z", "in": "path", "required": true, "schema": { "type": "integer", "title": "Z" } }, { "name": "y", "in": "path", "required": true, "schema": { "type": "integer", "title": "Y" } }, { "name": "x", "in": "path", "required": true, "schema": { "type": "integer", "title": "X" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/quicklooks/{visit_name}/fits_header/{ccd_name}": { "get": { "summary": "Get Fits Header", "operationId": "get_fits_header", "parameters": [ { "name": "visit_name", "in": "path", "required": true, "schema": { "type": "string", "pattern": "^\\w+:\\w+$", "title": "Visit Name" } }, { "name": "ccd_name", "in": "path", "required": true, "schema": { "type": "string", "pattern": "^\\w+$", "title": "Ccd Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/HeaderType" }, "title": "Response Get Fits Header Api Quicklooks Visit Name Fits Header Ccd Name Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/quicklooks": { "post": { "summary": "Create Quicklook", "description": "Create a quicklook", "operationId": "create_quicklook", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateQuicklookRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/quicklooks/{visit_name}/vote": { "post": { "summary": "Vote Quicklook", "operationId": "vote_quicklook", "parameters": [ { "name": "visit_name", "in": "path", "required": true, "schema": { "type": "string", "pattern": "^\\w+:\\w+$", "title": "Visit Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/quicklooks/{visit_name}/unvote": { "post": { "summary": "Unvote Quicklook", "operationId": "unvote_quicklook", "parameters": [ { "name": "visit_name", "in": "path", "required": true, "schema": { "type": "string", "pattern": "^\\w+:\\w+$", "title": "Visit Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/quicklooks/*/status": { "get": { "summary": "Get All Quicklook Jobs", "operationId": "get_all_quicklook_jobs", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobStatusList" } } } } } } }, "/api/quicklooks/{visit_name}/quicklook_metadata": { "get": { "summary": "Get Quicklook Metadata", "operationId": "get_quicklook_metadata", "parameters": [ { "name": "visit_name", "in": "path", "required": true, "schema": { "type": "string", "pattern": "^\\w+:\\w+$", "title": "Visit Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/QuicklookMetadata" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/visits": { "get": { "summary": "List Visits", "operationId": "list_visits", "parameters": [ { "name": "exposure", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Exposure" } }, { "name": "day_obs", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Day Obs" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 10000, "default": 1000, "title": "Limit" } }, { "name": "data_type", "in": "query", "required": false, "schema": { "type": "string", "default": "raw", "title": "Data Type" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/VisitEntry" }, "title": "Response List Visits Api Visits Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/visits/{visit_name}/ccds/{ccd_name}": { "get": { "summary": "Get Visit Metadata", "operationId": "get_visit_metadata", "parameters": [ { "name": "visit_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Visit Name" } }, { "name": "ccd_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Ccd Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DataSourceCcdMetadata" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/exposures/{id}/types": { "get": { "summary": "Get Exposure Data Types", "operationId": "get_exposure_data_types", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" }, "title": "Response Get Exposure Data Types Api Exposures Id Types Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/quicklooks/{visit_name}/fits/{ccd_name}": { "get": { "summary": "Get Fits File", "operationId": "get_fits_file", "parameters": [ { "name": "visit_name", "in": "path", "required": true, "schema": { "type": "string", "pattern": "^\\w+:\\w+$", "title": "Visit Name" } }, { "name": "ccd_name", "in": "path", "required": true, "schema": { "type": "string", "pattern": "^\\w+$", "title": "Ccd Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/cache_entries": { "get": { "summary": "List Cache Entries", "operationId": "list_cache_entries", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/CacheEntry" }, "type": "array", "title": "Response List Cache Entries Api Cache Entries Get" } } } } } } }, "/api/cache_entries/*": { "delete": { "summary": "Delete All Cache Entries", "operationId": "delete_all_cache_entries", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/cache_entries/{visit_name}": { "delete": { "summary": "Delete Cache Entry", "operationId": "delete_cache_entry", "parameters": [ { "name": "visit_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Visit Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/storage": { "get": { "summary": "List Storage Entries", "operationId": "list_storage_entries", "parameters": [ { "name": "path", "in": "query", "required": true, "schema": { "type": "string", "title": "Path" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Entry" }, "title": "Response List Storage Entries Api Storage Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } } }, "components": { "schemas": { "AmpMetadata": { "properties": { "amp_id": { "type": "integer", "title": "Amp Id" }, "bbox": { "$ref": "#/components/schemas/BBox" } }, "type": "object", "required": [ "amp_id", "bbox" ], "title": "AmpMetadata" }, "BBox": { "properties": { "miny": { "type": "number", "title": "Miny" }, "maxy": { "type": "number", "title": "Maxy" }, "minx": { "type": "number", "title": "Minx" }, "maxx": { "type": "number", "title": "Maxx" } }, "type": "object", "required": [ "miny", "maxy", "minx", "maxx" ], "title": "BBox" }, "CacheEntry": { "properties": { "visit_name": { "type": "string", "title": "Visit Name" }, "ready": { "type": "boolean", "title": "Ready" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "disk_usage": { "type": "integer", "title": "Disk Usage" } }, "type": "object", "required": [ "visit_name", "ready", "created_at", "disk_usage" ], "title": "CacheEntry" }, "CardType": { "prefixItems": [ { "type": "string" }, { "type": "string" }, { "type": "string" }, { "type": "string" } ], "type": "array", "maxItems": 4, "minItems": 4 }, "CcdDataTypeConfig": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "display_name": { "type": "string", "title": "Display Name" }, "collections": { "items": { "type": "string" }, "type": "array", "title": "Collections" }, "data_id_key": { "type": "string", "title": "Data Id Key", "default": "exposure" }, "order_by": { "items": { "type": "string" }, "type": "array", "title": "Order By", "default": [ "-exposure" ] }, "partial": { "type": "boolean", "title": "Partial", "default": false }, "repository_name": { "type": "string", "title": "Repository Name", "default": "embargo" }, "instrument": { "type": "string", "title": "Instrument", "default": "LSSTCam" } }, "type": "object", "required": [ "id", "name", "display_name", "collections" ], "title": "CcdDataTypeConfig", "description": "CCD\u30c7\u30fc\u30bf\u30bf\u30a4\u30d7\u306e\u8a2d\u5b9a" }, "CcdMetadata": { "properties": { "ccd_name": { "type": "string", "title": "Ccd Name" }, "image_stat": { "$ref": "#/components/schemas/ImageStat" }, "amps": { "items": { "$ref": "#/components/schemas/AmpMetadata" }, "type": "array", "title": "Amps" }, "bbox": { "$ref": "#/components/schemas/BBox" } }, "type": "object", "required": [ "ccd_name", "image_stat", "amps", "bbox" ], "title": "CcdMetadata" }, "ContainerStatus": { "properties": { "container_name": { "type": "string", "title": "Container Name", "description": "Container hostname" }, "memory_max": { "type": "integer", "title": "Memory Max", "description": "Memory limit in bytes (0 if unlimited)" }, "memory_current": { "type": "integer", "title": "Memory Current", "description": "Current total memory usage in bytes" }, "memory_stats": { "anyOf": [ { "$ref": "#/components/schemas/MemoryStats" }, { "type": "null" } ], "description": "Detailed memory breakdown from cgroup memory.stat" }, "cpu_max": { "type": "integer", "title": "Cpu Max", "description": "CPU quota in microseconds per period (0 if unlimited)" }, "cpu_current": { "type": "integer", "title": "Cpu Current", "description": "Accumulated CPU usage time in microseconds since container start" }, "uptime": { "type": "number", "title": "Uptime", "description": "Container uptime in seconds since boot" } }, "type": "object", "required": [ "container_name", "memory_max", "memory_current", "memory_stats", "cpu_max", "cpu_current", "uptime" ], "title": "ContainerStatus", "description": "System status of a container." }, "ContextMenuTemplate": { "properties": { "name": { "type": "string", "title": "Name" }, "template": { "type": "string", "title": "Template" }, "is_url": { "type": "boolean", "title": "Is Url" } }, "type": "object", "required": [ "name", "template", "is_url" ], "title": "ContextMenuTemplate" }, "CreateQuicklookRequest": { "properties": { "visit": { "type": "string", "title": "Visit" } }, "type": "object", "required": [ "visit" ], "title": "CreateQuicklookRequest" }, "DataSourceCcdMetadata": { "properties": { "visit_name": { "type": "string", "title": "Visit Name" }, "ccd_name": { "type": "string", "title": "Ccd Name" }, "detector": { "type": "integer", "title": "Detector" }, "exposure": { "type": "integer", "title": "Exposure" }, "day_obs": { "type": "integer", "title": "Day Obs" }, "uuid": { "type": "string", "title": "Uuid" } }, "type": "object", "required": [ "visit_name", "ccd_name", "detector", "exposure", "day_obs", "uuid" ], "title": "DataSourceCcdMetadata" }, "Entry": { "properties": { "name": { "type": "string", "title": "Name" }, "type": { "type": "string", "enum": [ "directory", "file" ], "title": "Type" }, "size": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Size" } }, "type": "object", "required": [ "name", "type", "size" ], "title": "Entry" }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "HeaderType": { "items": { "$ref": "#/components/schemas/CardType" }, "type": "array" }, "ImageStat": { "properties": { "median": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Median" }, "mad": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Mad" }, "shape": { "items": { "type": "integer" }, "type": "array", "title": "Shape" } }, "type": "object", "required": [ "median", "mad", "shape" ], "title": "ImageStat" }, "Job": { "properties": { "visit": { "type": "string", "title": "Visit" }, "id": { "type": "string", "title": "Id" } }, "type": "object", "required": [ "visit" ], "title": "Job" }, "JobStatus": { "properties": { "job": { "$ref": "#/components/schemas/Job" }, "stage": { "type": "string", "enum": [ "queued", "generate_single_fits_tiles", "merge_tiles", "upload_to_object_storage", "ready", "error" ], "title": "Stage", "default": "queued" }, "generate_single_fits_tiles": { "additionalProperties": { "$ref": "#/components/schemas/Progress" }, "type": "object", "title": "Generate Single Fits Tiles" }, "merge_tiles": { "additionalProperties": { "$ref": "#/components/schemas/Progress" }, "type": "object", "title": "Merge Tiles" }, "transfer_tiles": { "additionalProperties": { "$ref": "#/components/schemas/Progress" }, "type": "object", "title": "Transfer Tiles" }, "error_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error Message" } }, "type": "object", "required": [ "job" ], "title": "JobStatus" }, "JobStatusList": { "additionalProperties": { "$ref": "#/components/schemas/JobStatus" }, "type": "object" }, "MemoryStats": { "properties": { "anon": { "type": "integer", "title": "Anon", "description": "Anonymous memory usage in bytes (private memory not backed by files)" }, "file": { "type": "integer", "title": "File", "description": "File-backed memory usage in bytes (page cache)" }, "kernel": { "type": "integer", "title": "Kernel", "description": "Kernel memory usage in bytes" }, "slab": { "type": "integer", "title": "Slab", "description": "Slab memory usage in bytes (kernel data structures)" }, "sock": { "type": "integer", "title": "Sock", "description": "Socket buffer memory usage in bytes" }, "shmem": { "type": "integer", "title": "Shmem", "description": "Shared memory usage in bytes" }, "file_mapped": { "type": "integer", "title": "File Mapped", "description": "Memory-mapped file pages in bytes" }, "file_dirty": { "type": "integer", "title": "File Dirty", "description": "Dirty file-backed pages waiting to be written in bytes" }, "file_writeback": { "type": "integer", "title": "File Writeback", "description": "File-backed pages currently being written back in bytes" }, "inactive_anon": { "type": "integer", "title": "Inactive Anon", "description": "Inactive anonymous memory in bytes (candidates for swapping)" }, "active_anon": { "type": "integer", "title": "Active Anon", "description": "Active anonymous memory in bytes (recently accessed)" }, "inactive_file": { "type": "integer", "title": "Inactive File", "description": "Inactive file-backed memory in bytes (candidates for reclaim)" }, "active_file": { "type": "integer", "title": "Active File", "description": "Active file-backed memory in bytes (recently accessed)" }, "unevictable": { "type": "integer", "title": "Unevictable", "description": "Unevictable memory in bytes (locked, cannot be swapped)" } }, "type": "object", "required": [ "anon", "file", "kernel", "slab", "sock", "shmem", "file_mapped", "file_dirty", "file_writeback", "inactive_anon", "active_anon", "inactive_file", "active_file", "unevictable" ], "title": "MemoryStats", "description": "Detailed memory statistics from cgroup memory.stat." }, "Progress": { "properties": { "total": { "type": "integer", "title": "Total" }, "count": { "type": "integer", "title": "Count", "default": 0 } }, "type": "object", "required": [ "total" ], "title": "Progress" }, "QuicklookMetadata": { "anyOf": [ { "$ref": "#/components/schemas/QuicklookMetadataReady" }, { "$ref": "#/components/schemas/QuicklookMetadataProgress" }, { "$ref": "#/components/schemas/QuicklookMetadataPending" }, { "$ref": "#/components/schemas/QuicklookMetadataError" } ] }, "QuicklookMetadataError": { "properties": { "visit_name": { "type": "string", "title": "Visit Name" }, "type": { "type": "string", "const": "error", "title": "Type", "default": "error" } }, "type": "object", "required": [ "visit_name" ], "title": "QuicklookMetadataError" }, "QuicklookMetadataPending": { "properties": { "visit_name": { "type": "string", "title": "Visit Name" }, "type": { "type": "string", "const": "pending", "title": "Type", "default": "pending" } }, "type": "object", "required": [ "visit_name" ], "title": "QuicklookMetadataPending" }, "QuicklookMetadataProgress": { "properties": { "visit_name": { "type": "string", "title": "Visit Name" }, "progress": { "additionalProperties": { "$ref": "#/components/schemas/Progress" }, "type": "object", "title": "Progress" }, "type": { "type": "string", "const": "progress", "title": "Type", "default": "progress" } }, "type": "object", "required": [ "visit_name", "progress" ], "title": "QuicklookMetadataProgress" }, "QuicklookMetadataReady": { "properties": { "visit_name": { "type": "string", "title": "Visit Name" }, "ccd_metadata_list": { "items": { "$ref": "#/components/schemas/CcdMetadata" }, "type": "array", "title": "Ccd Metadata List" }, "wcs": { "additionalProperties": true, "type": "object", "title": "Wcs" }, "type": { "type": "string", "const": "ready", "title": "Type", "default": "ready" } }, "type": "object", "required": [ "visit_name", "ccd_metadata_list", "wcs" ], "title": "QuicklookMetadataReady" }, "SystemInfo": { "properties": { "admin_page": { "type": "boolean", "title": "Admin Page" }, "context_menu_templates": { "items": { "$ref": "#/components/schemas/ContextMenuTemplate" }, "type": "array", "title": "Context Menu Templates" }, "max_object_storage_usage": { "type": "integer", "title": "Max Object Storage Usage" }, "ccd_data_types": { "items": { "$ref": "#/components/schemas/CcdDataTypeConfig" }, "type": "array", "title": "Ccd Data Types" } }, "type": "object", "required": [ "admin_page", "context_menu_templates", "max_object_storage_usage", "ccd_data_types" ], "title": "SystemInfo" }, "SystemStatus": { "properties": { "frontend": { "$ref": "#/components/schemas/ContainerStatus" }, "coordinator": { "$ref": "#/components/schemas/ContainerStatus" }, "generators": { "additionalProperties": { "$ref": "#/components/schemas/ContainerStatus" }, "type": "object", "title": "Generators" } }, "type": "object", "required": [ "frontend", "coordinator", "generators" ], "title": "SystemStatus", "description": "System status including frontend, coordinator, and generators." }, "ValidationError": { "properties": { "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "type": "array", "title": "Location" }, "msg": { "type": "string", "title": "Message" }, "type": { "type": "string", "title": "Error Type" } }, "type": "object", "required": [ "loc", "msg", "type" ], "title": "ValidationError" }, "VisitEntry": { "properties": { "id": { "type": "string", "title": "Id" }, "day_obs": { "type": "integer", "title": "Day Obs" }, "physical_filter": { "type": "string", "title": "Physical Filter" }, "obs_id": { "type": "string", "title": "Obs Id" }, "exposure_time": { "type": "number", "title": "Exposure Time" }, "science_program": { "type": "string", "title": "Science Program" }, "observation_type": { "type": "string", "title": "Observation Type" }, "observation_reason": { "type": "string", "title": "Observation Reason" }, "target_name": { "type": "string", "title": "Target Name" } }, "type": "object", "required": [ "id", "day_obs", "physical_filter", "obs_id", "exposure_time", "science_program", "observation_type", "observation_reason", "target_name" ], "title": "VisitEntry" } } } }