diff --git a/.bumpversion.toml b/.bumpversion.toml index 6a50277c5a46b53714b73e224c497ce26ab4686a..b0ce7b0b36ea68502058182e7e94063572c3e919 100644 --- a/.bumpversion.toml +++ b/.bumpversion.toml @@ -78,3 +78,8 @@ filename = "services/workflow/gitlab-requirements.txt" [[tool.bumpversion.files]] filename = "apps/cli/executables/go/spelunker/main.go" + +[[tool.bumpversion.files]] +glob = "services/*/swagger-schema.yaml" +search = "version: \"{current_version}\"" +replace = "version: \"{new_version}\"" diff --git a/docs/source/overview/overall-architecture.rst b/docs/source/overview/overall-architecture.rst index 529cdec4bd07634c62c76764bdfd98cbd3912a8e..a03d41296f40e8e723c03ec44f92ee45e3414ed5 100644 --- a/docs/source/overview/overall-architecture.rst +++ b/docs/source/overview/overall-architecture.rst @@ -17,8 +17,12 @@ We follow some simple design patterns to make the system consistent REST ---- -REST APIs are provided by the Workflow and Capability services. The documentation for these APIs -can be viewed by looking at `the Swagger schema in the repository <https://gitlab.nrao.edu/ssa/workspaces/-/blob/main/docs/swagger-schema.yaml>`_. +REST APIs are provided by the Capability, Workflow and Notification services. The documentation for these APIs +can be viewed by looking at the Swagger schemas in the repository: + +* `Capability Service <https://gitlab.nrao.edu/ssa/workspaces/-/blob/main/services/capability/swagger-schema.yaml>`_ +* `Workflow Service <https://gitlab.nrao.edu/ssa/workspaces/-/blob/main/services/workflow/swagger-schema.yaml>`_ +* `Notification Service <https://gitlab.nrao.edu/ssa/workspaces/-/blob/main/services/notification/swagger-schema.yaml>`_ Both the Workflow and Capability APIs revolve around creating and submitting "requests." The request structure at the Workflow level is much simpler, because a workflow can either succeed or fail, wherease diff --git a/docs/swagger-schema.yaml b/services/capability/swagger-schema.yaml similarity index 62% rename from docs/swagger-schema.yaml rename to services/capability/swagger-schema.yaml index 1b7b7632c665239e19c48e36e6dc9283af605643..48e469b0c2d1d301a507cb88173fb436d8d57397 100644 --- a/docs/swagger-schema.yaml +++ b/services/capability/swagger-schema.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: description: "Capability service for the SSA Workspaces project" - version: "1.0.0" + version: "2.8.4" title: "Capability Service" contact: email: "dms-ssa@nrao.edu" @@ -11,8 +11,8 @@ tags: description: "Access capabilities and create requests" - name: "requests" description: "Access and submit capability requests" - - name: "workflows" - description: "Access and submit workflow requests" + - name: "CASA Matrix" + description: "Access the CASA Matrix and retrieve update version information" schemes: - "https" paths: @@ -629,7 +629,7 @@ paths: - $ref: "#/parameters/casa-telescope" get: tags: - - "casa-matrix" + - "CASA Matrix" summary: "Get a valid CASA version for processing" description: "Get a valid CASA version for processing, providing the optional parameters will filter the version" operationId: "get_casa_version" @@ -651,7 +651,7 @@ paths: - $ref: "#/parameters/casa-telescope" get: tags: - - "casa-matrix" + - "CASA Matrix" summary: "Get a list of valid CASA versions for processing" description: "Get a list of valid CASA versions for processing, providing the optional parameters will filter the versions" operationId: "get_casa_versions" @@ -671,7 +671,7 @@ paths: - $ref: "#/parameters/casa-capability" get: tags: - - "casa-matrix" + - "CASA Matrix" summary: "Get a CASA recipe for processing the given capability" description: "Get a valid CASA recipe for processing the given capability" operationId: "get_casa_recipe" @@ -693,7 +693,7 @@ paths: - $ref: "#/parameters/casa-compatible" post: tags: - - "casa-matrix" + - "CASA Matrix" summary: "Add a CASA version to the matrix tables" description: "Add a CASA version to the matrix tables to enable for the given capability list" operationId: "add_casa_version" @@ -710,7 +710,7 @@ paths: type: "boolean" put: tags: - - "casa-matrix" + - "CASA Matrix" summary: "Update a CASA version in the matrix tables" description: "Update a CASA version in the matrix tables to enable for the given capability list" operationId: "update_casa_version" @@ -727,7 +727,7 @@ paths: type: "boolean" delete: tags: - - "casa-matrix" + - "CASA Matrix" summary: "Delete a CASA version from the matrix tables" description: "Delete a CASA version from the matrix tables" operationId: "delete_casa_version" @@ -745,7 +745,7 @@ paths: /casa_matrix/links: post: tags: - - "casa-matrix" + - "CASA Matrix" summary: "Refresh the links of installed CASA versions" description: "Refresh the links of installed CASA versions, existing links will be replaced for this environment" operationId: "make_casa_links" @@ -760,551 +760,6 @@ paths: description: "successful operation" schema: $ref: "#/definitions/CasaVersions" - /workflows: - get: - tags: - - "workflows" - summary: "View the list of workflows" - description: "" - operationId: "Workflows.list_workflows" - produces: - - "application/json" - responses: - "200": - description: "successful operation" - schema: - $ref: "#/definitions/WorkflowList" - /workflows/{name}: - get: - tags: - - "workflows" - summary: "View the named workflow" - description: "" - operationId: "Workflows.get_workflow" - parameters: - - $ref: '#/parameters/workflow-name' - consumes: - - "application/json" - produces: - - "application/json" - responses: - "404": - description: - "Workflow not found" - "200": - description: "successful operation" - schema: - $ref: "#/definitions/Workflow" - /workflows/{name}/requests/create: - post: - tags: - - "workflows" - summary: "Create a workflow request" - description: "" - operationId: "WorkflowRequestRestService.create_workflow_request" - parameters: - - $ref: '#/parameters/workflow-name' - - name: "body" - in: "body" - description: "Argument to the workflow" - schema: - type: "object" - consumes: - - "application/json" - produces: - - "application/json" - responses: - "404": - description: - "Workflow not found" - "200": - description: "successful operation" - schema: - $ref: "#/definitions/WorkflowRequest" - /workflows/{name}/requests/create-and-submit: - post: - tags: - - "workflows" - summary: "Create and submit a workflow request" - description: "" - operationId: "WorkflowRequestRestService.create_and_submit_workflow_request" - parameters: - - $ref: '#/parameters/workflow-name' - - name: "body" - in: "body" - description: "Argument to the workflow" - schema: - type: "object" - consumes: - - "application/json" - produces: - - "application/json" - responses: - "404": - description: - "Workflow not found" - "200": - description: "successful operation" - schema: - $ref: "#/definitions/WorkflowRequest" - /workflows/{name}/requests/{request_id}: - get: - tags: - - "workflows" - summary: "View the workflow request with this ID" - description: "" - operationId: "WorkflowRequestRestService.get_workflow_request" - parameters: - - $ref: '#/parameters/workflow-name' - - $ref: '#/parameters/workflow-request-id' - consumes: - - "application/json" - produces: - - "application/json" - responses: - "404": - description: - "Workflow request not found" - "200": - description: "successful operation" - schema: - $ref: "#/definitions/WorkflowRequest" - /workflows/{name}/requests/{request_id}/dir/{*paths}: - get: - tags: - - "workflows" - summary: "View files in the working directory for the workflow request with this ID" - description: "" - operationId: "WorkflowWorkingDirRestService.show_workdir_content" - parameters: - - $ref: '#/parameters/workflow-name' - - $ref: '#/parameters/workflow-request-id' - - name: "*paths" - in: "path" - description: "path to the file under this workflow request" - required: true - type: "string" - consumes: - - "application/json" - produces: - - "application/json" - responses: - "404": - description: - "Workflow request not found" - "200": - description: "successful operation" - schema: - $ref: "#/definitions/WorkflowRequest" - /workflows/{name}/requests/{request_id}/weblog: - get: - tags: - - "workflows" - summary: "View the weblog under this workflow request" - description: "" - operationId: "WorkflowWorkingDirRestService.serve_weblog" - parameters: - - $ref: '#/parameters/workflow-name' - - $ref: '#/parameters/workflow-request-id' - consumes: - - "application/json" - produces: - - "application/json" - responses: - "404": - description: - "Workflow request not found" - "200": - description: "successful operation" - schema: - $ref: "#/definitions/WorkflowRequest" - /workflows/{name}/requests/{request_id}/qa_notes: - get: - tags: - - "workflows" - summary: "View the QA notes under this workflow request" - description: "" - operationId: "WorkflowWorkingDirRestService.get_qa_notes" - parameters: - - $ref: '#/parameters/workflow-name' - - $ref: '#/parameters/workflow-request-id' - consumes: - - "application/json" - produces: - - "application/json" - responses: - "404": - description: - "Workflow request not found" - "200": - description: "successful operation" - schema: - $ref: "#/definitions/Notes" - post: - tags: - - "workflows" - summary: "Save the QA notes for this workflow request" - description: "" - operationId: "WorkflowWorkingDirRestService.save_qa_notes" - parameters: - - $ref: '#/parameters/workflow-name' - - $ref: '#/parameters/workflow-request-id' - consumes: - - "application/json" - produces: - - "application/json" - responses: - "404": - description: - "Workflow request not found" - "200": - description: "successful operation" - schema: - $ref: "#/definitions/Notes" - /workflows/{name}/requests/{request_id}/html: - get: - tags: - - "workflows" - summary: "Access a CARTA instance" - description: "" - operationId: "WorkflowWorkingDirRestService.serve_carta_wrapper" - parameters: - - $ref: '#/parameters/workflow-name' - - $ref: '#/parameters/workflow-request-id' - produces: - - "text/html" - responses: - 200: - description: "successful operation" - /workflows/{name}/requests/{request_id}/htcondor_id: - get: - tags: - - "workflows" - summary: "Get the HTCondor ID for this request" - description: "" - operationId: "WorkflowRequestRestService.get_request_htcondor_id" - parameters: - - $ref: '#/parameters/workflow-name' - - $ref: '#/parameters/workflow-request-id' - consumes: - - "application/json" - produces: - - "application/json" - responses: - 200: - description: "successful operation" - schema: - $ref: "#/definitions/HtCondorId" - - /workflows/requests/stale/{days}: - get: - tags: - - "workflows" - summary: "Get a list of stale requests" - description: "" - operationId: "WorkflowRequestRestService.get_stale_requests" - parameters: - - in: path - name: days - type: integer - required: true - description: "days back to look" - consumes: - - "application/json" - produces: - - "application/json" - responses: - 200: - description: "successful operation" - schema: - $ref: "#/definitions/StaleDirectories" - /workflows/{name}/requests/{request_id}/files: - get: - tags: - - "workflows" - summary: "See the files under this workflow request" - description: "" - operationId: "WorkflowFilesRestService.get_file" - parameters: - - $ref: '#/parameters/workflow-name' - - $ref: '#/parameters/workflow-request-id' - consumes: - - "application/octet-stream" - produces: - - "application/json" - responses: - "400": - description: "File already exists" - "404": - description: - "Workflow request not found" - "200": - description: "successful operation" - schema: - $ref: "#/definitions/WorkflowRequestFile" - /workflows/{name}/requests/{request_id}/files/{filename}: - put: - tags: - - "workflows" - summary: "Add a file to this workflow request" - description: "" - operationId: "WorkflowFilesRestService.add_file" - parameters: - - $ref: '#/parameters/workflow-name' - - $ref: '#/parameters/workflow-request-id' - - name: "filename" - in: "path" - description: "filename to add" - type: "string" - required: true - consumes: - - "application/octet-stream" - produces: - - "application/json" - responses: - "400": - description: "File already exists" - "404": - description: - "Workflow request not found" - "200": - description: "successful operation" - schema: - $ref: "#/definitions/WorkflowRequestFile" - /workflows/{name}/requests/{request_id}/submit: - post: - tags: - - "workflows" - summary: "Submit the workflow request for execution" - description: "" - operationId: "WorkflowRequestRestService.submit_workflow" - parameters: - - $ref: '#/parameters/workflow-name' - - $ref: '#/parameters/workflow-request-id' - consumes: - - "application/json" - produces: - - "application/json" - responses: - "404": - description: - "Workflow request not found" - "200": - description: "successful operation" - schema: - $ref: "#/definitions/WorkflowRequest" - /workflows/{name}/requests/{request_id}/ingest: - post: - tags: - - "workflows" - summary: "Ingest the result of this workflow" - description: "" - operationId: "WorkflowRequestRestService.ingest" - parameters: - - $ref: '#/parameters/workflow-name' - - $ref: '#/parameters/workflow-request-id' - consumes: - - "application/json" - produces: - - "application/json" - responses: - "404": - description: - "Workflow request not found" - "200": - description: "successful operation" - schema: - $ref: "#/definitions/WorkflowRequest" - /workflows/requests/{request_id}/abort: - post: - tags: - - "workflows" - summary: "Abort the execution of this running workflow" - description: "" - operationId: "WorkflowRequestRestService.abort" - parameters: - - $ref: '#/parameters/workflow-request-id' - consumes: - - "application/json" - produces: - - "application/json" - responses: - "404": - description: - "Workflow request not found" - "200": - description: "successful operation" - schema: - type: string - /workflows/requests/vlass_ingest/{vlass_type}: - post: - tags: - - "workflows" - summary: "Ingest the result of this workflow using a VLASS ingest workflow" - description: "" - operationId: "WorkflowRequestRestService.ingest_vlass_products" - parameters: - - in: path - name: vlass_type - description: "type of VLASS product to ingest" - required: true - type: string - consumes: - - "application/json" - produces: - - "application/json" - responses: - "404": - description: - "Workflow request not found" - "200": - description: "successful operation" - /workflows/requests/message-archive/{msg_type}: - post: - tags: - - "workflows" - summary: "Send a message to the archive" - description: "" - operationId: "WorkflowRequestRestService.message_archive" - parameters: - - in: path - name: msg_type - description: "the message type to send" - required: true - type: string - - name: request_id - in: body - description: "the workflow request ID to use" - schema: - $ref: "#/definitions/ArchiveMessage" - consumes: - - "application/json" - produces: - - "application/json" - responses: - 200: - description: "successful operation" - schema: - type: string - /workflows/carta/requests/{request_id}/send-url-to-aat: - post: - tags: - - "workflows" - summary: "Send the CARTA URL to the AAT" - description: "" - operationId: "WorkflowRequestRestService.send_carta_url_to_aat" - parameters: - - $ref: "#/parameters/workflow-request-id" - - in: body - name: carta_url - description: "The URL to the CARTA instance which is running" - schema: - type: string - produces: - - "application/json" - responses: - 200: - description: "successful operation" - schema: - type: string - /workflows/carta/requests/{request_id}/url: - post: - tags: - - "workflows" - summary: "Send the CARTA URL... somewhere else..." - description: "" - operationId: "WorkflowRequestRestService.send_carta_url" - parameters: - - $ref: "#/parameters/workflow-request-id" - - in: body - name: carta_url - description: "The URL to the CARTA instance which is running" - schema: - type: string - produces: - - "application/json" - responses: - 200: - description: "successful operation" - schema: - type: string - /workflows/{name}/requests/{request_id}/fail: - post: - tags: - - "workflows" - summary: "Force fail a workflow" - description: "" - operationId: "WorkflowRequestRestService.send_force_fail" - parameters: - - $ref: "#/parameters/workflow-name" - - $ref: "#/parameters/workflow-request-id" - responses: - 200: - description: "successful operation" - /workflows/{name}/requests/{request_id}/qa_fail: - post: - tags: - - "workflows" - summary: "Fail the quality assurance for a workflow" - description: "" - operationId: "WorkflowRequestRestService.qa_fail" - parameters: - - $ref: "#/parameters/workflow-name" - - $ref: "#/parameters/workflow-request-id" - responses: - 200: - description: "successful operation" - /workflows/requests/{request_id}/qa/{msg_type}: - post: - tags: - - "workflows" - summary: "Force fail a workflow" - description: "" - operationId: "WorkflowRequestRestService.announce_qa" - parameters: - - $ref: "#/parameters/workflow-request-id" - - in: path - name: msg_type - description: "The message type to send" - required: true - type: string - - in: body - name: version - description: "The capability version to send this QA announcement for" - required: true - schema: - $ref: "#/definitions/CapabilityVersion" - responses: - 200: - description: "successful operation" - /workflows/requests/cleaned: - put: - tags: - - "workflows" - summary: "Mark when a request was last cleaned" - description: "" - operationId: "WorkflowRequestRestService.set_request_cleaned" - parameters: - - in: body - name: clean_parameters - schema: - $ref: "#/definitions/CleanRequest" - required: true - responses: - 200: - description: "successful operation" - schema: - type: string - /healthcheck: - get: - tags: - - "workflows" - summary: "Returns a success value if the service is healthy" - description: "" - operationId: "WorkflowWorkingDirRestService.get_healthcheck" - responses: - 200: - description: "successful operation" definitions: CapabilityList: type: "array" @@ -1563,4 +1018,4 @@ parameters: externalDocs: description: "More about the capability service" - url: "http://builder.aoc.nrao.edu/ssa/architecture/workspaces" + url: "https://builder.aoc.nrao.edu/ssa/architecture/workspaces" diff --git a/services/notification/swagger-schema.yaml b/services/notification/swagger-schema.yaml index f57d4572b328f04f1dbe2552a63e591564bb753c..2f81a9c6e887913a2afcd94c4d96098712dba000 100644 --- a/services/notification/swagger-schema.yaml +++ b/services/notification/swagger-schema.yaml @@ -1,11 +1,11 @@ swagger: "2.0" info: description: "SSA Notification service" - version: "1.0.0" + version: "2.8.4" title: "Notification Service" contact: email: "dms-ssa@nrao.edu" -host: "shipman.aoc.nrao.edu" +host: "ws-dev.nrao.edu" schemes: - "http" paths: @@ -103,5 +103,5 @@ definitions: type: "string" externalDocs: - description: "More about the capability service" - url: "http://builder.aoc.nrao.edu/ssa/architecture/workspaces" + description: "More about the notification service" + url: "https://builder.aoc.nrao.edu/ssa/architecture/workspaces" diff --git a/services/workflow/swagger-schema.yaml b/services/workflow/swagger-schema.yaml new file mode 100644 index 0000000000000000000000000000000000000000..3fbe4ca97ecbb3ebe07d29f8792c4b7a1311152a --- /dev/null +++ b/services/workflow/swagger-schema.yaml @@ -0,0 +1,697 @@ +swagger: "2.0" +info: + description: "Workflow service for the SSA Workspaces project" + version: "2.8.4" + title: "Workflow Service" + contact: + email: "dms-ssa@nrao.edu" +host: "ws-dev.nrao.edu" +tags: + - name: "workflows" + description: "Access and update workflow definitions" + - name: "requests" + description: "Access and submit workflow requests" + - name: "system" + description: "Access workflow system checks" +schemes: + - "https" +paths: + /workflows: + get: + tags: + - "workflows" + summary: "View the list of workflows" + description: "" + operationId: "Workflows.list_workflows" + produces: + - "application/json" + responses: + "200": + description: "successful operation" + schema: + $ref: "#/definitions/WorkflowList" + /workflows/{name}: + get: + tags: + - "workflows" + summary: "View the named workflow" + description: "" + operationId: "Workflows.get_workflow" + parameters: + - $ref: '#/parameters/workflow-name' + consumes: + - "application/json" + produces: + - "application/json" + responses: + "404": + description: + "Workflow not found" + "200": + description: "successful operation" + schema: + $ref: "#/definitions/Workflow" + /workflows/{name}/requests/create: + post: + tags: + - "requests" + summary: "Create a workflow request" + description: "" + operationId: "WorkflowRequestRestService.create_workflow_request" + parameters: + - $ref: '#/parameters/workflow-name' + - name: "body" + in: "body" + description: "Argument to the workflow" + schema: + type: "object" + consumes: + - "application/json" + produces: + - "application/json" + responses: + "404": + description: + "Workflow not found" + "200": + description: "successful operation" + schema: + $ref: "#/definitions/WorkflowRequest" + /workflows/{name}/requests/create-and-submit: + post: + tags: + - "requests" + summary: "Create and submit a workflow request" + description: "" + operationId: "WorkflowRequestRestService.create_and_submit_workflow_request" + parameters: + - $ref: '#/parameters/workflow-name' + - name: "body" + in: "body" + description: "Argument to the workflow" + schema: + type: "object" + consumes: + - "application/json" + produces: + - "application/json" + responses: + "404": + description: + "Workflow not found" + "200": + description: "successful operation" + schema: + $ref: "#/definitions/WorkflowRequest" + /workflows/{name}/requests/{request_id}: + get: + tags: + - "requests" + summary: "View the workflow request with this ID" + description: "" + operationId: "WorkflowRequestRestService.get_workflow_request" + parameters: + - $ref: '#/parameters/workflow-name' + - $ref: '#/parameters/workflow-request-id' + consumes: + - "application/json" + produces: + - "application/json" + responses: + "404": + description: + "Workflow request not found" + "200": + description: "successful operation" + schema: + $ref: "#/definitions/WorkflowRequest" + /workflows/{name}/requests/{request_id}/dir/{*paths}: + get: + tags: + - "requests" + summary: "View files in the working directory for the workflow request with this ID" + description: "" + operationId: "WorkflowWorkingDirRestService.show_workdir_content" + parameters: + - $ref: '#/parameters/workflow-name' + - $ref: '#/parameters/workflow-request-id' + - name: "*paths" + in: "path" + description: "path to the file under this workflow request" + required: true + type: "string" + consumes: + - "application/json" + produces: + - "application/json" + responses: + "404": + description: + "Workflow request not found" + "200": + description: "successful operation" + schema: + $ref: "#/definitions/WorkflowRequest" + /workflows/{name}/requests/{request_id}/weblog: + get: + tags: + - "requests" + summary: "View the weblog under this workflow request" + description: "" + operationId: "WorkflowWorkingDirRestService.serve_weblog" + parameters: + - $ref: '#/parameters/workflow-name' + - $ref: '#/parameters/workflow-request-id' + consumes: + - "application/json" + produces: + - "application/json" + responses: + "404": + description: + "Workflow request not found" + "200": + description: "successful operation" + schema: + $ref: "#/definitions/WorkflowRequest" + /workflows/{name}/requests/{request_id}/qa_notes: + get: + tags: + - "requests" + summary: "View the QA notes under this workflow request" + description: "" + operationId: "WorkflowWorkingDirRestService.get_qa_notes" + parameters: + - $ref: '#/parameters/workflow-name' + - $ref: '#/parameters/workflow-request-id' + consumes: + - "application/json" + produces: + - "application/json" + responses: + "404": + description: + "Workflow request not found" + "200": + description: "successful operation" + schema: + $ref: "#/definitions/Notes" + post: + tags: + - "requests" + summary: "Save the QA notes for this workflow request" + description: "" + operationId: "WorkflowWorkingDirRestService.save_qa_notes" + parameters: + - $ref: '#/parameters/workflow-name' + - $ref: '#/parameters/workflow-request-id' + consumes: + - "application/json" + produces: + - "application/json" + responses: + "404": + description: + "Workflow request not found" + "200": + description: "successful operation" + schema: + $ref: "#/definitions/Notes" + /workflows/{name}/requests/{request_id}/html: + get: + tags: + - "requests" + summary: "Access a CARTA instance" + description: "" + operationId: "WorkflowWorkingDirRestService.serve_carta_wrapper" + parameters: + - $ref: '#/parameters/workflow-name' + - $ref: '#/parameters/workflow-request-id' + produces: + - "text/html" + responses: + 200: + description: "successful operation" + /workflows/{name}/requests/{request_id}/htcondor_id: + get: + tags: + - "requests" + summary: "Get the HTCondor ID for this request" + description: "" + operationId: "WorkflowRequestRestService.get_request_htcondor_id" + parameters: + - $ref: '#/parameters/workflow-name' + - $ref: '#/parameters/workflow-request-id' + consumes: + - "application/json" + produces: + - "application/json" + responses: + 200: + description: "successful operation" + schema: + $ref: "#/definitions/HtCondorId" + + /workflows/requests/stale/{days}: + get: + tags: + - "requests" + summary: "Get a list of stale requests" + description: "" + operationId: "WorkflowRequestRestService.get_stale_requests" + parameters: + - in: path + name: days + type: integer + required: true + description: "days back to look" + consumes: + - "application/json" + produces: + - "application/json" + responses: + 200: + description: "successful operation" + schema: + $ref: "#/definitions/StaleDirectories" + /workflows/{name}/requests/{request_id}/files: + get: + tags: + - "requests" + summary: "See the files under this workflow request" + description: "" + operationId: "WorkflowFilesRestService.get_file" + parameters: + - $ref: '#/parameters/workflow-name' + - $ref: '#/parameters/workflow-request-id' + consumes: + - "application/octet-stream" + produces: + - "application/json" + responses: + "400": + description: "File already exists" + "404": + description: + "Workflow request not found" + "200": + description: "successful operation" + schema: + $ref: "#/definitions/WorkflowRequestFile" + /workflows/{name}/requests/{request_id}/files/{filename}: + put: + tags: + - "requests" + summary: "Add a file to this workflow request" + description: "" + operationId: "WorkflowFilesRestService.add_file" + parameters: + - $ref: '#/parameters/workflow-name' + - $ref: '#/parameters/workflow-request-id' + - name: "filename" + in: "path" + description: "filename to add" + type: "string" + required: true + consumes: + - "application/octet-stream" + produces: + - "application/json" + responses: + "400": + description: "File already exists" + "404": + description: + "Workflow request not found" + "200": + description: "successful operation" + schema: + $ref: "#/definitions/WorkflowRequestFile" + /workflows/{name}/requests/{request_id}/submit: + post: + tags: + - "requests" + summary: "Submit the workflow request for execution" + description: "" + operationId: "WorkflowRequestRestService.submit_workflow" + parameters: + - $ref: '#/parameters/workflow-name' + - $ref: '#/parameters/workflow-request-id' + consumes: + - "application/json" + produces: + - "application/json" + responses: + "404": + description: + "Workflow request not found" + "200": + description: "successful operation" + schema: + $ref: "#/definitions/WorkflowRequest" + /workflows/{name}/requests/{request_id}/ingest: + post: + tags: + - "requests" + summary: "Ingest the result of this workflow" + description: "" + operationId: "WorkflowRequestRestService.ingest" + parameters: + - $ref: '#/parameters/workflow-name' + - $ref: '#/parameters/workflow-request-id' + consumes: + - "application/json" + produces: + - "application/json" + responses: + "404": + description: + "Workflow request not found" + "200": + description: "successful operation" + schema: + $ref: "#/definitions/WorkflowRequest" + /workflows/requests/{request_id}/abort: + post: + tags: + - "requests" + summary: "Abort the execution of this running workflow" + description: "" + operationId: "WorkflowRequestRestService.abort" + parameters: + - $ref: '#/parameters/workflow-request-id' + consumes: + - "application/json" + produces: + - "application/json" + responses: + "404": + description: + "Workflow request not found" + "200": + description: "successful operation" + schema: + type: string + /workflows/requests/vlass_ingest/{vlass_type}: + post: + tags: + - "requests" + summary: "Ingest the result of this workflow using a VLASS ingest workflow" + description: "" + operationId: "WorkflowRequestRestService.ingest_vlass_products" + parameters: + - in: path + name: vlass_type + description: "type of VLASS product to ingest" + required: true + type: string + consumes: + - "application/json" + produces: + - "application/json" + responses: + "404": + description: + "Workflow request not found" + "200": + description: "successful operation" + /workflows/requests/message-archive/{msg_type}: + post: + tags: + - "requests" + summary: "Send a message to the archive" + description: "" + operationId: "WorkflowRequestRestService.message_archive" + parameters: + - in: path + name: msg_type + description: "the message type to send" + required: true + type: string + - name: request_id + in: body + description: "the workflow request ID to use" + schema: + $ref: "#/definitions/ArchiveMessage" + consumes: + - "application/json" + produces: + - "application/json" + responses: + 200: + description: "successful operation" + schema: + type: string + /workflows/carta/requests/{request_id}/send-url-to-aat: + post: + tags: + - "requests" + summary: "Send the CARTA URL to the AAT" + description: "" + operationId: "WorkflowRequestRestService.send_carta_url_to_aat" + parameters: + - $ref: "#/parameters/workflow-request-id" + - in: body + name: carta_url + description: "The URL to the CARTA instance which is running" + schema: + type: string + produces: + - "application/json" + responses: + 200: + description: "successful operation" + schema: + type: string + /workflows/carta/requests/{request_id}/url: + post: + tags: + - "requests" + summary: "Send the CARTA URL... somewhere else..." + description: "" + operationId: "WorkflowRequestRestService.send_carta_url" + parameters: + - $ref: "#/parameters/workflow-request-id" + - in: body + name: carta_url + description: "The URL to the CARTA instance which is running" + schema: + type: string + produces: + - "application/json" + responses: + 200: + description: "successful operation" + schema: + type: string + /workflows/{name}/requests/{request_id}/fail: + post: + tags: + - "requests" + summary: "Force fail a workflow" + description: "" + operationId: "WorkflowRequestRestService.send_force_fail" + parameters: + - $ref: "#/parameters/workflow-name" + - $ref: "#/parameters/workflow-request-id" + responses: + 200: + description: "successful operation" + /workflows/{name}/requests/{request_id}/qa_fail: + post: + tags: + - "requests" + summary: "Fail the quality assurance for a workflow" + description: "" + operationId: "WorkflowRequestRestService.qa_fail" + parameters: + - $ref: "#/parameters/workflow-name" + - $ref: "#/parameters/workflow-request-id" + responses: + 200: + description: "successful operation" + /workflows/requests/{request_id}/qa/{msg_type}: + post: + tags: + - "requests" + summary: "Force fail a workflow" + description: "" + operationId: "WorkflowRequestRestService.announce_qa" + parameters: + - $ref: "#/parameters/workflow-request-id" + - in: path + name: msg_type + description: "The message type to send" + required: true + type: string + - in: body + name: version + description: "The capability version to send this QA announcement for" + required: true + schema: + $ref: "#/definitions/CapabilityVersion" + responses: + 200: + description: "successful operation" + /workflows/requests/cleaned: + put: + tags: + - "requests" + summary: "Mark when a request was last cleaned" + description: "" + operationId: "WorkflowRequestRestService.set_request_cleaned" + parameters: + - in: body + name: clean_parameters + schema: + $ref: "#/definitions/CleanRequest" + required: true + responses: + 200: + description: "successful operation" + schema: + type: string + /healthcheck: + get: + tags: + - "system" + summary: "Returns a success value if the service is healthy" + description: "" + operationId: "WorkflowWorkingDirRestService.get_healthcheck" + responses: + 200: + description: "successful operation" +definitions: + CapabilityVersion: + type: "object" + properties: + type: + type: "string" + capability_request_id: + type: "integer" + version_number: + type: "integer" + current_execution: + type: "string" + state: + type: "string" + parameters: + type: "object" + workflow_metadata: + type: "object" + sealed: + type: "boolean" + files: + type: "array" + items: + $ref: "#/definitions/CapabilityVersionFile" + capability_name: + type: "string" + status_url: + type: "string" + internal_notes: + type: "string" + CapabilityVersionFile: + type: "object" + properties: + type: + type: "string" + capability_request_id: + type: "integer" + version_number: + type: "integer" + filename: + type: "string" + content: + type: "string" + CleanRequest: + type: "object" + properties: + directory: + type: string + update_to: + type: string + HtCondorId: + type: "object" + properties: + htcondor_job_id: + type: integer + Notes: + type: "object" + properties: + resp: + type: "string" + AnalystEmail: + type: "object" + properties: + resp: + type: "string" + StaleDirectories: + type: "object" + properties: + stale_dirs: + type: "string" + ArchiveMessage: + type: "object" + properties: + request_id: + type: integer + project_code: + type: string + WorkflowList: + type: "array" + items: + $ref: "#/definitions/Workflow" + Workflow: + type: "object" + properties: + name: + type: "string" + WorkflowRequest: + type: "object" + properties: + workflow_request_id: + type: "integer" + format: "int64" + workflow_name: + type: "string" + argument: + type: "object" + state: + type: "string" + results_dir: + type: "string" + WorkflowRequestFile: + type: "object" + properties: + workflow_request_id: + type: "integer" + format: "int64" + filename: + type: "string" + content: + type: "string" +parameters: + filename: + name: "filename" + in: "path" + description: "Filename" + required: true + type: "string" + format: "string" + workflow-name: + name: "name" + in: "path" + description: "name of workflow this request belongs to" + required: true + type: "string" + workflow-request-id: + name: "request_id" + in: "path" + description: "ID of the request" + type: "integer" + required: true + +externalDocs: + description: "More about the workflow service" + url: "https://builder.aoc.nrao.edu/ssa/architecture/workspaces"