{ "openapi": "3.1.0", "info": { "title": "interactEM", "version": "0.1.0" }, "paths": { "/api/v1/login/access-token": { "post": { "tags": ["login"], "summary": "Login Access Token", "description": "OAuth2 compatible token login, get an access token for future requests", "operationId": "login-login_access_token", "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/Body_login-login_access_token" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Token" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/login/external-token": { "post": { "tags": ["login"], "summary": "Login With External Token", "description": "Login with an external token (e.g., distiller)", "operationId": "login-login_with_external_token", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Token" } } } } }, "security": [{ "HTTPBearer": [] }] } }, "/api/v1/login/test-token": { "post": { "tags": ["login"], "summary": "Test Token", "description": "Test access token", "operationId": "login-test_token", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPublic" } } } } }, "security": [{ "OAuth2PasswordBearer": [] }] } }, "/api/v1/users/": { "get": { "tags": ["users"], "summary": "Read Users", "description": "Retrieve users.", "operationId": "users-read_users", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "skip", "in": "query", "required": false, "schema": { "type": "integer", "default": 0, "title": "Skip" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "default": 100, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UsersPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": ["users"], "summary": "Create User", "description": "Create new user.", "operationId": "users-create_user", "security": [{ "OAuth2PasswordBearer": [] }], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserCreate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/users/me": { "get": { "tags": ["users"], "summary": "Read User Me", "description": "Get current user.", "operationId": "users-read_user_me", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPublic" } } } } }, "security": [{ "OAuth2PasswordBearer": [] }] }, "delete": { "tags": ["users"], "summary": "Delete User Me", "description": "Delete own user.", "operationId": "users-delete_user_me", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Message" } } } } }, "security": [{ "OAuth2PasswordBearer": [] }] }, "patch": { "tags": ["users"], "summary": "Update User Me", "description": "Update own user.", "operationId": "users-update_user_me", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserUpdateMe" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [{ "OAuth2PasswordBearer": [] }] } }, "/api/v1/users/me/password": { "patch": { "tags": ["users"], "summary": "Update Password Me", "description": "Update own password.", "operationId": "users-update_password_me", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePassword" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Message" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [{ "OAuth2PasswordBearer": [] }] } }, "/api/v1/users/{user_id}": { "get": { "tags": ["users"], "summary": "Read User By Id", "description": "Get a specific user by id.", "operationId": "users-read_user_by_id", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "user_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "User Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": ["users"], "summary": "Update User", "description": "Update a user.", "operationId": "users-update_user", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "user_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "User Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": ["users"], "summary": "Delete User", "description": "Delete a user.", "operationId": "users-delete_user", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "user_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "User Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Message" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/pipelines/": { "get": { "tags": ["pipelines"], "summary": "Read Pipelines", "description": "Retrieve pipelines, ordered by last updated. Includes pipeline name.", "operationId": "pipelines-read_pipelines", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "default": 0, "title": "Offset" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "default": 100, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelinesPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": ["pipelines"], "summary": "Create Pipeline", "description": "Create new pipeline.", "operationId": "pipelines-create_pipeline", "security": [{ "OAuth2PasswordBearer": [] }], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineCreate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelinePublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/pipelines/{id}": { "get": { "tags": ["pipelines"], "summary": "Read Pipeline", "description": "Get pipeline by ID.", "operationId": "pipelines-read_pipeline", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelinePublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": ["pipelines"], "summary": "Update Pipeline", "description": "Update a pipeline's name.", "operationId": "pipelines-update_pipeline", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelinePublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": ["pipelines"], "summary": "Delete Pipeline", "description": "Delete an pipeline.", "operationId": "pipelines-delete_pipeline", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Message" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/pipelines/{id}/revisions": { "get": { "tags": ["pipelines"], "summary": "List Pipeline Revisions", "description": "List revisions for a pipeline (paginated).", "operationId": "pipelines-list_pipeline_revisions", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Id" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "default": 0, "title": "Offset" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "default": 20, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PipelineRevisionPublic" }, "title": "Response Pipelines-List Pipeline Revisions" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": ["pipelines"], "summary": "Add Pipeline Revision", "description": "Add a new revision to a pipeline.", "operationId": "pipelines-add_pipeline_revision", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineRevisionCreate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineRevisionPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/pipelines/{id}/revisions/{revision_id}": { "get": { "tags": ["pipelines"], "summary": "Read Pipeline Revision", "description": "Get specific revision data for a pipeline.", "operationId": "pipelines-read_pipeline_revision", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Id" } }, { "name": "revision_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Revision Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineRevisionPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": ["pipelines"], "summary": "Update Pipeline Revision", "description": "Update a specific pipeline revision.", "operationId": "pipelines-update_pipeline_revision", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Id" } }, { "name": "revision_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Revision Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineRevisionUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineRevisionPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/pipelines/{id}/revisions/{revision_id}/positions": { "patch": { "tags": ["pipelines"], "summary": "Update Pipeline Revision Positions", "description": "Update operator positions for a specific pipeline revision.", "operationId": "pipelines-update_pipeline_revision_positions", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Id" } }, { "name": "revision_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Revision Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineRevisionPositionsUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineRevisionPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/pipelines/{id}/duplicate": { "post": { "tags": ["pipelines"], "summary": "Duplicate Pipeline", "description": "Duplicate a pipeline with all its revisions.", "operationId": "pipelines-duplicate_pipeline", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelinePublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/pipelines/{id}/deployments": { "get": { "tags": ["pipelines"], "summary": "List Pipeline Deployments", "description": "List deployments for a pipeline.", "operationId": "pipelines-list_pipeline_deployments", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Id" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "default": 0, "title": "Offset" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "default": 20, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineDeploymentsPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/pipelines/{id}/revisions/{revision_id}/deployments": { "get": { "tags": ["pipelines"], "summary": "List Pipeline Revision Deployments", "description": "List all deployments for a specific pipeline revision.", "operationId": "pipelines-list_pipeline_revision_deployments", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Id" } }, { "name": "revision_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Revision Id" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "default": 0, "title": "Offset" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "default": 20, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineDeploymentsPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/deployments/": { "get": { "tags": ["deployments"], "summary": "List Pipeline Deployments", "description": "Get all pipeline deployments accessible to the current user with pagination.\nOptionally filter by state.", "operationId": "deployments-list_pipeline_deployments", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "default": 0, "title": "Offset" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "default": 100, "title": "Limit" } }, { "name": "states", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "array", "items": { "$ref": "#/components/schemas/PipelineDeploymentState" } }, { "type": "null" } ], "title": "States" } }, { "name": "pipeline_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Pipeline Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineDeploymentsPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": ["deployments"], "summary": "Create Pipeline Deployment", "description": "Create a new pipeline deployment and publish initialization event.\nState transitions are managed by the orchestrator.", "operationId": "deployments-create_pipeline_deployment", "security": [{ "OAuth2PasswordBearer": [] }], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineDeploymentCreate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineDeploymentPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/deployments/{id}": { "get": { "tags": ["deployments"], "summary": "Read Pipeline Deployment", "description": "Get pipeline deployment by ID.", "operationId": "deployments-read_pipeline_deployment", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineDeploymentPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": ["deployments"], "summary": "Update Pipeline Deployment", "description": "Update a pipeline deployment state and publish events for the orchestrator.", "operationId": "deployments-update_pipeline_deployment", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineDeploymentUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineDeploymentPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/operators/": { "get": { "tags": ["operators"], "summary": "Read Operators", "description": "Retrieve available operators. Use refresh=true to invalidate cache and fetch fresh data.", "operationId": "operators-read_operators", "security": [{ "OAuth2PasswordBearer": [] }], "parameters": [ { "name": "refresh", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Force refresh of operators cache", "default": false, "title": "Refresh" }, "description": "Force refresh of operators cache" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OperatorSpecs" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/agents/launch": { "post": { "tags": ["agents"], "summary": "Launch Agent", "description": "Launch an agent remotely.", "operationId": "agents-launch_agent", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentCreateEvent" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [{ "OAuth2PasswordBearer": [] }] } } }, "components": { "schemas": { "AgentCreateEvent": { "properties": { "machine": { "$ref": "#/components/schemas/PublicHost" }, "duration": { "type": "string", "format": "duration", "title": "Duration" }, "compute_type": { "$ref": "#/components/schemas/ComputeType" }, "num_nodes": { "type": "integer", "title": "Num Nodes" }, "extra": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Extra" } }, "type": "object", "required": ["machine", "duration", "compute_type", "num_nodes"], "title": "AgentCreateEvent" }, "Body_login-login_access_token": { "properties": { "grant_type": { "anyOf": [ { "type": "string", "pattern": "^password$" }, { "type": "null" } ], "title": "Grant Type" }, "username": { "type": "string", "title": "Username" }, "password": { "type": "string", "format": "password", "title": "Password" }, "scope": { "type": "string", "title": "Scope", "default": "" }, "client_id": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "Client Id" }, "client_secret": { "anyOf": [{ "type": "string" }, { "type": "null" }], "format": "password", "title": "Client Secret" } }, "type": "object", "required": ["username", "password"], "title": "Body_login-login_access_token" }, "CanonicalEdge": { "properties": { "input_id": { "type": "string", "format": "uuid", "title": "Input Id" }, "output_id": { "type": "string", "format": "uuid", "title": "Output Id" } }, "type": "object", "required": ["input_id", "output_id"], "title": "CanonicalEdge" }, "CanonicalOperator": { "properties": { "id": { "type": "string", "format": "uuid", "title": "Id" }, "label": { "type": "string", "title": "Label" }, "description": { "type": "string", "title": "Description" }, "image": { "type": "string", "title": "Image" }, "inputs": { "items": { "type": "string", "format": "uuid" }, "type": "array", "title": "Inputs", "default": [] }, "outputs": { "items": { "type": "string", "format": "uuid" }, "type": "array", "title": "Outputs", "default": [] }, "parameters": { "anyOf": [ { "items": { "$ref": "#/components/schemas/OperatorSpecParameter" }, "type": "array" }, { "type": "null" } ], "title": "Parameters" }, "tags": { "items": { "$ref": "#/components/schemas/OperatorSpecTag" }, "type": "array", "title": "Tags", "default": [] }, "parallel_config": { "anyOf": [ { "$ref": "#/components/schemas/ParallelConfig" }, { "type": "null" } ] }, "spec_id": { "type": "string", "format": "uuid", "title": "Spec Id" }, "node_type": { "$ref": "#/components/schemas/NodeType", "default": "operator" } }, "type": "object", "required": ["id", "label", "description", "image", "spec_id"], "title": "CanonicalOperator" }, "CanonicalPipelineData": { "properties": { "operators": { "items": { "$ref": "#/components/schemas/CanonicalOperator" }, "type": "array", "title": "Operators", "default": [] }, "ports": { "items": { "$ref": "#/components/schemas/CanonicalPort" }, "type": "array", "title": "Ports", "default": [] }, "edges": { "items": { "$ref": "#/components/schemas/CanonicalEdge" }, "type": "array", "title": "Edges", "default": [] } }, "type": "object", "title": "CanonicalPipelineData" }, "CanonicalPort": { "properties": { "id": { "type": "string", "format": "uuid", "title": "Id" }, "node_type": { "$ref": "#/components/schemas/NodeType", "default": "port" }, "port_type": { "$ref": "#/components/schemas/PortType" }, "canonical_operator_id": { "type": "string", "format": "uuid", "title": "Canonical Operator Id" }, "portkey": { "type": "string", "title": "Portkey" } }, "type": "object", "required": ["id", "port_type", "canonical_operator_id", "portkey"], "title": "CanonicalPort" }, "ComputeType": { "type": "string", "enum": ["gpu", "cpu"], "title": "ComputeType" }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "Message": { "properties": { "message": { "type": "string", "title": "Message" } }, "type": "object", "required": ["message"], "title": "Message" }, "NodeType": { "type": "string", "enum": ["operator", "port"], "title": "NodeType" }, "OperatorPosition": { "properties": { "canonical_operator_id": { "type": "string", "format": "uuid", "title": "Canonical Operator Id" }, "x": { "type": "number", "title": "X" }, "y": { "type": "number", "title": "Y" } }, "type": "object", "required": ["canonical_operator_id", "x", "y"], "title": "OperatorPosition", "description": "Position metadata for an operator on the canvas." }, "OperatorSpec": { "properties": { "id": { "type": "string", "format": "uuid", "title": "Id" }, "label": { "type": "string", "title": "Label" }, "description": { "type": "string", "title": "Description" }, "image": { "type": "string", "title": "Image" }, "inputs": { "anyOf": [ { "items": { "$ref": "#/components/schemas/OperatorSpecInput" }, "type": "array" }, { "type": "null" } ], "title": "Inputs" }, "outputs": { "anyOf": [ { "items": { "$ref": "#/components/schemas/OperatorSpecOutput" }, "type": "array" }, { "type": "null" } ], "title": "Outputs" }, "parameters": { "anyOf": [ { "items": { "$ref": "#/components/schemas/OperatorSpecParameter" }, "type": "array" }, { "type": "null" } ], "title": "Parameters" }, "tags": { "anyOf": [ { "items": { "$ref": "#/components/schemas/OperatorSpecTag" }, "type": "array" }, { "type": "null" } ], "title": "Tags" }, "parallel_config": { "anyOf": [ { "$ref": "#/components/schemas/ParallelConfig" }, { "type": "null" } ] } }, "type": "object", "required": ["id", "label", "description", "image"], "title": "OperatorSpec" }, "OperatorSpecInput": { "properties": { "name": { "type": "string", "title": "Name" }, "label": { "type": "string", "title": "Label" }, "description": { "type": "string", "title": "Description" }, "type": { "type": "string", "title": "Type" } }, "type": "object", "required": ["name", "label", "description", "type"], "title": "OperatorSpecInput" }, "OperatorSpecOutput": { "properties": { "name": { "type": "string", "title": "Name" }, "label": { "type": "string", "title": "Label" }, "description": { "type": "string", "title": "Description" }, "type": { "type": "string", "title": "Type" } }, "type": "object", "required": ["name", "label", "description", "type"], "title": "OperatorSpecOutput" }, "OperatorSpecParameter": { "oneOf": [ { "$ref": "#/components/schemas/OperatorSpecParameterString" }, { "$ref": "#/components/schemas/OperatorSpecParameterMount" }, { "$ref": "#/components/schemas/OperatorSpecParameterInteger" }, { "$ref": "#/components/schemas/OperatorSpecParameterFloat" }, { "$ref": "#/components/schemas/OperatorSpecParameterBoolean" }, { "$ref": "#/components/schemas/OperatorSpecParameterStrEnum" } ], "title": "OperatorSpecParameter", "discriminator": { "propertyName": "type", "mapping": { "bool": "#/components/schemas/OperatorSpecParameterBoolean", "float": "#/components/schemas/OperatorSpecParameterFloat", "int": "#/components/schemas/OperatorSpecParameterInteger", "mount": "#/components/schemas/OperatorSpecParameterMount", "str": "#/components/schemas/OperatorSpecParameterString", "str-enum": "#/components/schemas/OperatorSpecParameterStrEnum" } } }, "OperatorSpecParameterBoolean": { "properties": { "name": { "type": "string", "title": "Name" }, "label": { "type": "string", "title": "Label" }, "description": { "type": "string", "title": "Description" }, "type": { "type": "string", "const": "bool", "title": "Type" }, "default": { "type": "boolean", "title": "Default" }, "required": { "type": "boolean", "title": "Required" } }, "type": "object", "required": [ "name", "label", "description", "type", "default", "required" ], "title": "OperatorSpecParameterBoolean" }, "OperatorSpecParameterFloat": { "properties": { "name": { "type": "string", "title": "Name" }, "label": { "type": "string", "title": "Label" }, "description": { "type": "string", "title": "Description" }, "type": { "type": "string", "const": "float", "title": "Type" }, "default": { "type": "number", "title": "Default" }, "required": { "type": "boolean", "title": "Required" } }, "type": "object", "required": [ "name", "label", "description", "type", "default", "required" ], "title": "OperatorSpecParameterFloat" }, "OperatorSpecParameterInteger": { "properties": { "name": { "type": "string", "title": "Name" }, "label": { "type": "string", "title": "Label" }, "description": { "type": "string", "title": "Description" }, "type": { "type": "string", "const": "int", "title": "Type" }, "default": { "type": "integer", "title": "Default" }, "required": { "type": "boolean", "title": "Required" } }, "type": "object", "required": [ "name", "label", "description", "type", "default", "required" ], "title": "OperatorSpecParameterInteger" }, "OperatorSpecParameterMount": { "properties": { "name": { "type": "string", "title": "Name" }, "label": { "type": "string", "title": "Label" }, "description": { "type": "string", "title": "Description" }, "type": { "type": "string", "const": "mount", "title": "Type" }, "default": { "type": "string", "title": "Default" }, "required": { "type": "boolean", "title": "Required" } }, "type": "object", "required": [ "name", "label", "description", "type", "default", "required" ], "title": "OperatorSpecParameterMount" }, "OperatorSpecParameterStrEnum": { "properties": { "name": { "type": "string", "title": "Name" }, "label": { "type": "string", "title": "Label" }, "description": { "type": "string", "title": "Description" }, "type": { "type": "string", "const": "str-enum", "title": "Type" }, "default": { "type": "string", "title": "Default" }, "required": { "type": "boolean", "title": "Required" }, "options": { "items": { "type": "string" }, "type": "array", "title": "Options" } }, "type": "object", "required": [ "name", "label", "description", "type", "default", "required", "options" ], "title": "OperatorSpecParameterStrEnum" }, "OperatorSpecParameterString": { "properties": { "name": { "type": "string", "title": "Name" }, "label": { "type": "string", "title": "Label" }, "description": { "type": "string", "title": "Description" }, "type": { "type": "string", "const": "str", "title": "Type" }, "default": { "type": "string", "title": "Default" }, "required": { "type": "boolean", "title": "Required" } }, "type": "object", "required": [ "name", "label", "description", "type", "default", "required" ], "title": "OperatorSpecParameterString" }, "OperatorSpecTag": { "properties": { "value": { "type": "string", "title": "Value" }, "description": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "Description" } }, "type": "object", "required": ["value"], "title": "OperatorSpecTag" }, "OperatorSpecs": { "properties": { "data": { "items": { "$ref": "#/components/schemas/OperatorSpec" }, "type": "array", "title": "Data" } }, "type": "object", "required": ["data"], "title": "OperatorSpecs" }, "ParallelConfig": { "properties": { "type": { "$ref": "#/components/schemas/ParallelType", "default": "none" } }, "type": "object", "title": "ParallelConfig" }, "ParallelType": { "type": "string", "enum": ["none", "embarrassing"], "title": "ParallelType" }, "PipelineCreate": { "properties": { "data": { "additionalProperties": true, "type": "object", "title": "Data" } }, "type": "object", "required": ["data"], "title": "PipelineCreate" }, "PipelineDeploymentCreate": { "properties": { "pipeline_id": { "type": "string", "format": "uuid", "title": "Pipeline Id" }, "revision_id": { "type": "integer", "title": "Revision Id" } }, "type": "object", "required": ["pipeline_id", "revision_id"], "title": "PipelineDeploymentCreate" }, "PipelineDeploymentPublic": { "properties": { "id": { "type": "string", "format": "uuid", "title": "Id" }, "pipeline_id": { "type": "string", "format": "uuid", "title": "Pipeline Id" }, "revision_id": { "type": "integer", "title": "Revision Id" }, "state": { "$ref": "#/components/schemas/PipelineDeploymentState" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" } }, "type": "object", "required": [ "id", "pipeline_id", "revision_id", "state", "created_at", "updated_at" ], "title": "PipelineDeploymentPublic" }, "PipelineDeploymentState": { "type": "string", "enum": [ "pending", "assigned_agents", "failed_to_start", "failure_on_agent", "running", "cancelled" ], "title": "PipelineDeploymentState" }, "PipelineDeploymentUpdate": { "properties": { "state": { "$ref": "#/components/schemas/PipelineDeploymentState" } }, "type": "object", "required": ["state"], "title": "PipelineDeploymentUpdate" }, "PipelineDeploymentsPublic": { "properties": { "data": { "items": { "$ref": "#/components/schemas/PipelineDeploymentPublic" }, "type": "array", "title": "Data" }, "count": { "type": "integer", "title": "Count" } }, "type": "object", "required": ["data", "count"], "title": "PipelineDeploymentsPublic" }, "PipelinePublic": { "properties": { "name": { "anyOf": [ { "type": "string", "maxLength": 128 }, { "type": "null" } ], "title": "Name", "default": "New Pipeline" }, "data": { "$ref": "#/components/schemas/CanonicalPipelineData" }, "id": { "type": "string", "format": "uuid", "title": "Id" }, "owner_id": { "type": "string", "format": "uuid", "title": "Owner Id" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "current_revision_id": { "type": "integer", "title": "Current Revision Id" } }, "type": "object", "required": [ "data", "id", "owner_id", "updated_at", "created_at", "current_revision_id" ], "title": "PipelinePublic" }, "PipelineRevisionCreate": { "properties": { "data": { "additionalProperties": true, "type": "object", "title": "Data" } }, "type": "object", "required": ["data"], "title": "PipelineRevisionCreate" }, "PipelineRevisionPositionsUpdate": { "properties": { "positions": { "items": { "$ref": "#/components/schemas/OperatorPosition" }, "type": "array", "title": "Positions" } }, "type": "object", "required": ["positions"], "title": "PipelineRevisionPositionsUpdate" }, "PipelineRevisionPublic": { "properties": { "pipeline_id": { "type": "string", "format": "uuid", "title": "Pipeline Id" }, "revision_id": { "type": "integer", "title": "Revision Id" }, "data": { "$ref": "#/components/schemas/CanonicalPipelineData" }, "tag": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "Tag" }, "positions": { "items": { "$ref": "#/components/schemas/OperatorPosition" }, "type": "array", "title": "Positions" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" } }, "type": "object", "required": [ "pipeline_id", "revision_id", "data", "tag", "positions", "created_at" ], "title": "PipelineRevisionPublic" }, "PipelineRevisionUpdate": { "properties": { "tag": { "anyOf": [ { "type": "string", "maxLength": 128 }, { "type": "null" } ], "title": "Tag" } }, "type": "object", "title": "PipelineRevisionUpdate" }, "PipelineUpdate": { "properties": { "name": { "anyOf": [ { "type": "string", "maxLength": 128 }, { "type": "null" } ], "title": "Name" } }, "type": "object", "required": ["name"], "title": "PipelineUpdate" }, "PipelinesPublic": { "properties": { "data": { "items": { "$ref": "#/components/schemas/PipelinePublic" }, "type": "array", "title": "Data" }, "count": { "type": "integer", "title": "Count" } }, "type": "object", "required": ["data", "count"], "title": "PipelinesPublic" }, "PortType": { "type": "string", "enum": ["input", "output"], "title": "PortType" }, "PublicHost": { "type": "string", "enum": ["dtn01", "dtns", "perlmutter"], "title": "PublicHost" }, "Token": { "properties": { "access_token": { "type": "string", "title": "Access Token" }, "token_type": { "type": "string", "title": "Token Type", "default": "bearer" }, "nats_jwt": { "type": "string", "title": "Nats Jwt" } }, "type": "object", "required": ["access_token", "nats_jwt"], "title": "Token" }, "UpdatePassword": { "properties": { "current_password": { "type": "string", "maxLength": 40, "minLength": 8, "title": "Current Password" }, "new_password": { "type": "string", "maxLength": 40, "minLength": 8, "title": "New Password" } }, "type": "object", "required": ["current_password", "new_password"], "title": "UpdatePassword" }, "UserCreate": { "properties": { "username": { "type": "string", "maxLength": 255, "title": "Username" }, "is_active": { "type": "boolean", "title": "Is Active", "default": true }, "is_superuser": { "type": "boolean", "title": "Is Superuser", "default": false }, "is_external": { "type": "boolean", "title": "Is External", "default": false }, "full_name": { "anyOf": [ { "type": "string", "maxLength": 255 }, { "type": "null" } ], "title": "Full Name" }, "password": { "type": "string", "maxLength": 40, "minLength": 8, "title": "Password" } }, "type": "object", "required": ["username", "password"], "title": "UserCreate" }, "UserPublic": { "properties": { "username": { "type": "string", "maxLength": 255, "title": "Username" }, "is_active": { "type": "boolean", "title": "Is Active", "default": true }, "is_superuser": { "type": "boolean", "title": "Is Superuser", "default": false }, "is_external": { "type": "boolean", "title": "Is External", "default": false }, "full_name": { "anyOf": [ { "type": "string", "maxLength": 255 }, { "type": "null" } ], "title": "Full Name" }, "id": { "type": "string", "format": "uuid", "title": "Id" } }, "type": "object", "required": ["username", "id"], "title": "UserPublic" }, "UserUpdate": { "properties": { "username": { "anyOf": [ { "type": "string", "maxLength": 255 }, { "type": "null" } ], "title": "Username" }, "is_active": { "type": "boolean", "title": "Is Active", "default": true }, "is_superuser": { "type": "boolean", "title": "Is Superuser", "default": false }, "is_external": { "type": "boolean", "title": "Is External", "default": false }, "full_name": { "anyOf": [ { "type": "string", "maxLength": 255 }, { "type": "null" } ], "title": "Full Name" }, "password": { "anyOf": [ { "type": "string", "maxLength": 40, "minLength": 8 }, { "type": "null" } ], "title": "Password" } }, "type": "object", "title": "UserUpdate" }, "UserUpdateMe": { "properties": { "full_name": { "anyOf": [ { "type": "string", "maxLength": 255 }, { "type": "null" } ], "title": "Full Name" }, "username": { "anyOf": [ { "type": "string", "maxLength": 255 }, { "type": "null" } ], "title": "Username" } }, "type": "object", "title": "UserUpdateMe" }, "UsersPublic": { "properties": { "data": { "items": { "$ref": "#/components/schemas/UserPublic" }, "type": "array", "title": "Data" }, "count": { "type": "integer", "title": "Count" } }, "type": "object", "required": ["data", "count"], "title": "UsersPublic" }, "ValidationError": { "properties": { "loc": { "items": { "anyOf": [{ "type": "string" }, { "type": "integer" }] }, "type": "array", "title": "Location" }, "msg": { "type": "string", "title": "Message" }, "type": { "type": "string", "title": "Error Type" } }, "type": "object", "required": ["loc", "msg", "type"], "title": "ValidationError" } }, "securitySchemes": { "HTTPBearer": { "type": "http", "scheme": "bearer" }, "OAuth2PasswordBearer": { "type": "oauth2", "flows": { "password": { "scopes": {}, "tokenUrl": "/api/v1/login/access-token" } } } } } }