From d26fc23f3e866a9bf1a3fb612f63f177de5cb4cb Mon Sep 17 00:00:00 2001 From: Val Redchenko Date: Thu, 16 Apr 2026 15:46:11 +0100 Subject: [PATCH] chore: sync smartem-decisions OpenAPI spec to latest main MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Regenerated from smartem-decisions@2c75a79 (fix: populate ATLAS_CREATED event id from atlas_id, not name). The checked-in spec had been frozen at 0.1.dev276+g1b7ed28d6.d20250818 (August 2025) because there is no automation wired up between backend releases and this copy. Eight months of endpoint and schema additions were invisible to every consumer that pulls this file — the frontend's Orval client regen (npm run api:update in packages/api) among them. Delta vs previous spec: Paths: 25 -> 58 (+33 added, 0 removed) Schemas: 30 -> 51 (+21 added, 0 removed) No path or schema removals, so this is an additive-only sync; existing generated clients will not break on regeneration. This is the one-shot catch-up. Automation of future regeneration is tracked separately (smartem-decisions#253); that work will land a GitHub Actions workflow that keeps this file in sync on every stable smartem-decisions release. --- docs/api/smartem/swagger.json | 10512 ++++++++++++++++++++------------ 1 file changed, 6576 insertions(+), 3936 deletions(-) diff --git a/docs/api/smartem/swagger.json b/docs/api/smartem/swagger.json index 4281245..28266c1 100644 --- a/docs/api/smartem/swagger.json +++ b/docs/api/smartem/swagger.json @@ -1,1775 +1,2757 @@ { - "openapi": "3.1.0", - "info": { - "title": "SmartEM Decisions Backend API", - "description": "API for accessing and managing electron microscopy data", - "version": "0.1.dev276+g1b7ed28d6.d20250818" - }, - "paths": { - "/status": { - "get": { - "summary": "Get Status", - "description": "Get API status and configuration information", - "operationId": "get_status_status_get", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} + "components": { + "schemas": { + "AcquisitionCreateRequest": { + "properties": { + "atlas_path": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - } - } - }, - "/health": { - "get": { - "summary": "Get Health", - "description": "Health check endpoint with actual connectivity checks", - "operationId": "get_health_health_get", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} + ], + "title": "Atlas Path" + }, + "clustering_mode": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - } - } - }, - "/acquisitions": { - "get": { - "summary": "Get Acquisitions", - "description": "Get all acquisitions", - "operationId": "get_acquisitions_acquisitions_get", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "items": { - "$ref": "#/components/schemas/AcquisitionResponse" - }, - "type": "array", - "title": "Response Get Acquisitions Acquisitions Get" - } + ], + "title": "Clustering Mode" + }, + "clustering_radius": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - } - }, - "post": { - "summary": "Create Acquisition", - "description": "Create a new acquisition", - "operationId": "create_acquisition_acquisitions_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AcquisitionCreateRequest" + ], + "title": "Clustering Radius" + }, + "computer_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "Computer Name" }, - "required": true - }, - "responses": { - "201": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AcquisitionResponse" - } + "end_time": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "End Time" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "instrument_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - } - } - }, - "/acquisitions/{acquisition_uuid}": { - "get": { - "summary": "Get Acquisition", - "description": "Get a single acquisition by ID", - "operationId": "get_acquisition_acquisitions__acquisition_uuid__get", - "parameters": [ - { - "name": "acquisition_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Acquisition Uuid" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AcquisitionResponse" - } + ], + "title": "Instrument Id" + }, + "instrument_model": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "Instrument Model" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - } - }, - "put": { - "summary": "Update Acquisition", - "description": "Update an acquisition", - "operationId": "update_acquisition_acquisitions__acquisition_uuid__put", - "parameters": [ - { - "name": "acquisition_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Acquisition Uuid" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AcquisitionUpdateRequest" + ], + "title": "Name" + }, + "paused_time": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AcquisitionResponse" - } + ], + "title": "Paused Time" + }, + "start_time": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "Start Time" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "status": { + "anyOf": [ + { + "$ref": "#/components/schemas/AcquisitionStatus" + }, + { + "type": "null" } - } - } - } - }, - "delete": { - "summary": "Delete Acquisition", - "description": "Delete an acquisition", - "operationId": "delete_acquisition_acquisitions__acquisition_uuid__delete", - "parameters": [ - { - "name": "acquisition_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Acquisition Uuid" - } - } - ], - "responses": { - "204": { - "description": "Successful Response" + ] }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/grids": { - "get": { - "summary": "Get Grids", - "description": "Get all grids", - "operationId": "get_grids_grids_get", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "items": { - "$ref": "#/components/schemas/GridResponse" - }, - "type": "array", - "title": "Response Get Grids Grids Get" - } + "storage_path": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - } - } - }, - "/grids/{grid_uuid}": { - "get": { - "summary": "Get Grid", - "description": "Get a single grid by ID", - "operationId": "get_grid_grids__grid_uuid__get", - "parameters": [ - { - "name": "grid_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Grid Uuid" - } + ], + "title": "Storage Path" + }, + "uuid": { + "title": "Uuid", + "type": "string" } + }, + "required": [ + "uuid" ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GridResponse" - } + "title": "AcquisitionCreateRequest", + "type": "object" + }, + "AcquisitionResponse": { + "properties": { + "atlas_path": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "Atlas Path" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "clustering_mode": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - } - }, - "put": { - "summary": "Update Grid", - "description": "Update a grid", - "operationId": "update_grid_grids__grid_uuid__put", - "parameters": [ - { - "name": "grid_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Grid Uuid" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GridUpdateRequest" + ], + "title": "Clustering Mode" + }, + "clustering_radius": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GridResponse" - } + ], + "title": "Clustering Radius" + }, + "computer_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "Computer Name" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "end_time": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" } - } - } - } - }, - "delete": { - "summary": "Delete Grid", - "description": "Delete a grid by publishing to RabbitMQ", - "operationId": "delete_grid_grids__grid_uuid__delete", - "parameters": [ - { - "name": "grid_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Grid Uuid" - } - } - ], - "responses": { - "204": { - "description": "Successful Response" + ], + "title": "End Time" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "instrument_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - } - } - }, - "/acquisitions/{acquisition_uuid}/grids": { - "get": { - "summary": "Get Acquisition Grids", - "description": "Get all grids for a specific acquisition", - "operationId": "get_acquisition_grids_acquisitions__acquisition_uuid__grids_get", - "parameters": [ - { - "name": "acquisition_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Acquisition Uuid" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GridResponse" - }, - "title": "Response Get Acquisition Grids Acquisitions Acquisition Uuid Grids Get" - } + ], + "title": "Instrument Id" + }, + "instrument_model": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "Instrument Model" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "name": { + "title": "Name", + "type": "string" + }, + "paused_time": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" } - } - } - } - }, - "post": { - "summary": "Create Acquisition Grid", - "description": "Create a new grid for a specific acquisition", - "operationId": "create_acquisition_grid_acquisitions__acquisition_uuid__grids_post", - "parameters": [ - { - "name": "acquisition_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Acquisition Uuid" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GridCreateRequest" + ], + "title": "Paused Time" + }, + "start_time": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" } - } - } - }, - "responses": { - "201": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GridResponse" - } + ], + "title": "Start Time" + }, + "status": { + "anyOf": [ + { + "$ref": "#/components/schemas/AcquisitionStatus" + }, + { + "type": "null" } - } + ] }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "storage_path": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - } - } - }, - "/grids/{grid_uuid}/registered": { - "post": { - "summary": "Grid Registered", - "description": "All squares on a grid have been registered at low mag", - "operationId": "grid_registered_grids__grid_uuid__registered_post", - "parameters": [ - { - "name": "grid_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Grid Uuid" - } + ], + "title": "Storage Path" + }, + "uuid": { + "title": "Uuid", + "type": "string" } + }, + "required": [ + "uuid", + "name", + "status", + "start_time", + "end_time", + "paused_time", + "storage_path", + "atlas_path", + "clustering_mode", + "clustering_radius", + "instrument_model", + "instrument_id", + "computer_name" ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "boolean", - "title": "Response Grid Registered Grids Grid Uuid Registered Post" - } + "title": "AcquisitionResponse", + "type": "object" + }, + "AcquisitionStatus": { + "enum": [ + "planned", + "started", + "completed", + "paused", + "abandoned" + ], + "title": "AcquisitionStatus", + "type": "string" + }, + "AcquisitionUpdateRequest": { + "properties": { + "atlas_path": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "Atlas Path" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/atlases": { - "get": { - "summary": "Get Atlases", - "description": "Get all atlases", - "operationId": "get_atlases_atlases_get", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "items": { - "$ref": "#/components/schemas/AtlasResponse" - }, - "type": "array", - "title": "Response Get Atlases Atlases Get" - } + "clustering_mode": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - } - } - }, - "/atlases/{atlas_uuid}": { - "get": { - "summary": "Get Atlas", - "description": "Get a single atlas by ID", - "operationId": "get_atlas_atlases__atlas_uuid__get", - "parameters": [ - { - "name": "atlas_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Atlas Uuid" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AtlasResponse" - } + ], + "title": "Clustering Mode" + }, + "clustering_radius": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "Clustering Radius" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "computer_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - } - }, - "put": { - "summary": "Update Atlas", - "description": "Update an atlas", - "operationId": "update_atlas_atlases__atlas_uuid__put", - "parameters": [ - { - "name": "atlas_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Atlas Uuid" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AtlasUpdateRequest" + ], + "title": "Computer Name" + }, + "end_time": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AtlasResponse" - } + ], + "title": "End Time" + }, + "instrument_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "Instrument Id" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "instrument_model": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - } - }, - "delete": { - "summary": "Delete Atlas", - "description": "Delete an atlas by publishing to RabbitMQ", - "operationId": "delete_atlas_atlases__atlas_uuid__delete", - "parameters": [ - { - "name": "atlas_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Atlas Uuid" - } - } - ], - "responses": { - "204": { - "description": "Successful Response" + ], + "title": "Instrument Model" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - } - } - }, - "/grids/{grid_uuid}/atlas": { - "get": { - "summary": "Get Grid Atlas", - "description": "Get the atlas for a specific grid", - "operationId": "get_grid_atlas_grids__grid_uuid__atlas_get", - "parameters": [ - { - "name": "grid_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Grid Uuid" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AtlasResponse" - } + ], + "title": "Name" + }, + "paused_time": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "Paused Time" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "start_time": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" } - } - } - } - }, - "post": { - "summary": "Create Grid Atlas", - "description": "Create a new atlas for a grid", - "operationId": "create_grid_atlas_grids__grid_uuid__atlas_post", - "parameters": [ - { - "name": "grid_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Grid Uuid" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AtlasCreateRequest" + ], + "title": "Start Time" + }, + "status": { + "anyOf": [ + { + "$ref": "#/components/schemas/AcquisitionStatus" + }, + { + "type": "null" } - } - } - }, - "responses": { - "201": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AtlasResponse" - } + ] + }, + "storage_path": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "Storage Path" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "Uuid" } - } - } - }, - "/atlas-tiles": { - "get": { - "summary": "Get Atlas Tiles", - "description": "Get all atlas tiles", - "operationId": "get_atlas_tiles_atlas_tiles_get", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "items": { - "$ref": "#/components/schemas/AtlasTileResponse" - }, - "type": "array", - "title": "Response Get Atlas Tiles Atlas Tiles Get" - } + }, + "title": "AcquisitionUpdateRequest", + "type": "object" + }, + "AgentInstructionAcknowledgement": { + "additionalProperties": false, + "description": "Request model for instruction acknowledgements from agents", + "properties": { + "error_message": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - } - } - }, - "/atlas-tiles/{tile_uuid}": { - "get": { - "summary": "Get Atlas Tile", - "description": "Get a single atlas tile by ID", - "operationId": "get_atlas_tile_atlas_tiles__tile_uuid__get", - "parameters": [ - { - "name": "tile_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Tile Uuid" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AtlasTileResponse" - } + ], + "title": "Error Message" + }, + "processed_at": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "Processed At" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "processing_time_ms": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" } - } + ], + "title": "Processing Time Ms" + }, + "result": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Result" + }, + "status": { + "enum": [ + "received", + "processed", + "failed", + "declined" + ], + "title": "Status", + "type": "string" } - } + }, + "required": [ + "status" + ], + "title": "AgentInstructionAcknowledgement", + "type": "object" }, - "put": { - "summary": "Update Atlas Tile", - "description": "Update an atlas tile", - "operationId": "update_atlas_tile_atlas_tiles__tile_uuid__put", - "parameters": [ - { - "name": "tile_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Tile Uuid" - } + "AgentInstructionAcknowledgementResponse": { + "description": "Response model for instruction acknowledgement confirmations", + "properties": { + "acknowledged_at": { + "title": "Acknowledged At", + "type": "string" + }, + "agent_id": { + "title": "Agent Id", + "type": "string" + }, + "instruction_id": { + "title": "Instruction Id", + "type": "string" + }, + "session_id": { + "title": "Session Id", + "type": "string" + }, + "status": { + "title": "Status", + "type": "string" } + }, + "required": [ + "status", + "instruction_id", + "acknowledged_at", + "agent_id", + "session_id" ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AtlasTileUpdateRequest" + "title": "AgentInstructionAcknowledgementResponse", + "type": "object" + }, + "AtlasCreateRequest": { + "properties": { + "acquisition_date": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AtlasTileResponse" - } + ], + "title": "Acquisition Date" + }, + "atlas_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "Atlas Id" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - } - }, - "delete": { - "summary": "Delete Atlas Tile", - "description": "Delete an atlas tile by publishing to RabbitMQ", - "operationId": "delete_atlas_tile_atlas_tiles__tile_uuid__delete", - "parameters": [ - { - "name": "tile_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Tile Uuid" - } - } - ], - "responses": { - "204": { - "description": "Successful Response" + ], + "title": "Description" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "grid_uuid": { + "title": "Grid Uuid", + "type": "string" + }, + "name": { + "title": "Name", + "type": "string" + }, + "storage_folder": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - } - } - }, - "/atlases/{atlas_uuid}/tiles": { - "get": { - "summary": "Get Atlas Tiles By Atlas", - "description": "Get all tiles for a specific atlas", - "operationId": "get_atlas_tiles_by_atlas_atlases__atlas_uuid__tiles_get", - "parameters": [ - { - "name": "atlas_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Atlas Uuid" - } + ], + "title": "Storage Folder" + }, + "tiles": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/AtlasTileCreateRequest" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Tiles" + }, + "uuid": { + "title": "Uuid", + "type": "string" } + }, + "required": [ + "uuid", + "grid_uuid", + "name" ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AtlasTileResponse" - }, - "title": "Response Get Atlas Tiles By Atlas Atlases Atlas Uuid Tiles Get" - } + "title": "AtlasCreateRequest", + "type": "object" + }, + "AtlasResponse": { + "properties": { + "acquisition_date": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "Acquisition Date" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "atlas_id": { + "title": "Atlas Id", + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - } - }, - "post": { - "summary": "Create Atlas Tile For Atlas", - "description": "Create a new tile for a specific atlas", - "operationId": "create_atlas_tile_for_atlas_atlases__atlas_uuid__tiles_post", - "parameters": [ - { - "name": "atlas_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Atlas Uuid" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AtlasTileCreateRequest" + ], + "title": "Description" + }, + "grid_uuid": { + "title": "Grid Uuid", + "type": "string" + }, + "name": { + "title": "Name", + "type": "string" + }, + "storage_folder": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - }, - "responses": { - "201": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { + ], + "title": "Storage Folder" + }, + "tiles": { + "anyOf": [ + { + "items": { "$ref": "#/components/schemas/AtlasTileResponse" - } + }, + "type": "array" + }, + { + "type": "null" } - } + ], + "default": [], + "title": "Tiles" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/atlas-tiles/{tile_uuid}/gridsquares/{gridsquare_uuid}": { - "post": { - "summary": "Link Atlas Tile To Gridsquare", - "description": "Connect a grid square to a tile with its position information", - "operationId": "link_atlas_tile_to_gridsquare_atlas_tiles__tile_uuid__gridsquares__gridsquare_uuid__post", - "parameters": [ - { - "name": "tile_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Tile Uuid" - } - }, - { - "name": "gridsquare_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Gridsquare Uuid" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GridSquarePositionRequest" - } - } + "uuid": { + "title": "Uuid", + "type": "string" } }, - "responses": { - "201": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AtlasTileGridSquarePositionResponse" - } - } - } + "required": [ + "uuid", + "grid_uuid", + "atlas_id", + "acquisition_date", + "storage_folder", + "description", + "name" + ], + "title": "AtlasResponse", + "type": "object" + }, + "AtlasTileCreateRequest": { + "properties": { + "atlas_uuid": { + "title": "Atlas Uuid", + "type": "string" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "base_filename": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - } - } - }, - "/gridsquares": { - "get": { - "summary": "Get Gridsquares", - "description": "Get all grid squares", - "operationId": "get_gridsquares_gridsquares_get", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "items": { - "$ref": "#/components/schemas/GridSquareResponse" - }, - "type": "array", - "title": "Response Get Gridsquares Gridsquares Get" - } + ], + "title": "Base Filename" + }, + "file_format": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - } - } - }, - "/gridsquares/{gridsquare_uuid}": { - "get": { - "summary": "Get Gridsquare", - "description": "Get a single grid square by ID", - "operationId": "get_gridsquare_gridsquares__gridsquare_uuid__get", - "parameters": [ - { - "name": "gridsquare_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Gridsquare Uuid" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GridSquareResponse" - } + ], + "title": "File Format" + }, + "position_x": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" } - } + ], + "title": "Position X" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "position_y": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" } - } - } - } - }, - "put": { - "summary": "Update Gridsquare", - "description": "Update a grid square", - "operationId": "update_gridsquare_gridsquares__gridsquare_uuid__put", - "parameters": [ - { - "name": "gridsquare_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Gridsquare Uuid" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GridSquareUpdateRequest" + ], + "title": "Position Y" + }, + "size_x": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GridSquareResponse" - } + ], + "title": "Size X" + }, + "size_y": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" } - } + ], + "title": "Size Y" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "tile_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "Tile Id" + }, + "uuid": { + "title": "Uuid", + "type": "string" } - } + }, + "required": [ + "uuid", + "atlas_uuid" + ], + "title": "AtlasTileCreateRequest", + "type": "object" }, - "delete": { - "summary": "Delete Gridsquare", - "description": "Delete a grid square by publishing to RabbitMQ", - "operationId": "delete_gridsquare_gridsquares__gridsquare_uuid__delete", - "parameters": [ - { - "name": "gridsquare_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Gridsquare Uuid" - } + "AtlasTileGridSquarePositionResponse": { + "properties": { + "atlastile_uuid": { + "title": "Atlastile Uuid", + "type": "string" + }, + "center_x": { + "title": "Center X", + "type": "integer" + }, + "center_y": { + "title": "Center Y", + "type": "integer" + }, + "gridsquare_uuid": { + "title": "Gridsquare Uuid", + "type": "string" + }, + "size_height": { + "title": "Size Height", + "type": "integer" + }, + "size_width": { + "title": "Size Width", + "type": "integer" } + }, + "required": [ + "atlastile_uuid", + "gridsquare_uuid", + "center_x", + "center_y", + "size_width", + "size_height" ], - "responses": { - "204": { - "description": "Successful Response" + "title": "AtlasTileGridSquarePositionResponse", + "type": "object" + }, + "AtlasTileResponse": { + "properties": { + "atlas_uuid": { + "title": "Atlas Uuid", + "type": "string" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "base_filename": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - } - } - }, - "/grids/{grid_uuid}/gridsquares": { - "get": { - "summary": "Get Grid Gridsquares", - "description": "Get all grid squares for a specific grid", - "operationId": "get_grid_gridsquares_grids__grid_uuid__gridsquares_get", - "parameters": [ - { - "name": "grid_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Grid Uuid" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GridSquareResponse" - }, - "title": "Response Get Grid Gridsquares Grids Grid Uuid Gridsquares Get" - } + ], + "title": "Base Filename" + }, + "file_format": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "File Format" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "position_x": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" } - } - } - } - }, - "post": { - "summary": "Create Grid Gridsquare", - "description": "Create a new grid square for a specific grid", - "operationId": "create_grid_gridsquare_grids__grid_uuid__gridsquares_post", - "parameters": [ - { - "name": "grid_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Grid Uuid" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GridSquareCreateRequest" + ], + "title": "Position X" + }, + "position_y": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" } - } - } - }, - "responses": { - "201": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GridSquareResponse" - } + ], + "title": "Position Y" + }, + "size_x": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" } - } + ], + "title": "Size X" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "size_y": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" } - } - } - } - } - }, - "/gridsquares/{gridsquare_uuid}/registered": { - "post": { - "summary": "Gridsquare Registered", - "description": "All holes on a grid square have been registered at square mag", - "operationId": "gridsquare_registered_gridsquares__gridsquare_uuid__registered_post", - "parameters": [ - { - "name": "gridsquare_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Gridsquare Uuid" - } + ], + "title": "Size Y" + }, + "tile_id": { + "title": "Tile Id", + "type": "string" + }, + "uuid": { + "title": "Uuid", + "type": "string" } + }, + "required": [ + "uuid", + "atlas_uuid", + "tile_id", + "position_x", + "position_y", + "size_x", + "size_y", + "file_format", + "base_filename" ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "boolean", - "title": "Response Gridsquare Registered Gridsquares Gridsquare Uuid Registered Post" - } + "title": "AtlasTileResponse", + "type": "object" + }, + "AtlasTileUpdateRequest": { + "properties": { + "atlas_uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "Atlas Uuid" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/foilholes": { - "get": { - "summary": "Get Foilholes", - "description": "Get all foil holes", - "operationId": "get_foilholes_foilholes_get", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "items": { - "$ref": "#/components/schemas/FoilHoleResponse" - }, - "type": "array", - "title": "Response Get Foilholes Foilholes Get" - } + "base_filename": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - } - } - }, - "/foilholes/{foilhole_uuid}": { - "get": { - "summary": "Get Foilhole", - "description": "Get a single foil hole by ID", - "operationId": "get_foilhole_foilholes__foilhole_uuid__get", - "parameters": [ - { - "name": "foilhole_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Foilhole Uuid" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FoilHoleResponse" - } + ], + "title": "Base Filename" + }, + "file_format": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "File Format" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "position_x": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" } - } - } - } - }, - "put": { - "summary": "Update Foilhole", - "description": "Update a foil hole", - "operationId": "update_foilhole_foilholes__foilhole_uuid__put", - "parameters": [ - { - "name": "foilhole_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Foilhole Uuid" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FoilHoleUpdateRequest" + ], + "title": "Position X" + }, + "position_y": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FoilHoleResponse" - } + ], + "title": "Position Y" + }, + "size_x": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" } - } + ], + "title": "Size X" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "size_y": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" } - } + ], + "title": "Size Y" + }, + "tile_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Tile Id" + }, + "uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Uuid" } - } + }, + "title": "AtlasTileUpdateRequest", + "type": "object" }, - "delete": { - "summary": "Delete Foilhole", - "description": "Delete a foil hole by publishing to RabbitMQ", - "operationId": "delete_foilhole_foilholes__foilhole_uuid__delete", - "parameters": [ - { - "name": "foilhole_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Foilhole Uuid" - } - } - ], - "responses": { - "204": { - "description": "Successful Response" + "AtlasUpdateRequest": { + "properties": { + "acquisition_date": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Acquisition Date" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "atlas_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - } - } - } - }, - "/gridsquares/{gridsquare_uuid}/foilholes": { - "get": { - "summary": "Get Gridsquare Foilholes", - "description": "Get all foil holes for a specific grid square", - "operationId": "get_gridsquare_foilholes_gridsquares__gridsquare_uuid__foilholes_get", - "parameters": [ - { - "name": "gridsquare_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Gridsquare Uuid" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FoilHoleResponse" - }, - "title": "Response Get Gridsquare Foilholes Gridsquares Gridsquare Uuid Foilholes Get" - } + ], + "title": "Atlas Id" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "Description" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "grid_uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "Grid Uuid" + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Name" + }, + "storage_folder": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Storage Folder" + }, + "uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Uuid" } - } + }, + "title": "AtlasUpdateRequest", + "type": "object" }, - "post": { - "summary": "Create Gridsquare Foilhole", - "description": "Create a new foil hole for a specific grid square", - "operationId": "create_gridsquare_foilhole_gridsquares__gridsquare_uuid__foilholes_post", - "parameters": [ - { - "name": "gridsquare_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Gridsquare Uuid" - } + "CtfEstimationCompletedRequest": { + "properties": { + "ctf_max_res": { + "title": "Ctf Max Res", + "type": "number" } + }, + "required": [ + "ctf_max_res" ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FoilHoleCreateRequest" + "title": "CtfEstimationCompletedRequest", + "type": "object" + }, + "CtfEstimationRegisteredRequest": { + "properties": { + "metric_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } + ], + "title": "Metric Name" + }, + "quality": { + "title": "Quality", + "type": "boolean" } }, - "responses": { - "201": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FoilHoleResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "required": [ + "quality" + ], + "title": "CtfEstimationRegisteredRequest", + "type": "object" + }, + "FoilHoleCreateRequest": { + "properties": { + "center_x": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" } - } - } - } - } - }, - "/micrographs": { - "get": { - "summary": "Get Micrographs", - "description": "Get all micrographs", - "operationId": "get_micrographs_micrographs_get", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "items": { - "$ref": "#/components/schemas/MicrographResponse" - }, - "type": "array", - "title": "Response Get Micrographs Micrographs Get" - } + ], + "title": "Center X" + }, + "center_y": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" } - } - } - } - } - }, - "/micrographs/{micrograph_uuid}": { - "get": { - "summary": "Get Micrograph", - "description": "Get a single micrograph by ID", - "operationId": "get_micrograph_micrographs__micrograph_uuid__get", - "parameters": [ - { - "name": "micrograph_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Micrograph Uuid" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MicrographResponse" - } + ], + "title": "Center Y" + }, + "diameter": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" } - } + ], + "title": "Diameter" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "foilhole_id": { + "title": "Foilhole Id", + "type": "string" + }, + "gridsquare_id": { + "title": "Gridsquare Id", + "type": "string" + }, + "gridsquare_uuid": { + "title": "Gridsquare Uuid", + "type": "string" + }, + "is_near_grid_bar": { + "default": false, + "title": "Is Near Grid Bar", + "type": "boolean" + }, + "quality": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" } - } - } - } - }, - "put": { - "summary": "Update Micrograph", - "description": "Update a micrograph", - "operationId": "update_micrograph_micrographs__micrograph_uuid__put", - "parameters": [ - { - "name": "micrograph_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Micrograph Uuid" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MicrographUpdateRequest" + ], + "title": "Quality" + }, + "rotation": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MicrographResponse" - } + ], + "title": "Rotation" + }, + "size_height": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" } - } + ], + "title": "Size Height" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "size_width": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" } - } - } - } - }, - "delete": { - "summary": "Delete Micrograph", - "description": "Delete a micrograph by publishing to RabbitMQ", - "operationId": "delete_micrograph_micrographs__micrograph_uuid__delete", - "parameters": [ - { - "name": "micrograph_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Micrograph Uuid" - } - } - ], - "responses": { - "204": { - "description": "Successful Response" + ], + "title": "Size Width" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "status": { + "anyOf": [ + { + "$ref": "#/components/schemas/FoilHoleStatus" + }, + { + "type": "null" } - } + ] + }, + "uuid": { + "title": "Uuid", + "type": "string" + }, + "x_location": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "X Location" + }, + "x_stage_position": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "X Stage Position" + }, + "y_location": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Y Location" + }, + "y_stage_position": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Y Stage Position" } - } - } - }, - "/foilholes/{foilhole_uuid}/micrographs": { - "get": { - "summary": "Get Foilhole Micrographs", - "description": "Get all micrographs for a specific foil hole", - "operationId": "get_foilhole_micrographs_foilholes__foilhole_uuid__micrographs_get", - "parameters": [ - { - "name": "foilhole_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Foilhole Uuid" - } + }, + "required": [ + "uuid", + "foilhole_id", + "gridsquare_id", + "gridsquare_uuid" + ], + "title": "FoilHoleCreateRequest", + "type": "object" + }, + "FoilHoleResponse": { + "properties": { + "center_x": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Center X" + }, + "center_y": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Center Y" + }, + "diameter": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Diameter" + }, + "foilhole_id": { + "title": "Foilhole Id", + "type": "string" + }, + "gridsquare_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Gridsquare Id" + }, + "is_near_grid_bar": { + "title": "Is Near Grid Bar", + "type": "boolean" + }, + "quality": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Quality" + }, + "rotation": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Rotation" + }, + "size_height": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Size Height" + }, + "size_width": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Size Width" + }, + "status": { + "anyOf": [ + { + "$ref": "#/components/schemas/FoilHoleStatus" + }, + { + "type": "null" + } + ] + }, + "uuid": { + "title": "Uuid", + "type": "string" + }, + "x_location": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "X Location" + }, + "x_stage_position": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "X Stage Position" + }, + "y_location": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Y Location" + }, + "y_stage_position": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Y Stage Position" + } + }, + "required": [ + "uuid", + "gridsquare_id", + "foilhole_id", + "status", + "center_x", + "center_y", + "quality", + "rotation", + "size_width", + "size_height", + "x_location", + "y_location", + "x_stage_position", + "y_stage_position", + "diameter", + "is_near_grid_bar" + ], + "title": "FoilHoleResponse", + "type": "object" + }, + "FoilHoleStatus": { + "enum": [ + "none", + "micrographs detected" + ], + "title": "FoilHoleStatus", + "type": "string" + }, + "FoilHoleUpdateRequest": { + "properties": { + "center_x": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Center X" + }, + "center_y": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Center Y" + }, + "diameter": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Diameter" + }, + "foilhole_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Foilhole Id" + }, + "gridsquare_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Gridsquare Id" + }, + "gridsquare_uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Gridsquare Uuid" + }, + "is_near_grid_bar": { + "default": false, + "title": "Is Near Grid Bar", + "type": "boolean" + }, + "quality": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Quality" + }, + "rotation": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Rotation" + }, + "size_height": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Size Height" + }, + "size_width": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Size Width" + }, + "status": { + "anyOf": [ + { + "$ref": "#/components/schemas/FoilHoleStatus" + }, + { + "type": "null" + } + ] + }, + "uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Uuid" + }, + "x_location": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "X Location" + }, + "x_stage_position": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "X Stage Position" + }, + "y_location": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Y Location" + }, + "y_stage_position": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Y Stage Position" + } + }, + "title": "FoilHoleUpdateRequest", + "type": "object" + }, + "GridCreateRequest": { + "properties": { + "acquisition_uuid": { + "title": "Acquisition Uuid", + "type": "string" + }, + "atlas_dir": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Atlas Dir" + }, + "data_dir": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Data Dir" + }, + "name": { + "title": "Name", + "type": "string" + }, + "scan_end_time": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Scan End Time" + }, + "scan_start_time": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Scan Start Time" + }, + "status": { + "anyOf": [ + { + "$ref": "#/components/schemas/GridStatus" + }, + { + "type": "null" + } + ] + }, + "uuid": { + "title": "Uuid", + "type": "string" + } + }, + "required": [ + "uuid", + "name", + "acquisition_uuid" + ], + "title": "GridCreateRequest", + "type": "object" + }, + "GridResponse": { + "properties": { + "acquisition_uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Acquisition Uuid" + }, + "atlas_dir": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Atlas Dir" + }, + "data_dir": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Data Dir" + }, + "name": { + "title": "Name", + "type": "string" + }, + "scan_end_time": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Scan End Time" + }, + "scan_start_time": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Scan Start Time" + }, + "status": { + "anyOf": [ + { + "$ref": "#/components/schemas/GridStatus" + }, + { + "type": "null" + } + ] + }, + "uuid": { + "title": "Uuid", + "type": "string" + } + }, + "required": [ + "uuid", + "acquisition_uuid", + "status", + "name", + "data_dir", + "atlas_dir", + "scan_start_time", + "scan_end_time" + ], + "title": "GridResponse", + "type": "object" + }, + "GridSquare": { + "properties": { + "acquisition_datetime": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Acquisition Datetime" + }, + "applied_defocus": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Applied Defocus" + }, + "atlas_node_id": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Atlas Node Id" + }, + "center_x": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Center X" + }, + "center_y": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Center Y" + }, + "data_dir": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Data Dir" + }, + "defocus": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Defocus" + }, + "detector_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Detector Name" + }, + "grid_uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Grid Uuid" + }, + "gridsquare_id": { + "default": "", + "title": "Gridsquare Id", + "type": "string" + }, + "image_path": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Image Path" + }, + "magnification": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Magnification" + }, + "physical_x": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Physical X" + }, + "physical_y": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Physical Y" + }, + "pixel_size": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Pixel Size" + }, + "rotation": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Rotation" + }, + "selected": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Selected" + }, + "size_height": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Size Height" + }, + "size_width": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Size Width" + }, + "stage_position_x": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Stage Position X" + }, + "stage_position_y": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Stage Position Y" + }, + "stage_position_z": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Stage Position Z" + }, + "state": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "State" + }, + "status": { + "$ref": "#/components/schemas/GridSquareStatus", + "default": "none" + }, + "unusable": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Unusable" + }, + "uuid": { + "title": "Uuid", + "type": "string" + } + }, + "required": [ + "uuid" + ], + "title": "GridSquare", + "type": "object" + }, + "GridSquareBatchCreateRequest": { + "properties": { + "gridsquares": { + "items": { + "$ref": "#/components/schemas/GridSquareCreateRequest" + }, + "title": "Gridsquares", + "type": "array" + } + }, + "required": [ + "gridsquares" + ], + "title": "GridSquareBatchCreateRequest", + "type": "object" + }, + "GridSquareBatchCreateResponse": { + "description": "Response for bulk grid-square creation.", + "properties": { + "gridsquares": { + "items": { + "$ref": "#/components/schemas/GridSquareResponse" + }, + "title": "Gridsquares", + "type": "array" + } + }, + "required": [ + "gridsquares" + ], + "title": "GridSquareBatchCreateResponse", + "type": "object" + }, + "GridSquareCreateRequest": { + "properties": { + "acquisition_datetime": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Acquisition Datetime" + }, + "applied_defocus": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Applied Defocus" + }, + "atlas_node_id": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Atlas Node Id" + }, + "center_x": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Center X" + }, + "center_y": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Center Y" + }, + "data_dir": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Data Dir" + }, + "defocus": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Defocus" + }, + "detector_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Detector Name" + }, + "grid_uuid": { + "title": "Grid Uuid", + "type": "string" + }, + "gridsquare_id": { + "title": "Gridsquare Id", + "type": "string" + }, + "image_path": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Image Path" + }, + "lowmag": { + "default": false, + "title": "Lowmag", + "type": "boolean" + }, + "magnification": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Magnification" + }, + "physical_x": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Physical X" + }, + "physical_y": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Physical Y" + }, + "pixel_size": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Pixel Size" + }, + "rotation": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Rotation" + }, + "selected": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Selected" + }, + "size_height": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Size Height" + }, + "size_width": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Size Width" + }, + "stage_position_x": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Stage Position X" + }, + "stage_position_y": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Stage Position Y" + }, + "stage_position_z": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Stage Position Z" + }, + "state": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "State" + }, + "status": { + "anyOf": [ + { + "$ref": "#/components/schemas/GridSquareStatus" + }, + { + "type": "null" + } + ] + }, + "unusable": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Unusable" + }, + "uuid": { + "title": "Uuid", + "type": "string" } + }, + "required": [ + "uuid", + "gridsquare_id", + "grid_uuid" ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MicrographResponse" - }, - "title": "Response Get Foilhole Micrographs Foilholes Foilhole Uuid Micrographs Get" - } + "title": "GridSquareCreateRequest", + "type": "object" + }, + "GridSquarePositionRequest": { + "properties": { + "center_x": { + "title": "Center X", + "type": "integer" + }, + "center_y": { + "title": "Center Y", + "type": "integer" + }, + "gridsquare_uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Gridsquare Uuid" + }, + "size_height": { + "title": "Size Height", + "type": "integer" + }, + "size_width": { + "title": "Size Width", + "type": "integer" + } + }, + "required": [ + "center_x", + "center_y", + "size_width", + "size_height" + ], + "title": "GridSquarePositionRequest", + "type": "object" + }, + "GridSquareResponse": { + "properties": { + "acquisition_datetime": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Acquisition Datetime" + }, + "applied_defocus": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Applied Defocus" + }, + "atlas_node_id": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Atlas Node Id" + }, + "center_x": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Center X" + }, + "center_y": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Center Y" + }, + "data_dir": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Data Dir" + }, + "defocus": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Defocus" + }, + "detector_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Detector Name" + }, + "grid_uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Grid Uuid" + }, + "gridsquare_id": { + "title": "Gridsquare Id", + "type": "string" + }, + "image_path": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Image Path" + }, + "magnification": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Magnification" + }, + "physical_x": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Physical X" + }, + "physical_y": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Physical Y" + }, + "pixel_size": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Pixel Size" + }, + "rotation": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Rotation" + }, + "selected": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Selected" + }, + "size_height": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Size Height" + }, + "size_width": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" } - } + ], + "title": "Size Width" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "post": { - "summary": "Create Foilhole Micrograph", - "description": "Create a new micrograph for a specific foil hole", - "operationId": "create_foilhole_micrograph_foilholes__foilhole_uuid__micrographs_post", - "parameters": [ - { - "name": "foilhole_uuid", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Foilhole Uuid" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MicrographCreateRequest" + "stage_position_x": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" } - } - } - }, - "responses": { - "201": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MicrographResponse" - } + ], + "title": "Stage Position X" + }, + "stage_position_y": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" } - } + ], + "title": "Stage Position Y" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } + "stage_position_z": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" } - } - } - } - } - } - }, - "components": { - "schemas": { - "AcquisitionCreateRequest": { - "properties": { - "uuid": { - "type": "string", - "title": "Uuid" + ], + "title": "Stage Position Z" }, - "name": { + "state": { "anyOf": [ { "type": "string" @@ -1778,88 +2760,134 @@ "type": "null" } ], - "title": "Name" + "title": "State" }, "status": { "anyOf": [ { - "$ref": "#/components/schemas/AcquisitionStatus" + "$ref": "#/components/schemas/GridSquareStatus" }, { "type": "null" } ] }, - "start_time": { + "unusable": { "anyOf": [ { - "type": "string", - "format": "date-time" + "type": "boolean" }, { "type": "null" } ], - "title": "Start Time" + "title": "Unusable" }, - "end_time": { + "uuid": { + "title": "Uuid", + "type": "string" + } + }, + "required": [ + "uuid", + "gridsquare_id", + "grid_uuid", + "status", + "data_dir", + "atlas_node_id", + "state", + "rotation", + "image_path", + "selected", + "unusable", + "stage_position_x", + "stage_position_y", + "stage_position_z", + "center_x", + "center_y", + "physical_x", + "physical_y", + "size_width", + "size_height", + "acquisition_datetime", + "defocus", + "magnification", + "pixel_size", + "detector_name", + "applied_defocus" + ], + "title": "GridSquareResponse", + "type": "object" + }, + "GridSquareStatus": { + "enum": [ + "none", + "all foil holes registered", + "foil holes decision started", + "foil holes decision completed" + ], + "title": "GridSquareStatus", + "type": "string" + }, + "GridSquareUpdateRequest": { + "properties": { + "acquisition_datetime": { "anyOf": [ { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, { "type": "null" } ], - "title": "End Time" + "title": "Acquisition Datetime" }, - "paused_time": { + "applied_defocus": { "anyOf": [ { - "type": "string", - "format": "date-time" + "type": "number" }, { "type": "null" } ], - "title": "Paused Time" + "title": "Applied Defocus" }, - "storage_path": { + "atlas_node_id": { "anyOf": [ { - "type": "string" + "type": "integer" }, { "type": "null" } ], - "title": "Storage Path" + "title": "Atlas Node Id" }, - "atlas_path": { + "center_x": { "anyOf": [ { - "type": "string" + "type": "integer" }, { "type": "null" } ], - "title": "Atlas Path" + "title": "Center X" }, - "clustering_mode": { + "center_y": { "anyOf": [ { - "type": "string" + "type": "integer" }, { "type": "null" } ], - "title": "Clustering Mode" + "title": "Center Y" }, - "clustering_radius": { + "data_dir": { "anyOf": [ { "type": "string" @@ -1868,20 +2896,20 @@ "type": "null" } ], - "title": "Clustering Radius" + "title": "Data Dir" }, - "instrument_model": { + "defocus": { "anyOf": [ { - "type": "string" + "type": "number" }, { "type": "null" } ], - "title": "Instrument Model" + "title": "Defocus" }, - "instrument_id": { + "detector_name": { "anyOf": [ { "type": "string" @@ -1890,9 +2918,9 @@ "type": "null" } ], - "title": "Instrument Id" + "title": "Detector Name" }, - "computer_name": { + "grid_uuid": { "anyOf": [ { "type": "string" @@ -1901,192 +2929,157 @@ "type": "null" } ], - "title": "Computer Name" - } - }, - "type": "object", - "required": [ - "uuid" - ], - "title": "AcquisitionCreateRequest" - }, - "AcquisitionResponse": { - "properties": { - "uuid": { - "type": "string", - "title": "Uuid" + "title": "Grid Uuid" }, - "name": { - "type": "string", - "title": "Name" + "gridsquare_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Gridsquare Id" }, - "status": { + "image_path": { "anyOf": [ { - "$ref": "#/components/schemas/AcquisitionStatus" + "type": "string" }, { "type": "null" } - ] + ], + "title": "Image Path" }, - "start_time": { + "lowmag": { + "default": false, + "title": "Lowmag", + "type": "boolean" + }, + "magnification": { "anyOf": [ { - "type": "string", - "format": "date-time" + "type": "number" }, { "type": "null" } ], - "title": "Start Time" + "title": "Magnification" }, - "end_time": { + "physical_x": { "anyOf": [ { - "type": "string", - "format": "date-time" + "type": "number" }, { "type": "null" } ], - "title": "End Time" + "title": "Physical X" }, - "paused_time": { + "physical_y": { "anyOf": [ { - "type": "string", - "format": "date-time" + "type": "number" }, { "type": "null" } ], - "title": "Paused Time" + "title": "Physical Y" }, - "storage_path": { + "pixel_size": { "anyOf": [ { - "type": "string" + "type": "number" }, { "type": "null" } ], - "title": "Storage Path" + "title": "Pixel Size" }, - "atlas_path": { + "rotation": { "anyOf": [ { - "type": "string" + "type": "number" }, { "type": "null" } ], - "title": "Atlas Path" + "title": "Rotation" }, - "clustering_mode": { + "selected": { "anyOf": [ { - "type": "string" + "type": "boolean" }, { "type": "null" } ], - "title": "Clustering Mode" + "title": "Selected" }, - "clustering_radius": { + "size_height": { "anyOf": [ { - "type": "string" + "type": "integer" }, { "type": "null" } ], - "title": "Clustering Radius" + "title": "Size Height" }, - "instrument_model": { + "size_width": { "anyOf": [ { - "type": "string" + "type": "integer" }, { "type": "null" } ], - "title": "Instrument Model" + "title": "Size Width" }, - "instrument_id": { + "stage_position_x": { "anyOf": [ { - "type": "string" + "type": "number" }, { "type": "null" } ], - "title": "Instrument Id" + "title": "Stage Position X" }, - "computer_name": { + "stage_position_y": { "anyOf": [ { - "type": "string" + "type": "number" }, { "type": "null" } ], - "title": "Computer Name" - } - }, - "type": "object", - "required": [ - "uuid", - "name", - "status", - "start_time", - "end_time", - "paused_time", - "storage_path", - "atlas_path", - "clustering_mode", - "clustering_radius", - "instrument_model", - "instrument_id", - "computer_name" - ], - "title": "AcquisitionResponse" - }, - "AcquisitionStatus": { - "type": "string", - "enum": [ - "planned", - "started", - "completed", - "paused", - "abandoned" - ], - "title": "AcquisitionStatus" - }, - "AcquisitionUpdateRequest": { - "properties": { - "uuid": { + "title": "Stage Position Y" + }, + "stage_position_z": { "anyOf": [ { - "type": "string" + "type": "number" }, { "type": "null" } ], - "title": "Uuid" + "title": "Stage Position Z" }, - "name": { + "state": { "anyOf": [ { "type": "string" @@ -2095,55 +3088,69 @@ "type": "null" } ], - "title": "Name" + "title": "State" }, "status": { "anyOf": [ { - "$ref": "#/components/schemas/AcquisitionStatus" + "$ref": "#/components/schemas/GridSquareStatus" }, { "type": "null" } ] }, - "start_time": { + "unusable": { "anyOf": [ { - "type": "string", - "format": "date-time" + "type": "boolean" }, { "type": "null" } ], - "title": "Start Time" + "title": "Unusable" }, - "end_time": { + "uuid": { "anyOf": [ { - "type": "string", - "format": "date-time" + "type": "string" }, { "type": "null" } ], - "title": "End Time" - }, - "paused_time": { + "title": "Uuid" + } + }, + "title": "GridSquareUpdateRequest", + "type": "object" + }, + "GridStatus": { + "enum": [ + "none", + "scan started", + "scan completed", + "grid squares decision started", + "grid squares decision completed" + ], + "title": "GridStatus", + "type": "string" + }, + "GridUpdateRequest": { + "properties": { + "acquisition_uuid": { "anyOf": [ { - "type": "string", - "format": "date-time" + "type": "string" }, { "type": "null" } ], - "title": "Paused Time" + "title": "Acquisition Uuid" }, - "storage_path": { + "atlas_dir": { "anyOf": [ { "type": "string" @@ -2152,9 +3159,9 @@ "type": "null" } ], - "title": "Storage Path" + "title": "Atlas Dir" }, - "atlas_path": { + "data_dir": { "anyOf": [ { "type": "string" @@ -2163,9 +3170,9 @@ "type": "null" } ], - "title": "Atlas Path" + "title": "Data Dir" }, - "clustering_mode": { + "name": { "anyOf": [ { "type": "string" @@ -2174,42 +3181,43 @@ "type": "null" } ], - "title": "Clustering Mode" + "title": "Name" }, - "clustering_radius": { + "scan_end_time": { "anyOf": [ { + "format": "date-time", "type": "string" }, { "type": "null" } ], - "title": "Clustering Radius" + "title": "Scan End Time" }, - "instrument_model": { + "scan_start_time": { "anyOf": [ { + "format": "date-time", "type": "string" }, { "type": "null" } ], - "title": "Instrument Model" + "title": "Scan Start Time" }, - "instrument_id": { + "status": { "anyOf": [ { - "type": "string" + "$ref": "#/components/schemas/GridStatus" }, { "type": "null" } - ], - "title": "Instrument Id" + ] }, - "computer_name": { + "uuid": { "anyOf": [ { "type": "string" @@ -2218,132 +3226,149 @@ "type": "null" } ], - "title": "Computer Name" + "title": "Uuid" } }, - "type": "object", - "title": "AcquisitionUpdateRequest" + "title": "GridUpdateRequest", + "type": "object" }, - "AtlasCreateRequest": { + "HTTPValidationError": { "properties": { - "uuid": { - "type": "string", - "title": "Uuid" + "detail": { + "items": { + "$ref": "#/components/schemas/ValidationError" + }, + "title": "Detail", + "type": "array" + } + }, + "title": "HTTPValidationError", + "type": "object" + }, + "LatentRepresentationResponse": { + "properties": { + "foilhole_uuid": { + "default": "", + "title": "Foilhole Uuid", + "type": "string" }, - "atlas_id": { + "gridsquare_uuid": { + "default": "", + "title": "Gridsquare Uuid", + "type": "string" + }, + "index": { "anyOf": [ { - "type": "string" + "type": "integer" }, { "type": "null" } ], - "title": "Atlas Id" + "title": "Index" }, - "grid_uuid": { - "type": "string", - "title": "Grid Uuid" - }, - "acquisition_date": { + "x": { "anyOf": [ { - "type": "string", - "format": "date-time" + "type": "number" }, { "type": "null" } ], - "title": "Acquisition Date" + "title": "X" }, - "storage_folder": { + "y": { "anyOf": [ { - "type": "string" + "type": "number" }, { "type": "null" } ], - "title": "Storage Folder" - }, - "description": { + "title": "Y" + } + }, + "required": [ + "x", + "y", + "index" + ], + "title": "LatentRepresentationResponse", + "type": "object" + }, + "MicrographCreateRequest": { + "properties": { + "acquisition_datetime": { "anyOf": [ { + "format": "date-time", "type": "string" }, { "type": "null" } ], - "title": "Description" - }, - "name": { - "type": "string", - "title": "Name" + "title": "Acquisition Datetime" }, - "tiles": { + "average_motion": { "anyOf": [ { - "items": { - "$ref": "#/components/schemas/AtlasTileCreateRequest" - }, - "type": "array" + "type": "number" }, { "type": "null" } ], - "title": "Tiles" - } - }, - "type": "object", - "required": [ - "uuid", - "grid_uuid", - "name" - ], - "title": "AtlasCreateRequest" - }, - "AtlasResponse": { - "properties": { - "uuid": { - "type": "string", - "title": "Uuid" + "title": "Average Motion" }, - "grid_uuid": { - "type": "string", - "title": "Grid Uuid" + "binning_x": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Binning X" }, - "atlas_id": { - "type": "string", - "title": "Atlas Id" + "binning_y": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Binning Y" }, - "acquisition_date": { + "ctf_max_resolution_estimate": { "anyOf": [ { - "type": "string", - "format": "date-time" + "type": "number" }, { "type": "null" } ], - "title": "Acquisition Date" + "title": "Ctf Max Resolution Estimate" }, - "storage_folder": { + "defocus": { "anyOf": [ { - "type": "string" + "type": "number" }, { "type": "null" } ], - "title": "Storage Folder" + "title": "Defocus" }, - "description": { + "detector_name": { "anyOf": [ { "type": "string" @@ -2352,47 +3377,24 @@ "type": "null" } ], - "title": "Description" - }, - "name": { - "type": "string", - "title": "Name" + "title": "Detector Name" }, - "tiles": { + "energy_filter": { "anyOf": [ { - "items": { - "$ref": "#/components/schemas/AtlasTileResponse" - }, - "type": "array" + "type": "boolean" }, { "type": "null" } ], - "title": "Tiles", - "default": [] - } - }, - "type": "object", - "required": [ - "uuid", - "grid_uuid", - "atlas_id", - "acquisition_date", - "storage_folder", - "description", - "name" - ], - "title": "AtlasResponse" - }, - "AtlasTileCreateRequest": { - "properties": { - "uuid": { - "type": "string", - "title": "Uuid" + "title": "Energy Filter" }, - "tile_id": { + "foilhole_id": { + "title": "Foilhole Id", + "type": "string" + }, + "foilhole_uuid": { "anyOf": [ { "type": "string" @@ -2401,20 +3403,20 @@ "type": "null" } ], - "title": "Tile Id" + "title": "Foilhole Uuid" }, - "position_x": { + "high_res_path": { "anyOf": [ { - "type": "integer" + "type": "string" }, { "type": "null" } ], - "title": "Position X" + "title": "High Res Path" }, - "position_y": { + "image_size_x": { "anyOf": [ { "type": "integer" @@ -2423,9 +3425,9 @@ "type": "null" } ], - "title": "Position Y" + "title": "Image Size X" }, - "size_x": { + "image_size_y": { "anyOf": [ { "type": "integer" @@ -2434,20 +3436,20 @@ "type": "null" } ], - "title": "Size X" + "title": "Image Size Y" }, - "size_y": { + "location_id": { "anyOf": [ { - "type": "integer" + "type": "string" }, { "type": "null" } ], - "title": "Size Y" + "title": "Location Id" }, - "file_format": { + "manifest_file": { "anyOf": [ { "type": "string" @@ -2456,84 +3458,20 @@ "type": "null" } ], - "title": "File Format" + "title": "Manifest File" }, - "base_filename": { + "number_of_particles_picked": { "anyOf": [ { - "type": "string" + "type": "integer" }, { "type": "null" } ], - "title": "Base Filename" - }, - "atlas_uuid": { - "type": "string", - "title": "Atlas Uuid" - } - }, - "type": "object", - "required": [ - "uuid", - "atlas_uuid" - ], - "title": "AtlasTileCreateRequest" - }, - "AtlasTileGridSquarePositionResponse": { - "properties": { - "atlastile_uuid": { - "type": "string", - "title": "Atlastile Uuid" - }, - "gridsquare_uuid": { - "type": "string", - "title": "Gridsquare Uuid" - }, - "center_x": { - "type": "integer", - "title": "Center X" - }, - "center_y": { - "type": "integer", - "title": "Center Y" - }, - "size_width": { - "type": "integer", - "title": "Size Width" - }, - "size_height": { - "type": "integer", - "title": "Size Height" - } - }, - "type": "object", - "required": [ - "atlastile_uuid", - "gridsquare_uuid", - "center_x", - "center_y", - "size_width", - "size_height" - ], - "title": "AtlasTileGridSquarePositionResponse" - }, - "AtlasTileResponse": { - "properties": { - "uuid": { - "type": "string", - "title": "Uuid" - }, - "atlas_uuid": { - "type": "string", - "title": "Atlas Uuid" - }, - "tile_id": { - "type": "string", - "title": "Tile Id" + "title": "Number Of Particles Picked" }, - "position_x": { + "number_of_particles_rejected": { "anyOf": [ { "type": "integer" @@ -2542,9 +3480,9 @@ "type": "null" } ], - "title": "Position X" + "title": "Number Of Particles Rejected" }, - "position_y": { + "number_of_particles_selected": { "anyOf": [ { "type": "integer" @@ -2553,31 +3491,31 @@ "type": "null" } ], - "title": "Position Y" + "title": "Number Of Particles Selected" }, - "size_x": { + "phase_plate": { "anyOf": [ { - "type": "integer" + "type": "boolean" }, { "type": "null" } ], - "title": "Size X" + "title": "Phase Plate" }, - "size_y": { + "pick_distribution": { "anyOf": [ { - "type": "integer" + "type": "string" }, { "type": "null" } ], - "title": "Size Y" + "title": "Pick Distribution" }, - "file_format": { + "selection_distribution": { "anyOf": [ { "type": "string" @@ -2586,59 +3524,61 @@ "type": "null" } ], - "title": "File Format" + "title": "Selection Distribution" }, - "base_filename": { + "status": { + "$ref": "#/components/schemas/MicrographStatus", + "default": "none" + }, + "total_motion": { "anyOf": [ { - "type": "string" + "type": "number" }, { "type": "null" } ], - "title": "Base Filename" + "title": "Total Motion" + }, + "uuid": { + "title": "Uuid", + "type": "string" } }, - "type": "object", "required": [ "uuid", - "atlas_uuid", - "tile_id", - "position_x", - "position_y", - "size_x", - "size_y", - "file_format", - "base_filename" + "foilhole_id" ], - "title": "AtlasTileResponse" + "title": "MicrographCreateRequest", + "type": "object" }, - "AtlasTileUpdateRequest": { + "MicrographResponse": { "properties": { - "uuid": { + "acquisition_datetime": { "anyOf": [ { + "format": "date-time", "type": "string" }, { "type": "null" } ], - "title": "Uuid" + "title": "Acquisition Datetime" }, - "tile_id": { + "average_motion": { "anyOf": [ { - "type": "string" + "type": "number" }, { "type": "null" } ], - "title": "Tile Id" + "title": "Average Motion" }, - "position_x": { + "binning_x": { "anyOf": [ { "type": "integer" @@ -2647,9 +3587,9 @@ "type": "null" } ], - "title": "Position X" + "title": "Binning X" }, - "position_y": { + "binning_y": { "anyOf": [ { "type": "integer" @@ -2658,31 +3598,31 @@ "type": "null" } ], - "title": "Position Y" + "title": "Binning Y" }, - "size_x": { + "ctf_max_resolution_estimate": { "anyOf": [ { - "type": "integer" + "type": "number" }, { "type": "null" } ], - "title": "Size X" + "title": "Ctf Max Resolution Estimate" }, - "size_y": { + "defocus": { "anyOf": [ { - "type": "integer" + "type": "number" }, { "type": "null" } ], - "title": "Size Y" + "title": "Defocus" }, - "file_format": { + "detector_name": { "anyOf": [ { "type": "string" @@ -2691,20 +3631,20 @@ "type": "null" } ], - "title": "File Format" + "title": "Detector Name" }, - "base_filename": { + "energy_filter": { "anyOf": [ { - "type": "string" + "type": "boolean" }, { "type": "null" } ], - "title": "Base Filename" + "title": "Energy Filter" }, - "atlas_uuid": { + "foilhole_id": { "anyOf": [ { "type": "string" @@ -2713,15 +3653,13 @@ "type": "null" } ], - "title": "Atlas Uuid" - } - }, - "type": "object", - "title": "AtlasTileUpdateRequest" - }, - "AtlasUpdateRequest": { - "properties": { - "uuid": { + "title": "Foilhole Id" + }, + "foilhole_uuid": { + "title": "Foilhole Uuid", + "type": "string" + }, + "high_res_path": { "anyOf": [ { "type": "string" @@ -2730,43 +3668,42 @@ "type": "null" } ], - "title": "Uuid" + "title": "High Res Path" }, - "atlas_id": { + "image_size_x": { "anyOf": [ { - "type": "string" + "type": "integer" }, { "type": "null" } ], - "title": "Atlas Id" + "title": "Image Size X" }, - "grid_uuid": { + "image_size_y": { "anyOf": [ { - "type": "string" + "type": "integer" }, { "type": "null" } ], - "title": "Grid Uuid" + "title": "Image Size Y" }, - "acquisition_date": { + "location_id": { "anyOf": [ { - "type": "string", - "format": "date-time" + "type": "string" }, { "type": "null" } ], - "title": "Acquisition Date" + "title": "Location Id" }, - "storage_folder": { + "manifest_file": { "anyOf": [ { "type": "string" @@ -2775,9 +3712,9 @@ "type": "null" } ], - "title": "Storage Folder" + "title": "Manifest File" }, - "description": { + "micrograph_id": { "anyOf": [ { "type": "string" @@ -2786,75 +3723,78 @@ "type": "null" } ], - "title": "Description" + "title": "Micrograph Id" }, - "name": { + "number_of_particles_picked": { "anyOf": [ { - "type": "string" + "type": "integer" }, { "type": "null" } ], - "title": "Name" - } - }, - "type": "object", - "title": "AtlasUpdateRequest" - }, - "FoilHoleCreateRequest": { - "properties": { - "uuid": { - "type": "string", - "title": "Uuid" - }, - "foilhole_id": { - "type": "string", - "title": "Foilhole Id" + "title": "Number Of Particles Picked" }, - "gridsquare_id": { - "type": "string", - "title": "Gridsquare Id" + "number_of_particles_rejected": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Number Of Particles Rejected" }, - "gridsquare_uuid": { - "type": "string", - "title": "Gridsquare Uuid" + "number_of_particles_selected": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Number Of Particles Selected" }, - "center_x": { + "phase_plate": { "anyOf": [ { - "type": "number" + "type": "boolean" }, { "type": "null" } ], - "title": "Center X" + "title": "Phase Plate" }, - "center_y": { + "pick_distribution": { "anyOf": [ { - "type": "number" + "type": "string" }, { "type": "null" } ], - "title": "Center Y" + "title": "Pick Distribution" }, - "quality": { + "selection_distribution": { "anyOf": [ { - "type": "number" + "type": "string" }, { "type": "null" } ], - "title": "Quality" + "title": "Selection Distribution" }, - "rotation": { + "status": { + "$ref": "#/components/schemas/MicrographStatus" + }, + "total_motion": { "anyOf": [ { "type": "number" @@ -2863,20 +3803,51 @@ "type": "null" } ], - "title": "Rotation" + "title": "Total Motion" }, - "size_width": { + "uuid": { + "title": "Uuid", + "type": "string" + } + }, + "required": [ + "uuid", + "foilhole_uuid", + "status" + ], + "title": "MicrographResponse", + "type": "object" + }, + "MicrographStatus": { + "enum": [ + "none", + "motion correction started", + "motion correction completed", + "ctf started", + "ctf completed", + "particle picking started", + "particle picking completed", + "particle selection started", + "particle selection completed" + ], + "title": "MicrographStatus", + "type": "string" + }, + "MicrographUpdateRequest": { + "properties": { + "acquisition_datetime": { "anyOf": [ { - "type": "number" + "format": "date-time", + "type": "string" }, { "type": "null" } ], - "title": "Size Width" + "title": "Acquisition Datetime" }, - "size_height": { + "average_motion": { "anyOf": [ { "type": "number" @@ -2885,9 +3856,9 @@ "type": "null" } ], - "title": "Size Height" + "title": "Average Motion" }, - "x_location": { + "binning_x": { "anyOf": [ { "type": "integer" @@ -2896,9 +3867,9 @@ "type": "null" } ], - "title": "X Location" + "title": "Binning X" }, - "y_location": { + "binning_y": { "anyOf": [ { "type": "integer" @@ -2907,9 +3878,9 @@ "type": "null" } ], - "title": "Y Location" + "title": "Binning Y" }, - "x_stage_position": { + "ctf_max_resolution_estimate": { "anyOf": [ { "type": "number" @@ -2918,9 +3889,9 @@ "type": "null" } ], - "title": "X Stage Position" + "title": "Ctf Max Resolution Estimate" }, - "y_stage_position": { + "defocus": { "anyOf": [ { "type": "number" @@ -2929,51 +3900,31 @@ "type": "null" } ], - "title": "Y Stage Position" + "title": "Defocus" }, - "diameter": { + "detector_name": { "anyOf": [ { - "type": "integer" + "type": "string" }, { "type": "null" } ], - "title": "Diameter" - }, - "is_near_grid_bar": { - "type": "boolean", - "title": "Is Near Grid Bar", - "default": false + "title": "Detector Name" }, - "status": { + "energy_filter": { "anyOf": [ { - "$ref": "#/components/schemas/FoilHoleStatus" + "type": "boolean" }, { "type": "null" } - ] - } - }, - "type": "object", - "required": [ - "uuid", - "foilhole_id", - "gridsquare_id", - "gridsquare_uuid" - ], - "title": "FoilHoleCreateRequest" - }, - "FoilHoleResponse": { - "properties": { - "uuid": { - "type": "string", - "title": "Uuid" + ], + "title": "Energy Filter" }, - "gridsquare_id": { + "foilhole_id": { "anyOf": [ { "type": "string" @@ -2982,82 +3933,75 @@ "type": "null" } ], - "title": "Gridsquare Id" - }, - "foilhole_id": { - "type": "string", "title": "Foilhole Id" }, - "status": { - "$ref": "#/components/schemas/FoilHoleStatus" - }, - "center_x": { + "foilhole_uuid": { "anyOf": [ { - "type": "number" + "type": "string" }, { "type": "null" } ], - "title": "Center X" + "title": "Foilhole Uuid" }, - "center_y": { + "high_res_path": { "anyOf": [ { - "type": "number" + "type": "string" }, { "type": "null" } ], - "title": "Center Y" + "title": "High Res Path" }, - "quality": { + "image_size_x": { "anyOf": [ { - "type": "number" + "type": "integer" }, { "type": "null" } ], - "title": "Quality" + "title": "Image Size X" }, - "rotation": { + "image_size_y": { "anyOf": [ { - "type": "number" + "type": "integer" }, { "type": "null" } ], - "title": "Rotation" + "title": "Image Size Y" }, - "size_width": { + "location_id": { "anyOf": [ { - "type": "number" + "type": "string" }, { "type": "null" } ], - "title": "Size Width" + "title": "Location Id" }, - "size_height": { + "manifest_file": { "anyOf": [ { - "type": "number" + "type": "string" }, { "type": "null" } ], - "title": "Size Height" + "title": "Manifest File" }, - "x_location": { + "number_of_particles_picked": { "anyOf": [ { "type": "integer" @@ -3066,9 +4010,9 @@ "type": "null" } ], - "title": "X Location" + "title": "Number Of Particles Picked" }, - "y_location": { + "number_of_particles_rejected": { "anyOf": [ { "type": "integer" @@ -3077,78 +4021,42 @@ "type": "null" } ], - "title": "Y Location" + "title": "Number Of Particles Rejected" }, - "x_stage_position": { + "number_of_particles_selected": { "anyOf": [ { - "type": "number" + "type": "integer" }, { "type": "null" } ], - "title": "X Stage Position" + "title": "Number Of Particles Selected" }, - "y_stage_position": { + "phase_plate": { "anyOf": [ { - "type": "number" + "type": "boolean" }, { "type": "null" } ], - "title": "Y Stage Position" + "title": "Phase Plate" }, - "diameter": { + "pick_distribution": { "anyOf": [ { - "type": "integer" + "type": "string" }, { "type": "null" } ], - "title": "Diameter" + "title": "Pick Distribution" }, - "is_near_grid_bar": { - "type": "boolean", - "title": "Is Near Grid Bar" - } - }, - "type": "object", - "required": [ - "uuid", - "gridsquare_id", - "foilhole_id", - "status", - "center_x", - "center_y", - "quality", - "rotation", - "size_width", - "size_height", - "x_location", - "y_location", - "x_stage_position", - "y_stage_position", - "diameter", - "is_near_grid_bar" - ], - "title": "FoilHoleResponse" - }, - "FoilHoleStatus": { - "type": "string", - "enum": [ - "none", - "micrographs detected" - ], - "title": "FoilHoleStatus" - }, - "FoilHoleUpdateRequest": { - "properties": { - "uuid": { + "selection_distribution": { "anyOf": [ { "type": "string" @@ -3157,20 +4065,24 @@ "type": "null" } ], - "title": "Uuid" + "title": "Selection Distribution" }, - "foilhole_id": { + "status": { + "$ref": "#/components/schemas/MicrographStatus", + "default": "none" + }, + "total_motion": { "anyOf": [ { - "type": "string" + "type": "number" }, { "type": "null" } ], - "title": "Foilhole Id" + "title": "Total Motion" }, - "gridsquare_id": { + "uuid": { "anyOf": [ { "type": "string" @@ -3179,9 +4091,33 @@ "type": "null" } ], - "title": "Gridsquare Id" + "title": "Uuid" + } + }, + "title": "MicrographUpdateRequest", + "type": "object" + }, + "MotionCorrectionCompletedRequest": { + "properties": { + "average_motion": { + "title": "Average Motion", + "type": "number" }, - "gridsquare_uuid": { + "total_motion": { + "title": "Total Motion", + "type": "number" + } + }, + "required": [ + "total_motion", + "average_motion" + ], + "title": "MotionCorrectionCompletedRequest", + "type": "object" + }, + "MotionCorrectionRegisteredRequest": { + "properties": { + "metric_name": { "anyOf": [ { "type": "string" @@ -3190,31 +4126,80 @@ "type": "null" } ], - "title": "Gridsquare Uuid" + "title": "Metric Name" }, - "center_x": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "title": "Center X" + "quality": { + "title": "Quality", + "type": "boolean" + } + }, + "required": [ + "quality" + ], + "title": "MotionCorrectionRegisteredRequest", + "type": "object" + }, + "OverallQualityPrediction": { + "properties": { + "foilhole_uuid": { + "title": "Foilhole Uuid", + "type": "string" }, - "center_y": { + "grid_uuid": { + "title": "Grid Uuid", + "type": "string" + }, + "gridsquare_uuid": { + "title": "Gridsquare Uuid", + "type": "string" + }, + "id": { "anyOf": [ { - "type": "number" + "type": "integer" }, { "type": "null" } ], - "title": "Center Y" + "title": "Id" }, - "quality": { + "suggested_acquisition_index": { + "title": "Suggested Acquisition Index", + "type": "integer" + }, + "value": { + "title": "Value", + "type": "number" + } + }, + "required": [ + "value", + "suggested_acquisition_index", + "foilhole_uuid", + "grid_uuid", + "gridsquare_uuid" + ], + "title": "OverallQualityPrediction", + "type": "object" + }, + "ProcessingFeedbackPublishResponse": { + "description": "Confirmation that a processing-feedback event was published to RabbitMQ.", + "properties": { + "published": { + "title": "Published", + "type": "boolean" + } + }, + "required": [ + "published" + ], + "title": "ProcessingFeedbackPublishResponse", + "type": "object" + }, + "QualityMetricsResponse": { + "properties": { + "average_quality": { "anyOf": [ { "type": "number" @@ -3223,9 +4208,9 @@ "type": "null" } ], - "title": "Quality" + "title": "Average Quality" }, - "rotation": { + "max_quality": { "anyOf": [ { "type": "number" @@ -3234,9 +4219,9 @@ "type": "null" } ], - "title": "Rotation" + "title": "Max Quality" }, - "size_width": { + "min_quality": { "anyOf": [ { "type": "number" @@ -3245,31 +4230,52 @@ "type": "null" } ], - "title": "Size Width" + "title": "Min Quality" }, - "size_height": { + "models_count": { + "title": "Models Count", + "type": "integer" + }, + "total_predictions": { + "title": "Total Predictions", + "type": "integer" + } + }, + "required": [ + "total_predictions", + "average_quality", + "min_quality", + "max_quality", + "models_count" + ], + "title": "QualityMetricsResponse", + "type": "object" + }, + "QualityPrediction": { + "properties": { + "foilhole_uuid": { "anyOf": [ { - "type": "number" + "type": "string" }, { "type": "null" } ], - "title": "Size Height" + "title": "Foilhole Uuid" }, - "x_location": { + "gridsquare_uuid": { "anyOf": [ { - "type": "integer" + "type": "string" }, { "type": "null" } ], - "title": "X Location" + "title": "Gridsquare Uuid" }, - "y_location": { + "id": { "anyOf": [ { "type": "integer" @@ -3278,85 +4284,195 @@ "type": "null" } ], - "title": "Y Location" + "title": "Id" }, - "x_stage_position": { + "metric_name": { "anyOf": [ { - "type": "number" + "type": "string" }, { "type": "null" } ], - "title": "X Stage Position" + "title": "Metric Name" }, - "y_stage_position": { + "prediction_model_name": { + "title": "Prediction Model Name", + "type": "string" + }, + "timestamp": { + "format": "date-time", + "title": "Timestamp", + "type": "string" + }, + "value": { + "title": "Value", + "type": "number" + } + }, + "required": [ + "value", + "prediction_model_name" + ], + "title": "QualityPrediction", + "type": "object" + }, + "QualityPredictionCreateRequest": { + "properties": { + "foilhole_uuid": { "anyOf": [ { - "type": "number" + "type": "string" }, { "type": "null" } ], - "title": "Y Stage Position" + "title": "Foilhole Uuid" }, - "diameter": { + "gridsquare_uuid": { "anyOf": [ { - "type": "integer" + "type": "string" }, { "type": "null" } ], - "title": "Diameter" + "title": "Gridsquare Uuid" }, - "is_near_grid_bar": { - "type": "boolean", - "title": "Is Near Grid Bar", - "default": false + "prediction_model_name": { + "title": "Prediction Model Name", + "type": "string" }, - "status": { + "value": { + "title": "Value", + "type": "number" + } + }, + "required": [ + "value", + "prediction_model_name" + ], + "title": "QualityPredictionCreateRequest", + "type": "object" + }, + "QualityPredictionModelCreateRequest": { + "properties": { + "description": { + "default": "", + "title": "Description", + "type": "string" + }, + "name": { + "title": "Name", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "QualityPredictionModelCreateRequest", + "type": "object" + }, + "QualityPredictionModelParameterResponse": { + "properties": { + "grid_uuid": { + "title": "Grid Uuid", + "type": "string" + }, + "group": { + "title": "Group", + "type": "string" + }, + "id": { + "title": "Id", + "type": "integer" + }, + "key": { + "title": "Key", + "type": "string" + }, + "prediction_model_name": { + "title": "Prediction Model Name", + "type": "string" + }, + "timestamp": { + "format": "date-time", + "title": "Timestamp", + "type": "string" + }, + "value": { + "title": "Value", + "type": "number" + } + }, + "required": [ + "id", + "grid_uuid", + "timestamp", + "prediction_model_name", + "key", + "value", + "group" + ], + "title": "QualityPredictionModelParameterResponse", + "type": "object" + }, + "QualityPredictionModelResponse": { + "properties": { + "description": { + "title": "Description", + "type": "string" + }, + "name": { + "title": "Name", + "type": "string" + } + }, + "required": [ + "name", + "description" + ], + "title": "QualityPredictionModelResponse", + "type": "object" + }, + "QualityPredictionModelUpdateRequest": { + "properties": { + "description": { "anyOf": [ { - "$ref": "#/components/schemas/FoilHoleStatus" + "type": "string" }, { "type": "null" } - ] + ], + "title": "Description" } }, - "type": "object", - "title": "FoilHoleUpdateRequest" + "title": "QualityPredictionModelUpdateRequest", + "type": "object" }, - "GridCreateRequest": { + "QualityPredictionModelWeight": { "properties": { - "uuid": { - "type": "string", - "title": "Uuid" - }, - "name": { - "type": "string", - "title": "Name" - }, - "acquisition_uuid": { - "type": "string", - "title": "Acquisition Uuid" + "grid_uuid": { + "title": "Grid Uuid", + "type": "string" }, - "status": { + "id": { "anyOf": [ { - "$ref": "#/components/schemas/GridStatus" + "type": "integer" }, { "type": "null" } - ] + ], + "title": "Id" }, - "data_dir": { + "metric_name": { "anyOf": [ { "type": "string" @@ -3365,9 +4481,20 @@ "type": "null" } ], - "title": "Data Dir" + "title": "Metric Name" }, - "atlas_dir": { + "micrograph_quality": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Micrograph Quality" + }, + "micrograph_uuid": { "anyOf": [ { "type": "string" @@ -3376,2009 +4503,3522 @@ "type": "null" } ], - "title": "Atlas Dir" + "title": "Micrograph Uuid" }, - "scan_start_time": { + "prediction_model_name": { + "title": "Prediction Model Name", + "type": "string" + }, + "timestamp": { + "format": "date-time", + "title": "Timestamp", + "type": "string" + }, + "weight": { + "title": "Weight", + "type": "number" + } + }, + "required": [ + "grid_uuid", + "prediction_model_name", + "weight" + ], + "title": "QualityPredictionModelWeight", + "type": "object" + }, + "QualityPredictionResponse": { + "properties": { + "foilhole_uuid": { "anyOf": [ { - "type": "string", - "format": "date-time" + "type": "string" }, { "type": "null" } ], - "title": "Scan Start Time" + "title": "Foilhole Uuid" }, - "scan_end_time": { + "gridsquare_uuid": { "anyOf": [ { - "type": "string", - "format": "date-time" + "type": "string" }, { "type": "null" } ], - "title": "Scan End Time" + "title": "Gridsquare Uuid" + }, + "id": { + "title": "Id", + "type": "integer" + }, + "prediction_model_name": { + "title": "Prediction Model Name", + "type": "string" + }, + "timestamp": { + "format": "date-time", + "title": "Timestamp", + "type": "string" + }, + "value": { + "title": "Value", + "type": "number" + } + }, + "required": [ + "id", + "prediction_model_name", + "value", + "timestamp" + ], + "title": "QualityPredictionResponse", + "type": "object" + }, + "ValidationError": { + "properties": { + "loc": { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + }, + "title": "Location", + "type": "array" + }, + "msg": { + "title": "Message", + "type": "string" + }, + "type": { + "title": "Error Type", + "type": "string" + } + }, + "required": [ + "loc", + "msg", + "type" + ], + "title": "ValidationError", + "type": "object" + } + } + }, + "info": { + "description": "API for accessing and managing electron microscopy data", + "title": "SmartEM Decisions Backend API", + "version": "0.1.1rc27.dev13+g15895622a.d20260416" + }, + "openapi": "3.1.0", + "paths": { + "/acquisitions": { + "get": { + "description": "Get all acquisitions", + "operationId": "get_acquisitions_acquisitions_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/AcquisitionResponse" + }, + "title": "Response Get Acquisitions Acquisitions Get", + "type": "array" + } + } + }, + "description": "Successful Response" + } + }, + "summary": "Get Acquisitions" + }, + "post": { + "description": "Create a new acquisition", + "operationId": "create_acquisition_acquisitions_post", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AcquisitionCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AcquisitionResponse" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" } }, - "type": "object", - "required": [ - "uuid", - "name", - "acquisition_uuid" + "summary": "Create Acquisition" + } + }, + "/acquisitions/{acquisition_uuid}": { + "delete": { + "description": "Delete an acquisition", + "operationId": "delete_acquisition_acquisitions__acquisition_uuid__delete", + "parameters": [ + { + "in": "path", + "name": "acquisition_uuid", + "required": true, + "schema": { + "title": "Acquisition Uuid", + "type": "string" + } + } ], - "title": "GridCreateRequest" - }, - "GridResponse": { - "properties": { - "uuid": { - "type": "string", - "title": "Uuid" + "responses": { + "204": { + "description": "Successful Response" }, - "acquisition_uuid": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Acquisition Uuid" - }, - "status": { - "anyOf": [ - { - "$ref": "#/components/schemas/GridStatus" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Delete Acquisition" + }, + "get": { + "description": "Get a single acquisition by ID", + "operationId": "get_acquisition_acquisitions__acquisition_uuid__get", + "parameters": [ + { + "in": "path", + "name": "acquisition_uuid", + "required": true, + "schema": { + "title": "Acquisition Uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AcquisitionResponse" + } } - ] - }, - "name": { - "type": "string", - "title": "Name" + }, + "description": "Successful Response" }, - "data_dir": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Data Dir" - }, - "atlas_dir": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Get Acquisition" + }, + "put": { + "description": "Update an acquisition", + "operationId": "update_acquisition_acquisitions__acquisition_uuid__put", + "parameters": [ + { + "in": "path", + "name": "acquisition_uuid", + "required": true, + "schema": { + "title": "Acquisition Uuid", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AcquisitionUpdateRequest" } - ], - "title": "Atlas Dir" + } }, - "scan_start_time": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AcquisitionResponse" + } } - ], - "title": "Scan Start Time" + }, + "description": "Successful Response" }, - "scan_end_time": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Scan End Time" + }, + "description": "Validation Error" } }, - "type": "object", - "required": [ - "uuid", - "acquisition_uuid", - "status", - "name", - "data_dir", - "atlas_dir", - "scan_start_time", - "scan_end_time" + "summary": "Update Acquisition" + } + }, + "/acquisitions/{acquisition_uuid}/grids": { + "get": { + "description": "Get all grids for a specific acquisition", + "operationId": "get_acquisition_grids_acquisitions__acquisition_uuid__grids_get", + "parameters": [ + { + "in": "path", + "name": "acquisition_uuid", + "required": true, + "schema": { + "title": "Acquisition Uuid", + "type": "string" + } + } ], - "title": "GridResponse" - }, - "GridSquareCreateRequest": { - "properties": { - "uuid": { - "type": "string", - "title": "Uuid" - }, - "gridsquare_id": { - "type": "string", - "title": "Gridsquare Id" - }, - "grid_uuid": { - "type": "string", - "title": "Grid Uuid" - }, - "data_dir": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/GridResponse" + }, + "title": "Response Get Acquisition Grids Acquisitions Acquisition Uuid Grids Get", + "type": "array" + } } - ], - "title": "Data Dir" + }, + "description": "Successful Response" }, - "atlas_node_id": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Atlas Node Id" - }, - "state": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Get Acquisition Grids" + }, + "post": { + "description": "Create a new grid for a specific acquisition", + "operationId": "create_acquisition_grid_acquisitions__acquisition_uuid__grids_post", + "parameters": [ + { + "in": "path", + "name": "acquisition_uuid", + "required": true, + "schema": { + "title": "Acquisition Uuid", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GridCreateRequest" } - ], - "title": "State" + } }, - "rotation": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GridResponse" + } } - ], - "title": "Rotation" + }, + "description": "Successful Response" }, - "image_path": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Image Path" + }, + "description": "Validation Error" + } + }, + "summary": "Create Acquisition Grid" + } + }, + "/agent/{agent_id}/session/{session_id}/heartbeat": { + "post": { + "description": "Agent heartbeat endpoint to update connection health status.\n\nArgs:\n agent_id: The agent identifier\n session_id: The session identifier\n db: Database session\n\nReturns:\n Heartbeat response with status and timestamp", + "operationId": "agent_heartbeat_agent__agent_id__session__session_id__heartbeat_post", + "parameters": [ + { + "in": "path", + "name": "agent_id", + "required": true, + "schema": { + "title": "Agent Id", + "type": "string" + } }, - "selected": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" + { + "in": "path", + "name": "session_id", + "required": true, + "schema": { + "title": "Session Id", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} } - ], - "title": "Selected" + }, + "description": "Successful Response" }, - "unusable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Unusable" + }, + "description": "Validation Error" + } + }, + "summary": "Agent Heartbeat" + } + }, + "/agent/{agent_id}/session/{session_id}/instructions/stream": { + "get": { + "description": "SSE endpoint for streaming instructions to agents for a specific session", + "operationId": "stream_instructions_agent__agent_id__session__session_id__instructions_stream_get", + "parameters": [ + { + "in": "path", + "name": "agent_id", + "required": true, + "schema": { + "title": "Agent Id", + "type": "string" + } }, - "stage_position_x": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + { + "in": "path", + "name": "session_id", + "required": true, + "schema": { + "title": "Session Id", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} } - ], - "title": "Stage Position X" + }, + "description": "Successful Response" }, - "stage_position_y": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Stage Position Y" + }, + "description": "Validation Error" + } + }, + "summary": "Stream Instructions" + } + }, + "/agent/{agent_id}/session/{session_id}/instructions/{instruction_id}/ack": { + "post": { + "description": "HTTP endpoint for instruction acknowledgements with database persistence", + "operationId": "acknowledge_instruction_agent__agent_id__session__session_id__instructions__instruction_id__ack_post", + "parameters": [ + { + "in": "path", + "name": "agent_id", + "required": true, + "schema": { + "title": "Agent Id", + "type": "string" + } }, - "stage_position_z": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + { + "in": "path", + "name": "session_id", + "required": true, + "schema": { + "title": "Session Id", + "type": "string" + } + }, + { + "in": "path", + "name": "instruction_id", + "required": true, + "schema": { + "title": "Instruction Id", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AgentInstructionAcknowledgement" } - ], - "title": "Stage Position Z" + } }, - "center_x": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AgentInstructionAcknowledgementResponse" + } } - ], - "title": "Center X" + }, + "description": "Successful Response" }, - "center_y": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Center Y" + }, + "description": "Validation Error" + } + }, + "summary": "Acknowledge Instruction" + } + }, + "/atlas-tiles": { + "get": { + "description": "Get all atlas tiles", + "operationId": "get_atlas_tiles_atlas_tiles_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/AtlasTileResponse" + }, + "title": "Response Get Atlas Tiles Atlas Tiles Get", + "type": "array" + } + } + }, + "description": "Successful Response" + } + }, + "summary": "Get Atlas Tiles" + } + }, + "/atlas-tiles/{tile_uuid}": { + "delete": { + "description": "Delete an atlas tile by publishing to RabbitMQ", + "operationId": "delete_atlas_tile_atlas_tiles__tile_uuid__delete", + "parameters": [ + { + "in": "path", + "name": "tile_uuid", + "required": true, + "schema": { + "title": "Tile Uuid", + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Successful Response" }, - "physical_x": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Physical X" - }, - "physical_y": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Delete Atlas Tile" + }, + "get": { + "description": "Get a single atlas tile by ID", + "operationId": "get_atlas_tile_atlas_tiles__tile_uuid__get", + "parameters": [ + { + "in": "path", + "name": "tile_uuid", + "required": true, + "schema": { + "title": "Tile Uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AtlasTileResponse" + } } - ], - "title": "Physical Y" + }, + "description": "Successful Response" }, - "size_width": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Size Width" - }, - "size_height": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Get Atlas Tile" + }, + "put": { + "description": "Update an atlas tile", + "operationId": "update_atlas_tile_atlas_tiles__tile_uuid__put", + "parameters": [ + { + "in": "path", + "name": "tile_uuid", + "required": true, + "schema": { + "title": "Tile Uuid", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AtlasTileUpdateRequest" } - ], - "title": "Size Height" + } }, - "acquisition_datetime": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AtlasTileResponse" + } } - ], - "title": "Acquisition Datetime" + }, + "description": "Successful Response" }, - "defocus": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Defocus" - }, - "magnification": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Update Atlas Tile" + } + }, + "/atlas-tiles/{tile_uuid}/gridsquares": { + "post": { + "description": "Connect mutliple grid squares to a tile with its position information", + "operationId": "link_atlas_tile_to_gridsquares_atlas_tiles__tile_uuid__gridsquares_post", + "parameters": [ + { + "in": "path", + "name": "tile_uuid", + "required": true, + "schema": { + "title": "Tile Uuid", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/GridSquarePositionRequest" + }, + "title": "Gridsquare Positions", + "type": "array" } - ], - "title": "Magnification" + } }, - "pixel_size": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/AtlasTileGridSquarePositionResponse" + }, + "title": "Response Link Atlas Tile To Gridsquares Atlas Tiles Tile Uuid Gridsquares Post", + "type": "array" + } } - ], - "title": "Pixel Size" + }, + "description": "Successful Response" }, - "detector_name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Detector Name" + }, + "description": "Validation Error" + } + }, + "summary": "Link Atlas Tile To Gridsquares" + } + }, + "/atlas-tiles/{tile_uuid}/gridsquares/{gridsquare_uuid}": { + "post": { + "description": "Connect a grid square to a tile with its position information", + "operationId": "link_atlas_tile_to_gridsquare_atlas_tiles__tile_uuid__gridsquares__gridsquare_uuid__post", + "parameters": [ + { + "in": "path", + "name": "tile_uuid", + "required": true, + "schema": { + "title": "Tile Uuid", + "type": "string" + } }, - "applied_defocus": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + { + "in": "path", + "name": "gridsquare_uuid", + "required": true, + "schema": { + "title": "Gridsquare Uuid", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GridSquarePositionRequest" } - ], - "title": "Applied Defocus" + } }, - "status": { - "anyOf": [ - { - "$ref": "#/components/schemas/GridSquareStatus" - }, - { - "type": "null" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AtlasTileGridSquarePositionResponse" + } } - ] + }, + "description": "Successful Response" }, - "lowmag": { - "type": "boolean", - "title": "Lowmag", - "default": false + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" } }, - "type": "object", - "required": [ - "uuid", - "gridsquare_id", - "grid_uuid" - ], - "title": "GridSquareCreateRequest" - }, - "GridSquarePositionRequest": { - "properties": { - "center_x": { - "type": "integer", - "title": "Center X" - }, - "center_y": { - "type": "integer", - "title": "Center Y" - }, - "size_width": { - "type": "integer", - "title": "Size Width" - }, - "size_height": { - "type": "integer", - "title": "Size Height" + "summary": "Link Atlas Tile To Gridsquare" + } + }, + "/atlases": { + "get": { + "description": "Get all atlases", + "operationId": "get_atlases_atlases_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/AtlasResponse" + }, + "title": "Response Get Atlases Atlases Get", + "type": "array" + } + } + }, + "description": "Successful Response" } }, - "type": "object", - "required": [ - "center_x", - "center_y", - "size_width", - "size_height" + "summary": "Get Atlases" + } + }, + "/atlases/{atlas_uuid}": { + "delete": { + "description": "Delete an atlas by publishing to RabbitMQ", + "operationId": "delete_atlas_atlases__atlas_uuid__delete", + "parameters": [ + { + "in": "path", + "name": "atlas_uuid", + "required": true, + "schema": { + "title": "Atlas Uuid", + "type": "string" + } + } ], - "title": "GridSquarePositionRequest" - }, - "GridSquareResponse": { - "properties": { - "uuid": { - "type": "string", - "title": "Uuid" - }, - "gridsquare_id": { - "type": "string", - "title": "Gridsquare Id" - }, - "grid_uuid": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Grid Uuid" + "responses": { + "204": { + "description": "Successful Response" }, - "status": { - "anyOf": [ - { - "$ref": "#/components/schemas/GridSquareStatus" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ] - }, - "data_dir": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Delete Atlas" + }, + "get": { + "description": "Get a single atlas by ID", + "operationId": "get_atlas_atlases__atlas_uuid__get", + "parameters": [ + { + "in": "path", + "name": "atlas_uuid", + "required": true, + "schema": { + "title": "Atlas Uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AtlasResponse" + } } - ], - "title": "Data Dir" + }, + "description": "Successful Response" }, - "atlas_node_id": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Atlas Node Id" - }, - "state": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Get Atlas" + }, + "put": { + "description": "Update an atlas", + "operationId": "update_atlas_atlases__atlas_uuid__put", + "parameters": [ + { + "in": "path", + "name": "atlas_uuid", + "required": true, + "schema": { + "title": "Atlas Uuid", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AtlasUpdateRequest" } - ], - "title": "State" + } }, - "rotation": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AtlasResponse" + } } - ], - "title": "Rotation" + }, + "description": "Successful Response" }, - "image_path": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Image Path" - }, - "selected": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Update Atlas" + } + }, + "/atlases/{atlas_uuid}/tiles": { + "get": { + "description": "Get all tiles for a specific atlas", + "operationId": "get_atlas_tiles_by_atlas_atlases__atlas_uuid__tiles_get", + "parameters": [ + { + "in": "path", + "name": "atlas_uuid", + "required": true, + "schema": { + "title": "Atlas Uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/AtlasTileResponse" + }, + "title": "Response Get Atlas Tiles By Atlas Atlases Atlas Uuid Tiles Get", + "type": "array" + } } - ], - "title": "Selected" + }, + "description": "Successful Response" }, - "unusable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Unusable" - }, - "stage_position_x": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Get Atlas Tiles By Atlas" + }, + "post": { + "description": "Create a new tile for a specific atlas", + "operationId": "create_atlas_tile_for_atlas_atlases__atlas_uuid__tiles_post", + "parameters": [ + { + "in": "path", + "name": "atlas_uuid", + "required": true, + "schema": { + "title": "Atlas Uuid", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AtlasTileCreateRequest" } - ], - "title": "Stage Position X" + } }, - "stage_position_y": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AtlasTileResponse" + } } - ], - "title": "Stage Position Y" + }, + "description": "Successful Response" }, - "stage_position_z": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Stage Position Z" - }, - "center_x": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Create Atlas Tile For Atlas" + } + }, + "/debug/agent-connections": { + "get": { + "description": "Debug endpoint to view active agent connections", + "operationId": "get_active_connections_debug_agent_connections_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} } - ], - "title": "Center X" - }, - "center_y": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + }, + "description": "Successful Response" + } + }, + "summary": "Get Active Connections" + } + }, + "/debug/connection-stats": { + "get": { + "description": "Get real-time connection and session statistics", + "operationId": "get_connection_stats_debug_connection_stats_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} } - ], - "title": "Center Y" - }, - "physical_x": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + }, + "description": "Successful Response" + } + }, + "summary": "Get Connection Stats" + } + }, + "/debug/session/{session_id}/create-instruction": { + "post": { + "description": "Debug endpoint to create test instructions", + "operationId": "create_test_instruction_debug_session__session_id__create_instruction_post", + "parameters": [ + { + "in": "path", + "name": "session_id", + "required": true, + "schema": { + "title": "Session Id", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "additionalProperties": true, + "title": "Instruction Data", + "type": "object" } - ], - "title": "Physical X" + } }, - "physical_y": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} } - ], - "title": "Physical Y" + }, + "description": "Successful Response" }, - "size_width": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Size Width" - }, - "size_height": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Create Test Instruction" + } + }, + "/debug/session/{session_id}/instructions": { + "get": { + "description": "Debug endpoint to view instructions for a session", + "operationId": "get_session_instructions_debug_session__session_id__instructions_get", + "parameters": [ + { + "in": "path", + "name": "session_id", + "required": true, + "schema": { + "title": "Session Id", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} } - ], - "title": "Size Height" + }, + "description": "Successful Response" }, - "acquisition_datetime": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Get Session Instructions" + } + }, + "/debug/sessions": { + "get": { + "description": "Debug endpoint to view all active sessions", + "operationId": "get_active_sessions_debug_sessions_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + } + }, + "summary": "Get Active Sessions" + } + }, + "/debug/sessions/create": { + "post": { + "description": "Debug endpoint to create test sessions", + "operationId": "create_test_session_debug_sessions_create_post", + "requestBody": { + "content": { + "application/json": { + "schema": { + "additionalProperties": true, + "title": "Session Data", + "type": "object" } - ], - "title": "Acquisition Datetime" + } }, - "defocus": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} } - ], - "title": "Defocus" + }, + "description": "Successful Response" }, - "magnification": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Magnification" - }, - "pixel_size": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Create Test Session" + } + }, + "/debug/sessions/create-managed": { + "post": { + "description": "Create a session using the connection manager", + "operationId": "create_managed_session_debug_sessions_create_managed_post", + "requestBody": { + "content": { + "application/json": { + "schema": { + "additionalProperties": true, + "title": "Session Data", + "type": "object" } - ], - "title": "Pixel Size" + } }, - "detector_name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} } - ], - "title": "Detector Name" + }, + "description": "Successful Response" }, - "applied_defocus": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Applied Defocus" + }, + "description": "Validation Error" } }, - "type": "object", - "required": [ - "uuid", - "gridsquare_id", - "grid_uuid", - "status", - "data_dir", - "atlas_node_id", - "state", - "rotation", - "image_path", - "selected", - "unusable", - "stage_position_x", - "stage_position_y", - "stage_position_z", - "center_x", - "center_y", - "physical_x", - "physical_y", - "size_width", - "size_height", - "acquisition_datetime", - "defocus", - "magnification", - "pixel_size", - "detector_name", - "applied_defocus" - ], - "title": "GridSquareResponse" - }, - "GridSquareStatus": { - "type": "string", - "enum": [ - "none", - "foil holes decision started", - "foil holes decision completed" + "summary": "Create Managed Session" + } + }, + "/debug/sessions/{session_id}/close": { + "delete": { + "description": "Close a session using the connection manager", + "operationId": "close_managed_session_debug_sessions__session_id__close_delete", + "parameters": [ + { + "in": "path", + "name": "session_id", + "required": true, + "schema": { + "title": "Session Id", + "type": "string" + } + } ], - "title": "GridSquareStatus" - }, - "GridSquareUpdateRequest": { - "properties": { - "uuid": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Uuid" - }, - "gridsquare_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Gridsquare Id" - }, - "grid_uuid": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} } - ], - "title": "Grid Uuid" + }, + "description": "Successful Response" }, - "data_dir": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Data Dir" - }, - "atlas_node_id": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Close Managed Session" + } + }, + "/foilholes": { + "get": { + "description": "Get all foil holes", + "operationId": "get_foilholes_foilholes_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/FoilHoleResponse" + }, + "title": "Response Get Foilholes Foilholes Get", + "type": "array" + } } - ], - "title": "Atlas Node Id" + }, + "description": "Successful Response" + } + }, + "summary": "Get Foilholes" + } + }, + "/foilholes/{foilhole_uuid}": { + "delete": { + "description": "Delete a foil hole by publishing to RabbitMQ", + "operationId": "delete_foilhole_foilholes__foilhole_uuid__delete", + "parameters": [ + { + "in": "path", + "name": "foilhole_uuid", + "required": true, + "schema": { + "title": "Foilhole Uuid", + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Successful Response" }, - "state": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "State" - }, - "rotation": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Delete Foilhole" + }, + "get": { + "description": "Get a single foil hole by ID", + "operationId": "get_foilhole_foilholes__foilhole_uuid__get", + "parameters": [ + { + "in": "path", + "name": "foilhole_uuid", + "required": true, + "schema": { + "title": "Foilhole Uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FoilHoleResponse" + } } - ], - "title": "Rotation" + }, + "description": "Successful Response" }, - "image_path": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Image Path" - }, - "selected": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Get Foilhole" + }, + "put": { + "description": "Update a foil hole", + "operationId": "update_foilhole_foilholes__foilhole_uuid__put", + "parameters": [ + { + "in": "path", + "name": "foilhole_uuid", + "required": true, + "schema": { + "title": "Foilhole Uuid", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FoilHoleUpdateRequest" } - ], - "title": "Selected" + } }, - "unusable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FoilHoleResponse" + } } - ], - "title": "Unusable" + }, + "description": "Successful Response" }, - "stage_position_x": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Stage Position X" - }, - "stage_position_y": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Update Foilhole" + } + }, + "/foilholes/{foilhole_uuid}/micrographs": { + "get": { + "description": "Get all micrographs for a specific foil hole", + "operationId": "get_foilhole_micrographs_foilholes__foilhole_uuid__micrographs_get", + "parameters": [ + { + "in": "path", + "name": "foilhole_uuid", + "required": true, + "schema": { + "title": "Foilhole Uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/MicrographResponse" + }, + "title": "Response Get Foilhole Micrographs Foilholes Foilhole Uuid Micrographs Get", + "type": "array" + } } - ], - "title": "Stage Position Y" + }, + "description": "Successful Response" }, - "stage_position_z": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Stage Position Z" - }, - "center_x": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Get Foilhole Micrographs" + }, + "post": { + "description": "Create a new micrograph for a specific foil hole", + "operationId": "create_foilhole_micrograph_foilholes__foilhole_uuid__micrographs_post", + "parameters": [ + { + "in": "path", + "name": "foilhole_uuid", + "required": true, + "schema": { + "title": "Foilhole Uuid", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MicrographCreateRequest" } - ], - "title": "Center X" + } }, - "center_y": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MicrographResponse" + } } - ], - "title": "Center Y" + }, + "description": "Successful Response" }, - "physical_x": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Create Foilhole Micrograph" + } + }, + "/grid/{grid_uuid}/model_weights": { + "get": { + "description": "Get time series of model weights for grid", + "operationId": "get_model_weights_for_grid_grid__grid_uuid__model_weights_get", + "parameters": [ + { + "in": "path", + "name": "grid_uuid", + "required": true, + "schema": { + "title": "Grid Uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": { + "items": { + "$ref": "#/components/schemas/QualityPredictionModelWeight" + }, + "type": "array" + }, + "title": "Response Get Model Weights For Grid Grid Grid Uuid Model Weights Get", + "type": "object" + } } - ], - "title": "Physical X" + }, + "description": "Successful Response" }, - "physical_y": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Physical Y" + }, + "description": "Validation Error" + } + }, + "summary": "Get Model Weights For Grid" + } + }, + "/grid/{grid_uuid}/prediction_model/{prediction_model_name}/latent_rep/{latent_rep_model_name}/suggested_squares": { + "get": { + "operationId": "get_suggested_square_collections_grid__grid_uuid__prediction_model__prediction_model_name__latent_rep__latent_rep_model_name__suggested_squares_get", + "parameters": [ + { + "in": "path", + "name": "grid_uuid", + "required": true, + "schema": { + "title": "Grid Uuid", + "type": "string" + } }, - "size_width": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "title": "Size Width" + { + "in": "path", + "name": "prediction_model_name", + "required": true, + "schema": { + "title": "Prediction Model Name", + "type": "string" + } }, - "size_height": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + { + "in": "path", + "name": "latent_rep_model_name", + "required": true, + "schema": { + "title": "Latent Rep Model Name", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/GridSquare" + }, + "title": "Response Get Suggested Square Collections Grid Grid Uuid Prediction Model Prediction Model Name Latent Rep Latent Rep Model Name Suggested Squares Get", + "type": "array" + } } - ], - "title": "Size Height" + }, + "description": "Successful Response" }, - "acquisition_datetime": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Acquisition Datetime" - }, - "defocus": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Get Suggested Square Collections" + } + }, + "/grids": { + "get": { + "description": "Get all grids", + "operationId": "get_grids_grids_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/GridResponse" + }, + "title": "Response Get Grids Grids Get", + "type": "array" + } } - ], - "title": "Defocus" + }, + "description": "Successful Response" + } + }, + "summary": "Get Grids" + } + }, + "/grids/{grid_uuid}": { + "delete": { + "description": "Delete a grid by publishing to RabbitMQ", + "operationId": "delete_grid_grids__grid_uuid__delete", + "parameters": [ + { + "in": "path", + "name": "grid_uuid", + "required": true, + "schema": { + "title": "Grid Uuid", + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Successful Response" }, - "magnification": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Magnification" + }, + "description": "Validation Error" + } + }, + "summary": "Delete Grid" + }, + "get": { + "description": "Get a single grid by ID", + "operationId": "get_grid_grids__grid_uuid__get", + "parameters": [ + { + "in": "path", + "name": "grid_uuid", + "required": true, + "schema": { + "title": "Grid Uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GridResponse" + } + } + }, + "description": "Successful Response" }, - "pixel_size": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Pixel Size" + }, + "description": "Validation Error" + } + }, + "summary": "Get Grid" + }, + "put": { + "description": "Update a grid", + "operationId": "update_grid_grids__grid_uuid__put", + "parameters": [ + { + "in": "path", + "name": "grid_uuid", + "required": true, + "schema": { + "title": "Grid Uuid", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GridUpdateRequest" + } + } }, - "detector_name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GridResponse" + } } - ], - "title": "Detector Name" + }, + "description": "Successful Response" }, - "applied_defocus": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Update Grid" + } + }, + "/grids/{grid_uuid}/atlas": { + "get": { + "description": "Get the atlas for a specific grid", + "operationId": "get_grid_atlas_grids__grid_uuid__atlas_get", + "parameters": [ + { + "in": "path", + "name": "grid_uuid", + "required": true, + "schema": { + "title": "Grid Uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AtlasResponse" + } } - ], - "title": "Applied Defocus" + }, + "description": "Successful Response" }, - "status": { - "anyOf": [ - { - "$ref": "#/components/schemas/GridSquareStatus" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ] - }, - "lowmag": { - "type": "boolean", - "title": "Lowmag", - "default": false + }, + "description": "Validation Error" } }, - "type": "object", - "title": "GridSquareUpdateRequest" + "summary": "Get Grid Atlas" }, - "GridStatus": { - "type": "string", - "enum": [ - "none", - "scan started", - "scan completed", - "grid squares decision started", - "grid squares decision completed" + "post": { + "description": "Create a new atlas for a grid", + "operationId": "create_grid_atlas_grids__grid_uuid__atlas_post", + "parameters": [ + { + "in": "path", + "name": "grid_uuid", + "required": true, + "schema": { + "title": "Grid Uuid", + "type": "string" + } + } ], - "title": "GridStatus" - }, - "GridUpdateRequest": { - "properties": { - "uuid": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AtlasCreateRequest" } - ], - "title": "Uuid" + } }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AtlasResponse" + } } - ], - "title": "Name" + }, + "description": "Successful Response" }, - "acquisition_uuid": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Acquisition Uuid" + }, + "description": "Validation Error" + } + }, + "summary": "Create Grid Atlas" + } + }, + "/grids/{grid_uuid}/atlas_image": { + "get": { + "description": "Get a single grid by ID", + "operationId": "get_grid_atlas_image_grids__grid_uuid__atlas_image_get", + "parameters": [ + { + "in": "path", + "name": "grid_uuid", + "required": true, + "schema": { + "title": "Grid Uuid", + "type": "string" + } }, - "status": { - "anyOf": [ - { - "$ref": "#/components/schemas/GridStatus" - }, - { - "type": "null" - } - ] + { + "in": "query", + "name": "x", + "required": false, + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "X" + } }, - "data_dir": { - "anyOf": [ - { - "type": "string" + { + "in": "query", + "name": "y", + "required": false, + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Y" + } + }, + { + "in": "query", + "name": "w", + "required": false, + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "W" + } + }, + { + "in": "query", + "name": "h", + "required": false, + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "H" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} }, - { - "type": "null" + "image/png": {} + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Data Dir" + }, + "description": "Validation Error" + } + }, + "summary": "Get Grid Atlas Image" + } + }, + "/grids/{grid_uuid}/gridsquares": { + "get": { + "description": "Get all grid squares for a specific grid", + "operationId": "get_grid_gridsquares_grids__grid_uuid__gridsquares_get", + "parameters": [ + { + "in": "path", + "name": "grid_uuid", + "required": true, + "schema": { + "title": "Grid Uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/GridSquareResponse" + }, + "title": "Response Get Grid Gridsquares Grids Grid Uuid Gridsquares Get", + "type": "array" + } + } + }, + "description": "Successful Response" }, - "atlas_dir": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Get Grid Gridsquares" + }, + "post": { + "description": "Create a new grid square for a specific grid", + "operationId": "create_grid_gridsquare_grids__grid_uuid__gridsquares_post", + "parameters": [ + { + "in": "path", + "name": "grid_uuid", + "required": true, + "schema": { + "title": "Grid Uuid", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GridSquareCreateRequest" } - ], - "title": "Atlas Dir" + } }, - "scan_start_time": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GridSquareResponse" + } } - ], - "title": "Scan Start Time" + }, + "description": "Successful Response" }, - "scan_end_time": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Scan End Time" - } - }, - "type": "object", - "title": "GridUpdateRequest" - }, - "HTTPValidationError": { - "properties": { - "detail": { - "items": { - "$ref": "#/components/schemas/ValidationError" }, - "type": "array", - "title": "Detail" + "description": "Validation Error" } }, - "type": "object", - "title": "HTTPValidationError" - }, - "MicrographCreateRequest": { - "properties": { - "uuid": { - "type": "string", - "title": "Uuid" - }, - "foilhole_uuid": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "summary": "Create Grid Gridsquare" + } + }, + "/grids/{grid_uuid}/gridsquares/batch": { + "post": { + "description": "Create many grid squares for a grid in a single transaction and a single\nbatched RabbitMQ publish. Solves the overload scenario from issue #249.", + "operationId": "create_grid_gridsquares_batch_grids__grid_uuid__gridsquares_batch_post", + "parameters": [ + { + "in": "path", + "name": "grid_uuid", + "required": true, + "schema": { + "title": "Grid Uuid", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GridSquareBatchCreateRequest" } - ], - "title": "Foilhole Uuid" - }, - "foilhole_id": { - "type": "string", - "title": "Foilhole Id" + } }, - "location_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GridSquareBatchCreateResponse" + } } - ], - "title": "Location Id" + }, + "description": "Successful Response" }, - "high_res_path": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "High Res Path" - }, - "manifest_file": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Create Grid Gridsquares Batch" + } + }, + "/grids/{grid_uuid}/registered": { + "post": { + "description": "All squares on a grid have been registered at low mag", + "operationId": "grid_registered_grids__grid_uuid__registered_post", + "parameters": [ + { + "in": "path", + "name": "grid_uuid", + "required": true, + "schema": { + "title": "Grid Uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "title": "Response Grid Registered Grids Grid Uuid Registered Post", + "type": "boolean" + } } - ], - "title": "Manifest File" + }, + "description": "Successful Response" }, - "acquisition_datetime": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Acquisition Datetime" + }, + "description": "Validation Error" + } + }, + "summary": "Grid Registered" + } + }, + "/gridsquare/{gridsquare_uuid}/overall_prediction": { + "get": { + "operationId": "get_overall_prediction_for_gridsquare_gridsquare__gridsquare_uuid__overall_prediction_get", + "parameters": [ + { + "in": "path", + "name": "gridsquare_uuid", + "required": true, + "schema": { + "title": "Gridsquare Uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/OverallQualityPrediction" + }, + "title": "Response Get Overall Prediction For Gridsquare Gridsquare Gridsquare Uuid Overall Prediction Get", + "type": "array" + } + } + }, + "description": "Successful Response" }, - "defocus": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Defocus" + }, + "description": "Validation Error" + } + }, + "summary": "Get Overall Prediction For Gridsquare" + } + }, + "/gridsquares": { + "get": { + "description": "Get all grid squares", + "operationId": "get_gridsquares_gridsquares_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/GridSquareResponse" + }, + "title": "Response Get Gridsquares Gridsquares Get", + "type": "array" + } + } + }, + "description": "Successful Response" + } + }, + "summary": "Get Gridsquares" + } + }, + "/gridsquares/{gridsquare_uuid}": { + "delete": { + "description": "Delete a grid square by publishing to RabbitMQ", + "operationId": "delete_gridsquare_gridsquares__gridsquare_uuid__delete", + "parameters": [ + { + "in": "path", + "name": "gridsquare_uuid", + "required": true, + "schema": { + "title": "Gridsquare Uuid", + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Successful Response" }, - "detector_name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Detector Name" - }, - "energy_filter": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Delete Gridsquare" + }, + "get": { + "description": "Get a single grid square by ID", + "operationId": "get_gridsquare_gridsquares__gridsquare_uuid__get", + "parameters": [ + { + "in": "path", + "name": "gridsquare_uuid", + "required": true, + "schema": { + "title": "Gridsquare Uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GridSquareResponse" + } } - ], - "title": "Energy Filter" + }, + "description": "Successful Response" }, - "phase_plate": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Phase Plate" - }, - "image_size_x": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Get Gridsquare" + }, + "put": { + "description": "Update a grid square", + "operationId": "update_gridsquare_gridsquares__gridsquare_uuid__put", + "parameters": [ + { + "in": "path", + "name": "gridsquare_uuid", + "required": true, + "schema": { + "title": "Gridsquare Uuid", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GridSquareUpdateRequest" } - ], - "title": "Image Size X" + } }, - "image_size_y": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GridSquareResponse" + } } - ], - "title": "Image Size Y" + }, + "description": "Successful Response" }, - "binning_x": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Binning X" - }, - "binning_y": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Update Gridsquare" + } + }, + "/gridsquares/{gridsquare_uuid}/foilhole_quality_predictions": { + "get": { + "description": "Get time ordered predictions for all models that provide them for this square", + "operationId": "get_foilhole_quality_prediction_time_series_for_gridsquare_gridsquares__gridsquare_uuid__foilhole_quality_predictions_get", + "parameters": [ + { + "in": "path", + "name": "gridsquare_uuid", + "required": true, + "schema": { + "title": "Gridsquare Uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": { + "additionalProperties": { + "items": { + "$ref": "#/components/schemas/QualityPrediction" + }, + "type": "array" + }, + "type": "object" + }, + "title": "Response Get Foilhole Quality Prediction Time Series For Gridsquare Gridsquares Gridsquare Uuid Foilhole Quality Predictions Get", + "type": "object" + } } - ], - "title": "Binning Y" + }, + "description": "Successful Response" }, - "total_motion": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Total Motion" + }, + "description": "Validation Error" + } + }, + "summary": "Get Foilhole Quality Prediction Time Series For Gridsquare" + } + }, + "/gridsquares/{gridsquare_uuid}/foilholes": { + "get": { + "description": "Get all foil holes for a specific grid square", + "operationId": "get_gridsquare_foilholes_gridsquares__gridsquare_uuid__foilholes_get", + "parameters": [ + { + "in": "path", + "name": "gridsquare_uuid", + "required": true, + "schema": { + "title": "Gridsquare Uuid", + "type": "string" + } }, - "average_motion": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + { + "in": "query", + "name": "on_square_only", + "required": false, + "schema": { + "default": false, + "title": "On Square Only", + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/FoilHoleResponse" + }, + "title": "Response Get Gridsquare Foilholes Gridsquares Gridsquare Uuid Foilholes Get", + "type": "array" + } } - ], - "title": "Average Motion" + }, + "description": "Successful Response" }, - "ctf_max_resolution_estimate": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Ctf Max Resolution Estimate" - }, - "number_of_particles_selected": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Get Gridsquare Foilholes" + }, + "post": { + "description": "Create a new foil hole for a specific grid square", + "operationId": "create_gridsquare_foilhole_gridsquares__gridsquare_uuid__foilholes_post", + "parameters": [ + { + "in": "path", + "name": "gridsquare_uuid", + "required": true, + "schema": { + "title": "Gridsquare Uuid", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/FoilHoleCreateRequest" + }, + "title": "Foilholes", + "type": "array" } - ], - "title": "Number Of Particles Selected" + } }, - "number_of_particles_rejected": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/FoilHoleResponse" + }, + "title": "Response Create Gridsquare Foilhole Gridsquares Gridsquare Uuid Foilholes Post", + "type": "array" + } } - ], - "title": "Number Of Particles Rejected" + }, + "description": "Successful Response" }, - "selection_distribution": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Selection Distribution" - }, - "number_of_particles_picked": { - "anyOf": [ - { - "type": "integer" + }, + "description": "Validation Error" + } + }, + "summary": "Create Gridsquare Foilhole" + } + }, + "/gridsquares/{gridsquare_uuid}/gridsquare_image": { + "get": { + "description": "Get a single grid square by ID", + "operationId": "get_gridsquare_image_gridsquares__gridsquare_uuid__gridsquare_image_get", + "parameters": [ + { + "in": "path", + "name": "gridsquare_uuid", + "required": true, + "schema": { + "title": "Gridsquare Uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} }, - { - "type": "null" - } - ], - "title": "Number Of Particles Picked" + "image/png": {} + }, + "description": "Successful Response" }, - "pick_distribution": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Pick Distribution" - }, - "status": { - "$ref": "#/components/schemas/MicrographStatus", - "default": "none" + }, + "description": "Validation Error" } }, - "type": "object", - "required": [ - "uuid", - "foilhole_id" + "summary": "Get Gridsquare Image" + } + }, + "/gridsquares/{gridsquare_uuid}/quality_predictions": { + "get": { + "description": "Get time ordered predictions for all models that provide them for this square", + "operationId": "get_gridsquare_quality_prediction_time_series_gridsquares__gridsquare_uuid__quality_predictions_get", + "parameters": [ + { + "in": "path", + "name": "gridsquare_uuid", + "required": true, + "schema": { + "title": "Gridsquare Uuid", + "type": "string" + } + } ], - "title": "MicrographCreateRequest" - }, - "MicrographResponse": { - "properties": { - "uuid": { - "type": "string", - "title": "Uuid" - }, - "foilhole_uuid": { - "type": "string", - "title": "Foilhole Uuid" - }, - "foilhole_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": { + "items": { + "$ref": "#/components/schemas/QualityPrediction" + }, + "type": "array" + }, + "title": "Response Get Gridsquare Quality Prediction Time Series Gridsquares Gridsquare Uuid Quality Predictions Get", + "type": "object" + } } - ], - "title": "Foilhole Id" + }, + "description": "Successful Response" }, - "micrograph_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Micrograph Id" + }, + "description": "Validation Error" + } + }, + "summary": "Get Gridsquare Quality Prediction Time Series" + } + }, + "/gridsquares/{gridsquare_uuid}/registered": { + "post": { + "description": "All holes on a grid square have been registered at square mag", + "operationId": "gridsquare_registered_gridsquares__gridsquare_uuid__registered_post", + "parameters": [ + { + "in": "path", + "name": "gridsquare_uuid", + "required": true, + "schema": { + "title": "Gridsquare Uuid", + "type": "string" + } }, - "location_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + { + "in": "query", + "name": "count", + "required": false, + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Count" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "title": "Response Gridsquare Registered Gridsquares Gridsquare Uuid Registered Post", + "type": "boolean" + } } - ], - "title": "Location Id" - }, - "status": { - "$ref": "#/components/schemas/MicrographStatus" + }, + "description": "Successful Response" }, - "high_res_path": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "High Res Path" - }, - "manifest_file": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Gridsquare Registered" + } + }, + "/health": { + "get": { + "description": "Health check endpoint with actual connectivity checks", + "operationId": "get_health_health_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} } - ], - "title": "Manifest File" - }, - "acquisition_datetime": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" + }, + "description": "Successful Response" + } + }, + "summary": "Get Health" + } + }, + "/micrographs": { + "get": { + "description": "Get all micrographs", + "operationId": "get_micrographs_micrographs_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/MicrographResponse" + }, + "title": "Response Get Micrographs Micrographs Get", + "type": "array" + } } - ], - "title": "Acquisition Datetime" + }, + "description": "Successful Response" + } + }, + "summary": "Get Micrographs" + } + }, + "/micrographs/{micrograph_uuid}": { + "delete": { + "description": "Delete a micrograph by publishing to RabbitMQ", + "operationId": "delete_micrograph_micrographs__micrograph_uuid__delete", + "parameters": [ + { + "in": "path", + "name": "micrograph_uuid", + "required": true, + "schema": { + "title": "Micrograph Uuid", + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Successful Response" }, - "defocus": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Defocus" - }, - "detector_name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Delete Micrograph" + }, + "get": { + "description": "Get a single micrograph by ID", + "operationId": "get_micrograph_micrographs__micrograph_uuid__get", + "parameters": [ + { + "in": "path", + "name": "micrograph_uuid", + "required": true, + "schema": { + "title": "Micrograph Uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MicrographResponse" + } } - ], - "title": "Detector Name" + }, + "description": "Successful Response" }, - "energy_filter": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Energy Filter" - }, - "phase_plate": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Get Micrograph" + }, + "put": { + "description": "Update a micrograph", + "operationId": "update_micrograph_micrographs__micrograph_uuid__put", + "parameters": [ + { + "in": "path", + "name": "micrograph_uuid", + "required": true, + "schema": { + "title": "Micrograph Uuid", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MicrographUpdateRequest" } - ], - "title": "Phase Plate" + } }, - "image_size_x": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MicrographResponse" + } } - ], - "title": "Image Size X" + }, + "description": "Successful Response" }, - "image_size_y": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Image Size Y" - }, - "binning_x": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Update Micrograph" + } + }, + "/micrographs/{micrograph_uuid}/ctf_estimation/completed": { + "post": { + "description": "Publish a CTF-estimation-completed event for a micrograph to RabbitMQ.", + "operationId": "publish_micrograph_ctf_estimation_completed_micrographs__micrograph_uuid__ctf_estimation_completed_post", + "parameters": [ + { + "in": "path", + "name": "micrograph_uuid", + "required": true, + "schema": { + "title": "Micrograph Uuid", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CtfEstimationCompletedRequest" } - ], - "title": "Binning X" + } }, - "binning_y": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + "required": true + }, + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProcessingFeedbackPublishResponse" + } } - ], - "title": "Binning Y" + }, + "description": "Successful Response" }, - "total_motion": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Total Motion" - }, - "average_motion": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Publish Micrograph Ctf Estimation Completed" + } + }, + "/micrographs/{micrograph_uuid}/ctf_estimation/registered": { + "post": { + "description": "Publish a CTF-estimation-registered event for a micrograph to RabbitMQ.", + "operationId": "publish_micrograph_ctf_estimation_registered_micrographs__micrograph_uuid__ctf_estimation_registered_post", + "parameters": [ + { + "in": "path", + "name": "micrograph_uuid", + "required": true, + "schema": { + "title": "Micrograph Uuid", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CtfEstimationRegisteredRequest" } - ], - "title": "Average Motion" + } }, - "ctf_max_resolution_estimate": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "required": true + }, + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProcessingFeedbackPublishResponse" + } } - ], - "title": "Ctf Max Resolution Estimate" + }, + "description": "Successful Response" }, - "number_of_particles_selected": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Number Of Particles Selected" + }, + "description": "Validation Error" + } + }, + "summary": "Publish Micrograph Ctf Estimation Registered" + } + }, + "/micrographs/{micrograph_uuid}/motion_correction/completed": { + "post": { + "description": "Publish a motion-correction-completed event for a micrograph to RabbitMQ.", + "operationId": "publish_micrograph_motion_correction_completed_micrographs__micrograph_uuid__motion_correction_completed_post", + "parameters": [ + { + "in": "path", + "name": "micrograph_uuid", + "required": true, + "schema": { + "title": "Micrograph Uuid", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MotionCorrectionCompletedRequest" + } + } }, - "number_of_particles_rejected": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + "required": true + }, + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProcessingFeedbackPublishResponse" + } } - ], - "title": "Number Of Particles Rejected" + }, + "description": "Successful Response" }, - "selection_distribution": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Selection Distribution" + }, + "description": "Validation Error" + } + }, + "summary": "Publish Micrograph Motion Correction Completed" + } + }, + "/micrographs/{micrograph_uuid}/motion_correction/registered": { + "post": { + "description": "Publish a motion-correction-registered event for a micrograph to RabbitMQ.", + "operationId": "publish_micrograph_motion_correction_registered_micrographs__micrograph_uuid__motion_correction_registered_post", + "parameters": [ + { + "in": "path", + "name": "micrograph_uuid", + "required": true, + "schema": { + "title": "Micrograph Uuid", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MotionCorrectionRegisteredRequest" + } + } }, - "number_of_particles_picked": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + "required": true + }, + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProcessingFeedbackPublishResponse" + } } - ], - "title": "Number Of Particles Picked" + }, + "description": "Successful Response" }, - "pick_distribution": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Pick Distribution" + }, + "description": "Validation Error" } }, - "type": "object", - "required": [ - "uuid", - "foilhole_uuid", - "status" - ], - "title": "MicrographResponse" - }, - "MicrographStatus": { - "type": "string", - "enum": [ - "none", - "motion correction started", - "motion correction completed", - "ctf started", - "ctf completed", - "particle picking started", - "particle picking completed", - "particle selection started", - "particle selection completed" + "summary": "Publish Micrograph Motion Correction Registered" + } + }, + "/prediction_model/{prediction_model_name}/grid/{grid_uuid}/latent_representation": { + "get": { + "operationId": "get_latent_rep_prediction_model__prediction_model_name__grid__grid_uuid__latent_representation_get", + "parameters": [ + { + "in": "path", + "name": "prediction_model_name", + "required": true, + "schema": { + "title": "Prediction Model Name", + "type": "string" + } + }, + { + "in": "path", + "name": "grid_uuid", + "required": true, + "schema": { + "title": "Grid Uuid", + "type": "string" + } + } ], - "title": "MicrographStatus" - }, - "MicrographUpdateRequest": { - "properties": { - "uuid": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/LatentRepresentationResponse" + }, + "title": "Response Get Latent Rep Prediction Model Prediction Model Name Grid Grid Uuid Latent Representation Get", + "type": "array" + } } - ], - "title": "Uuid" + }, + "description": "Successful Response" }, - "foilhole_uuid": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Foilhole Uuid" + }, + "description": "Validation Error" + } + }, + "summary": "Get Latent Rep" + } + }, + "/prediction_model/{prediction_model_name}/grid/{grid_uuid}/prediction": { + "get": { + "operationId": "get_prediction_for_grid_prediction_model__prediction_model_name__grid__grid_uuid__prediction_get", + "parameters": [ + { + "in": "path", + "name": "prediction_model_name", + "required": true, + "schema": { + "title": "Prediction Model Name", + "type": "string" + } }, - "foilhole_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + { + "in": "path", + "name": "grid_uuid", + "required": true, + "schema": { + "title": "Grid Uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/QualityPredictionResponse" + }, + "title": "Response Get Prediction For Grid Prediction Model Prediction Model Name Grid Grid Uuid Prediction Get", + "type": "array" + } } - ], - "title": "Foilhole Id" + }, + "description": "Successful Response" }, - "location_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Location Id" + }, + "description": "Validation Error" + } + }, + "summary": "Get Prediction For Grid" + } + }, + "/prediction_model/{prediction_model_name}/gridsquare/{gridsquare_uuid}/latent_representation": { + "get": { + "operationId": "get_square_latent_rep_prediction_model__prediction_model_name__gridsquare__gridsquare_uuid__latent_representation_get", + "parameters": [ + { + "in": "path", + "name": "prediction_model_name", + "required": true, + "schema": { + "title": "Prediction Model Name", + "type": "string" + } }, - "high_res_path": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + { + "in": "path", + "name": "gridsquare_uuid", + "required": true, + "schema": { + "title": "Gridsquare Uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/LatentRepresentationResponse" + }, + "title": "Response Get Square Latent Rep Prediction Model Prediction Model Name Gridsquare Gridsquare Uuid Latent Representation Get", + "type": "array" + } } - ], - "title": "High Res Path" + }, + "description": "Successful Response" }, - "manifest_file": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Manifest File" + }, + "description": "Validation Error" + } + }, + "summary": "Get Square Latent Rep" + } + }, + "/prediction_model/{prediction_model_name}/gridsquare/{gridsquare_uuid}/prediction": { + "get": { + "operationId": "get_prediction_for_gridsquare_prediction_model__prediction_model_name__gridsquare__gridsquare_uuid__prediction_get", + "parameters": [ + { + "in": "path", + "name": "prediction_model_name", + "required": true, + "schema": { + "title": "Prediction Model Name", + "type": "string" + } }, - "acquisition_datetime": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" + { + "in": "path", + "name": "gridsquare_uuid", + "required": true, + "schema": { + "title": "Gridsquare Uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/QualityPredictionResponse" + }, + "title": "Response Get Prediction For Gridsquare Prediction Model Prediction Model Name Gridsquare Gridsquare Uuid Prediction Get", + "type": "array" + } } - ], - "title": "Acquisition Datetime" + }, + "description": "Successful Response" }, - "defocus": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Defocus" - }, - "detector_name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Get Prediction For Gridsquare" + } + }, + "/prediction_models": { + "get": { + "operationId": "get_prediction_models_prediction_models_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/QualityPredictionModelResponse" + }, + "title": "Response Get Prediction Models Prediction Models Get", + "type": "array" + } } - ], - "title": "Detector Name" - }, - "energy_filter": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" + }, + "description": "Successful Response" + } + }, + "summary": "Get Prediction Models" + }, + "post": { + "operationId": "create_prediction_model_prediction_models_post", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QualityPredictionModelCreateRequest" } - ], - "title": "Energy Filter" + } }, - "phase_plate": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QualityPredictionModelResponse" + } } - ], - "title": "Phase Plate" + }, + "description": "Successful Response" }, - "image_size_x": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Image Size X" + }, + "description": "Validation Error" + } + }, + "summary": "Create Prediction Model" + } + }, + "/prediction_models/{name}": { + "delete": { + "operationId": "delete_prediction_model_prediction_models__name__delete", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "title": "Name", + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Successful Response" }, - "image_size_y": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Delete Prediction Model" + }, + "get": { + "operationId": "get_prediction_model_prediction_models__name__get", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "title": "Name", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QualityPredictionModelResponse" + } } - ], - "title": "Image Size Y" + }, + "description": "Successful Response" }, - "binning_x": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Binning X" - }, - "binning_y": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Get Prediction Model" + }, + "put": { + "operationId": "update_prediction_model_prediction_models__name__put", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "title": "Name", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QualityPredictionModelUpdateRequest" } - ], - "title": "Binning Y" + } }, - "total_motion": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QualityPredictionModelResponse" + } } - ], - "title": "Total Motion" + }, + "description": "Successful Response" }, - "average_motion": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Average Motion" + }, + "description": "Validation Error" + } + }, + "summary": "Update Prediction Model" + } + }, + "/quality_metric/{metric_name}/gridsquares/{gridsquare_uuid}/foilhole_quality_predictions": { + "get": { + "description": "Get time ordered predictions for all models that provide them for this square", + "operationId": "get_foilhole_quality_prediction_time_series_for_gridsquare_for_metric_quality_metric__metric_name__gridsquares__gridsquare_uuid__foilhole_quality_predictions_get", + "parameters": [ + { + "in": "path", + "name": "metric_name", + "required": true, + "schema": { + "title": "Metric Name", + "type": "string" + } }, - "ctf_max_resolution_estimate": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" + { + "in": "path", + "name": "gridsquare_uuid", + "required": true, + "schema": { + "title": "Gridsquare Uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": { + "additionalProperties": { + "items": { + "$ref": "#/components/schemas/QualityPrediction" + }, + "type": "array" + }, + "type": "object" + }, + "title": "Response Get Foilhole Quality Prediction Time Series For Gridsquare For Metric Quality Metric Metric Name Gridsquares Gridsquare Uuid Foilhole Quality Predictions Get", + "type": "object" + } } - ], - "title": "Ctf Max Resolution Estimate" + }, + "description": "Successful Response" }, - "number_of_particles_selected": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Number Of Particles Selected" - }, - "number_of_particles_rejected": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + }, + "description": "Validation Error" + } + }, + "summary": "Get Foilhole Quality Prediction Time Series For Gridsquare For Metric" + } + }, + "/quality_metrics": { + "get": { + "operationId": "get_quality_metrics_quality_metrics_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QualityMetricsResponse" + } } - ], - "title": "Number Of Particles Rejected" - }, - "selection_distribution": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + }, + "description": "Successful Response" + } + }, + "summary": "Get Quality Metrics" + } + }, + "/quality_predictions": { + "post": { + "operationId": "create_quality_prediction_quality_predictions_post", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QualityPredictionCreateRequest" } - ], - "title": "Selection Distribution" + } }, - "number_of_particles_picked": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QualityPredictionResponse" + } } - ], - "title": "Number Of Particles Picked" + }, + "description": "Successful Response" }, - "pick_distribution": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } - ], - "title": "Pick Distribution" - }, - "status": { - "$ref": "#/components/schemas/MicrographStatus", - "default": "none" + }, + "description": "Validation Error" } }, - "type": "object", - "title": "MicrographUpdateRequest" - }, - "ValidationError": { - "properties": { - "loc": { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "integer" - } - ] + "summary": "Create Quality Prediction" + } + }, + "/status": { + "get": { + "description": "Get API status and configuration information", + "operationId": "get_status_status_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } }, - "type": "array", - "title": "Location" - }, - "msg": { - "type": "string", - "title": "Message" - }, - "type": { - "type": "string", - "title": "Error Type" + "description": "Successful Response" } }, - "type": "object", - "required": [ - "loc", - "msg", - "type" - ], - "title": "ValidationError" + "summary": "Get Status" } } - }, - "servers": [ - { - "url": "http://localhost:8001", - "description": "Local development server" - } - ] + } }