openapi: 3.1.1
info:
description: Defines the API for the torc service.
license:
name: BSD 3-Clause
identifier: BSD 3-Clause
title: torc
version: v0.11.0
servers:
- url: /torc-service/v1
paths:
/access_groups:
post:
description: Create a new access group.
operationId: create_access_group
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/access_group_model"
description: Access group to create
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/access_group_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - only system admins can create groups
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Conflict - group already exists
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Create a new access group.
tags: []
x-codegen-request-body-name: body
get:
description: List all access groups.
operationId: list_access_groups
parameters:
- explode: true
in: query
name: offset
required: false
schema:
default: 0
type: integer
style: form
- explode: true
in: query
name: limit
required: false
schema:
default: 100
type: integer
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_access_groups_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - admin access required
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: List all access groups.
tags: []
/access_groups/{id}:
get:
description: Get an access group by ID.
operationId: get_access_group
parameters:
- description: ID of the access group
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/access_group_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - admin access required
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Get an access group by ID.
tags: []
delete:
description: Delete an access group.
operationId: delete_access_group
parameters:
- description: ID of the access group
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/access_group_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - only system admins can delete groups
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Group not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete an access group.
tags: []
x-codegen-request-body-name: body
/access_groups/{id}/members:
post:
description: Add a user to an access group.
operationId: add_user_to_group
parameters:
- description: ID of the access group
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/user_group_membership_model"
description: User membership to add
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/user_group_membership_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have permission to modify this group
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Group not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: User already in group
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Add a user to an access group.
tags: []
x-codegen-request-body-name: body
get:
description: List members of an access group.
operationId: list_group_members
parameters:
- description: ID of the access group
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
- explode: true
in: query
name: offset
required: false
schema:
default: 0
type: integer
style: form
- explode: true
in: query
name: limit
required: false
schema:
default: 100
type: integer
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_user_group_memberships_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - admin access required
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Group not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: List members of an access group.
tags: []
/access_groups/{id}/members/{user_name}:
delete:
description: Remove a user from an access group.
operationId: remove_user_from_group
parameters:
- description: ID of the access group
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
- description: Username to remove
explode: false
in: path
name: user_name
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
type: object
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have permission to modify this group
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Membership not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Remove a user from an access group.
tags: []
x-codegen-request-body-name: body
/users/{user_name}/groups:
get:
description: List groups a user belongs to.
operationId: list_user_groups
parameters:
- description: Username
explode: false
in: path
name: user_name
required: true
schema:
type: string
style: simple
- explode: true
in: query
name: offset
required: false
schema:
default: 0
type: integer
style: form
- explode: true
in: query
name: limit
required: false
schema:
default: 100
type: integer
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_access_groups_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - admin access required (unless querying own groups)
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: List groups a user belongs to.
tags: []
/workflows/{id}/access_groups:
post:
description: Grant an access group access to a workflow.
operationId: add_workflow_to_group
parameters:
- description: ID of the workflow
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/workflow_access_group_model"
description: Group association to create
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/workflow_access_group_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have permission to modify this workflow
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Workflow or group not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Association already exists
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Grant an access group access to a workflow.
tags: []
x-codegen-request-body-name: body
get:
description: List access groups that have access to a workflow.
operationId: list_workflow_groups
parameters:
- description: ID of the workflow
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_access_groups_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Workflow not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: List access groups that have access to a workflow.
tags: []
/workflows/{id}/access_groups/{group_id}:
delete:
description: Revoke an access group's access to a workflow.
operationId: remove_workflow_from_group
parameters:
- description: ID of the workflow
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
- description: ID of the access group
explode: false
in: path
name: group_id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
type: object
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have permission to modify this workflow
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Association not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Revoke an access group's access to a workflow.
tags: []
x-codegen-request-body-name: body
/access_check/{workflow_id}/{user_name}:
get:
description: Check if a user can access a workflow.
operationId: check_workflow_access
parameters:
- description: ID of the workflow
explode: false
in: path
name: workflow_id
required: true
schema:
type: integer
style: simple
- description: Username to check
explode: false
in: path
name: user_name
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/access_check_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Workflow not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Check if a user can access a workflow.
tags: []
/compute_nodes:
post:
description: Store a compute node.
operationId: create_compute_node
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/compute_node_model"
description: Compute node
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/compute_node_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Referenced resource not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Store a compute node.
tags: []
x-codegen-request-body-name: body
delete:
description: Delete all compute node records for one workflow.
operationId: delete_compute_nodes
parameters:
- description: Workflow ID
explode: false
in: query
name: workflow_id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
type: object
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete all compute node records for one workflow.
tags: []
x-codegen-request-body-name: body
get:
description: Retrieve all compute node records for one workflow.
operationId: list_compute_nodes
parameters:
- description: Workflow ID
explode: false
in: query
name: workflow_id
required: true
schema:
type: integer
style: simple
- explode: true
in: query
name: offset
required: false
schema:
default: 0
type: integer
style: form
- explode: true
in: query
name: limit
required: false
schema:
default: 100000
type: integer
style: form
- explode: true
in: query
name: sort_by
required: false
schema:
default: null
type: string
style: form
- explode: true
in: query
name: reverse_sort
required: false
schema:
default: false
type: boolean
style: form
- explode: true
in: query
name: hostname
required: false
schema:
type: string
style: form
- explode: true
in: query
name: is_active
required: false
schema:
type: boolean
style: form
- description: Filter by scheduled compute node ID (filters compute nodes created by this scheduler)
explode: true
in: query
name: scheduled_compute_node_id
required: false
schema:
type: integer
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_compute_nodes_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve all compute node records for one workflow.
tags: []
/compute_nodes/{id}:
delete:
description: Delete a compute node.
operationId: delete_compute_node
parameters:
- description: ID of the compute node
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/compute_node_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete a compute node.
tags: []
x-codegen-request-body-name: body
get:
description: Retrieve a compute node by ID.
operationId: get_compute_node
parameters:
- description: ID of the compute node record
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/compute_node_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Compute node not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve a compute node by ID.
tags: []
put:
description: Update a compute node.
operationId: update_compute_node
parameters:
- description: ID of the compute node.
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/compute_node_model"
description: Compute node to update in the database.
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/compute_node_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Compute node not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Update a compute node.
tags: []
x-codegen-request-body-name: body
/events:
post:
description: Store an event.
operationId: create_event
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/event_model"
description: Event body
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/event_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Referenced resource not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Store an event.
tags: []
x-codegen-request-body-name: body
delete:
description: Delete all events for one workflow.
operationId: delete_events
parameters:
- description: Workflow ID
explode: false
in: query
name: workflow_id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
type: object
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete all events for one workflow.
tags: []
x-codegen-request-body-name: body
get:
description: Retrieve all events for one workflow.
operationId: list_events
parameters:
- description: Workflow ID
explode: false
in: query
name: workflow_id
required: true
schema:
type: integer
style: simple
- explode: true
in: query
name: offset
required: false
schema:
default: 0
type: integer
style: form
- explode: true
in: query
name: limit
required: false
schema:
default: 100000
type: integer
style: form
- explode: true
in: query
name: sort_by
required: false
schema:
default: null
type: string
style: form
- explode: true
in: query
name: reverse_sort
required: false
schema:
default: false
type: boolean
style: form
- explode: true
in: query
name: category
required: false
schema:
type: string
style: form
- description: Return events after this timestamp (milliseconds since epoch)
explode: true
in: query
name: after_timestamp
required: false
schema:
type: integer
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_events_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve all events for one workflow.
tags: []
/events/{id}:
delete:
description: Deletes an event.
operationId: delete_event
parameters:
- description: ID of the event record.
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/event_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Event not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete an event.
tags: []
x-codegen-request-body-name: body
get:
description: Retrieve an event by ID.
operationId: get_event
parameters:
- description: ID of the events record
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/event_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Event not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve an event by ID.
tags: []
put:
description: Update an event.
operationId: update_event
parameters:
- description: ID of the event.
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/event_model"
description: event to update in the table.
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/event_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Event not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Update an event.
tags: []
x-codegen-request-body-name: body
/files:
post:
description: Store a file.
operationId: create_file
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/file_model"
description: file.
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/file_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Referenced resource not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Store a file.
tags: []
x-codegen-request-body-name: body
delete:
description: Delete all files for one workflow.
operationId: delete_files
parameters:
- description: Workflow ID
explode: false
in: query
name: workflow_id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
type: object
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete all files for one workflow.
tags: []
x-codegen-request-body-name: body
get:
description: Retrieve all files for one workflow.
operationId: list_files
parameters:
- description: Workflow ID
explode: false
in: query
name: workflow_id
required: true
schema:
type: integer
style: simple
- description: Return files produced by a specific job.
explode: false
in: query
name: produced_by_job_id
required: false
schema:
type: integer
style: simple
- explode: true
in: query
name: offset
required: false
schema:
default: 0
type: integer
style: form
- explode: true
in: query
name: limit
required: false
schema:
default: 100000
type: integer
style: form
- explode: true
in: query
name: sort_by
required: false
schema:
default: null
type: string
style: form
- explode: true
in: query
name: reverse_sort
required: false
schema:
default: false
type: boolean
style: form
- explode: true
in: query
name: name
required: false
schema:
type: string
style: form
- explode: true
in: query
name: path
required: false
schema:
type: string
style: form
- explode: true
in: query
name: is_output
required: false
schema:
type: boolean
description: Filter for files that are outputs of jobs (appear in job_output_file table)
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_files_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve all files for one workflow.
tags: []
/files/{id}:
delete:
description: Delete a file.
operationId: delete_file
parameters:
- description: ID of the file record.
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/file_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: File not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete a file.
tags: []
x-codegen-request-body-name: body
get:
description: Retrieve a file.
operationId: get_file
parameters:
- description: ID of the files record
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/file_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: File not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve a file.
tags: []
put:
description: Update a file.
operationId: update_file
parameters:
- description: ID of the file.
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/file_model"
description: file to update in the table.
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/file_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: File not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Update a file.
tags: []
x-codegen-request-body-name: body
/bulk_jobs:
post:
description: "Create jobs in bulk. Recommended max job count of 10,000."
operationId: create_jobs
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/jobs_model"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/create_jobs_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Referenced resource not found
"422":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Unprocessable content
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: "Create jobs in bulk. Recommended max job count of 10,000."
tags: []
x-codegen-request-body-name: body
/jobs:
post:
description: Store a job.
operationId: create_job
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/job_model"
description: Job body
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/job_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Referenced resource not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Store a job.
tags: []
x-codegen-request-body-name: body
delete:
description: Delete all jobs for one workflow.
operationId: delete_jobs
parameters:
- description: Workflow ID
explode: false
in: query
name: workflow_id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
type: object
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete all jobs for one workflow.
tags: []
x-codegen-request-body-name: body
get:
description: Retrieve all jobs for one workflow.
operationId: list_jobs
parameters:
- description: Workflow ID
explode: false
in: query
name: workflow_id
required: true
schema:
type: integer
style: simple
- description: Return jobs with this status.
explode: false
in: query
name: status
required: false
schema:
$ref: "#/components/schemas/job_status"
style: simple
- description: Return jobs that need this file as an input.
explode: false
in: query
name: needs_file_id
required: false
schema:
type: integer
style: simple
- description: Return jobs that are downstream of this job ID in the workflow
graph.
explode: false
in: query
name: upstream_job_id
required: false
schema:
type: integer
style: simple
- explode: true
in: query
name: offset
required: false
schema:
default: 0
type: integer
style: form
- explode: true
in: query
name: limit
required: false
schema:
default: 100000
type: integer
style: form
- explode: true
in: query
name: sort_by
required: false
schema:
default: null
type: string
style: form
- explode: true
in: query
name: reverse_sort
required: false
schema:
default: false
type: boolean
style: form
- explode: true
in: query
name: include_relationships
required: false
schema:
default: false
type: boolean
style: form
description: Include job relationships (depends_on_job_ids, input_file_ids, output_file_ids, input_user_data_ids, output_user_data_ids). Default is false for performance.
- description: Filter jobs by the compute node currently running them.
explode: false
in: query
name: active_compute_node_id
required: false
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_jobs_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve all jobs for one workflow.
tags: []
/jobs/{id}:
delete:
description: Delete a job.
operationId: delete_job
parameters:
- description: Job ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/job_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete a job.
tags: []
x-codegen-request-body-name: body
get:
description: Retrieve a job.
operationId: get_job
parameters:
- description: ID of the job record
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/job_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve a job.
tags: []
put:
description: Update a job.
operationId: update_job
parameters:
- description: ID of the job.
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/job_model"
description: job to update in the table.
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/job_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Update a job.
tags: []
x-codegen-request-body-name: body
/jobs/{id}/complete_job/{status}/{run_id}:
post:
description: "Complete a job, connect it to a result, and manage side effects."
operationId: complete_job
parameters:
- description: Job ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
- description: New job status.
explode: false
in: path
name: status
required: true
schema:
$ref: "#/components/schemas/job_status"
style: simple
- description: Current job run ID
explode: false
in: path
name: run_id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/result_model"
description: Result of the job.
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/job_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"422":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Unprocessable content
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: "Complete a job, connect it to a result, and manage side effects."
tags: []
x-codegen-request-body-name: body
/jobs/{id}/manage_status_change/{status}/{run_id}:
put:
description: Change the status of a job and manage side effects.
operationId: manage_status_change
parameters:
- description: Job ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
- description: New job status
explode: false
in: path
name: status
required: true
schema:
$ref: "#/components/schemas/job_status"
style: simple
- description: Current job run ID
explode: false
in: path
name: run_id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/job_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"422":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Unprocessable content
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Change the status of a job and manage side effects.
tags: []
x-codegen-request-body-name: body
/jobs/{id}/start_job/{run_id}/{compute_node_id}:
put:
description: Start a job and manage side effects.
operationId: start_job
parameters:
- description: Job ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
- description: Current job run ID
explode: false
in: path
name: run_id
required: true
schema:
type: integer
style: simple
- description: Compute node ID that started the job
explode: false
in: path
name: compute_node_id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/job_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"422":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Unprocessable content
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Start a job and manage side effects.
tags: []
x-codegen-request-body-name: body
/jobs/{id}/retry/{run_id}:
post:
description: Retry a failed job by resetting it to ready status and incrementing attempt_id.
operationId: retry_job
parameters:
- description: Job ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
- description: Current workflow run ID
explode: false
in: path
name: run_id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/job_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Job not found
"422":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Unprocessable content - job not in failed state or max retries exceeded
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retry a failed job.
tags: []
x-codegen-request-body-name: body
/local_schedulers:
post:
description: Store a local scheduler. table.
operationId: create_local_scheduler
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/local_scheduler_model"
description: local compute node configuration.
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/local_scheduler_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Store a local scheduler.
tags: []
x-codegen-request-body-name: body
delete:
description: Delete all local schedulers for one workflow.
operationId: delete_local_schedulers
parameters:
- description: Workflow ID
explode: false
in: query
name: workflow_id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
type: object
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete all local schedulers for one workflow.
tags: []
x-codegen-request-body-name: body
get:
description: Retrieve local schedulers for one workflow.
operationId: list_local_schedulers
parameters:
- description: Workflow ID
explode: false
in: query
name: workflow_id
required: true
schema:
type: integer
style: simple
- explode: true
in: query
name: offset
required: false
schema:
default: 0
type: integer
style: form
- explode: true
in: query
name: limit
required: false
schema:
default: 100000
type: integer
style: form
- explode: true
in: query
name: sort_by
required: false
schema:
default: null
type: string
style: form
- explode: true
in: query
name: reverse_sort
required: false
schema:
default: false
type: boolean
style: form
- explode: true
in: query
name: memory
required: false
schema:
type: string
style: form
- explode: true
in: query
name: num_cpus
required: false
schema:
type: integer
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_local_schedulers_response"
description: HTTP 200 OK.
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve local schedulers for one workflow.
tags: []
/local_schedulers/{id}:
delete:
description: Delete a local scheduler.
operationId: delete_local_scheduler
parameters:
- description: ID of the local compute node configuration record.
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/local_scheduler_model"
description: local compute node configuration stored in the table.
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete a local scheduler.
tags: []
x-codegen-request-body-name: body
get:
description: Retrieve a local scheduler.
operationId: get_local_scheduler
parameters:
- description: Scheduler ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/local_scheduler_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Local scheduler not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve a local scheduler.
tags: []
put:
description: Update a local scheduler.
operationId: update_local_scheduler
parameters:
- description: Scheduler ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/local_scheduler_model"
description: local compute node configuration to update in the table.
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/local_scheduler_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Local scheduler not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Update a local scheduler.
tags: []
x-codegen-request-body-name: body
/resource_requirements:
post:
description: Store one resource requirements definition.
operationId: create_resource_requirements
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/resource_requirements_model"
description: resource requirements.
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/resource_requirements_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Referenced resource not found
"422":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Unprocessable content
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Store one resource requirements record.
tags: []
x-codegen-request-body-name: body
delete:
description: Delete all resource requirements records for one workflow.
operationId: delete_resource_requirements
parameters:
- description: Workflow ID
explode: false
in: query
name: workflow_id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
type: object
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete all resource requirements records for one workflow.
tags: []
x-codegen-request-body-name: body
get:
description: Retrieve all resource requirements records for one workflow.
operationId: list_resource_requirements
parameters:
- description: Workflow ID
explode: false
in: query
name: workflow_id
required: true
schema:
type: integer
style: simple
- description: Return the resource requirements for a specific job.
explode: true
in: query
name: job_id
required: false
schema:
type: integer
style: form
- explode: true
in: query
name: offset
required: false
schema:
default: 0
type: integer
style: form
- explode: true
in: query
name: limit
required: false
schema:
default: 100000
type: integer
style: form
- explode: true
in: query
name: sort_by
required: false
schema:
default: null
type: string
style: form
- explode: true
in: query
name: reverse_sort
required: false
schema:
default: false
type: boolean
style: form
- explode: true
in: query
name: name
required: false
schema:
type: string
style: form
- explode: true
in: query
name: memory
required: false
schema:
type: string
style: form
- explode: true
in: query
name: num_cpus
required: false
schema:
type: integer
style: form
- explode: true
in: query
name: num_gpus
required: false
schema:
type: integer
style: form
- explode: true
in: query
name: num_nodes
required: false
schema:
type: integer
style: form
- explode: true
in: query
name: runtime
required: false
schema:
type: integer
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_resource_requirements_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve all resource requirements records for one workflow.
tags: []
/resource_requirements/{id}:
delete:
description: Delete a resource requirements record.
operationId: delete_resource_requirement
parameters:
- description: Resource requirements ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/resource_requirements_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Resource requirements not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete a resource requirements record.
tags: []
x-codegen-request-body-name: body
get:
description: Retrieve one resource requirements record.
operationId: get_resource_requirements
parameters:
- description: Resource requirements ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/resource_requirements_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Resource requirements not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve one resource requirements record.
tags: []
put:
description: Update one resource requirements record.
operationId: update_resource_requirements
parameters:
- description: Resource requirements ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/resource_requirements_model"
description: resource requirements to update in the table.
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/resource_requirements_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Resource requirements not found
"422":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Unprocessable content
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Update one resource requirements record.
tags: []
x-codegen-request-body-name: body
/failure_handlers:
post:
description: Create a failure handler with rules for automatic job retry.
operationId: create_failure_handler
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/failure_handler_model"
description: Failure handler to create
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/failure_handler_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Referenced workflow not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Create a failure handler.
tags: []
x-codegen-request-body-name: body
/failure_handlers/{id}:
get:
description: Retrieve a failure handler by ID.
operationId: get_failure_handler
parameters:
- description: Failure handler ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/failure_handler_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Failure handler not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Get a failure handler by ID.
tags: []
delete:
description: Delete a failure handler.
operationId: delete_failure_handler
parameters:
- description: Failure handler ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/failure_handler_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Failure handler not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete a failure handler.
tags: []
x-codegen-request-body-name: body
/workflows/{id}/failure_handlers:
get:
description: List all failure handlers for a workflow.
operationId: list_failure_handlers
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
- explode: true
in: query
name: offset
required: false
schema:
default: 0
type: integer
style: form
- explode: true
in: query
name: limit
required: false
schema:
default: 100000
type: integer
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_failure_handlers_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Workflow not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: List failure handlers for a workflow.
tags: []
/results:
post:
description: Store a job result.
operationId: create_result
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/result_model"
description: result.
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/result_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Store a job result.
tags: []
x-codegen-request-body-name: body
delete:
description: Delete all job results for one workflow.
operationId: delete_results
parameters:
- description: Workflow ID
explode: false
in: query
name: workflow_id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
type: object
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete all job results for one workflow.
tags: []
x-codegen-request-body-name: body
get:
description: Retrieve all job results for one workflow.
operationId: list_results
parameters:
- description: Workflow ID
explode: false
in: query
name: workflow_id
required: true
schema:
type: integer
style: simple
- description: Return the results for a specific job.
explode: false
in: query
name: job_id
required: false
schema:
type: integer
style: simple
- explode: true
in: query
name: offset
required: false
schema:
default: 0
type: integer
style: form
- explode: true
in: query
name: limit
required: false
schema:
default: 100000
type: integer
style: form
- explode: true
in: query
name: sort_by
required: false
schema:
type: string
style: form
- explode: true
in: query
name: reverse_sort
required: false
schema:
default: false
type: boolean
style: form
- explode: true
in: query
name: run_id
required: false
schema:
type: integer
style: form
- explode: true
in: query
name: return_code
required: false
schema:
type: integer
style: form
- explode: true
in: query
name: status
required: false
schema:
$ref: "#/components/schemas/job_status"
style: form
- explode: true
in: query
name: all_runs
required: false
schema:
default: false
type: boolean
style: form
description: If false (default), only return results in the workflow_result table (current results). If true, return all historical results.
- description: Filter by compute node ID
explode: true
in: query
name: compute_node_id
required: false
schema:
type: integer
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_results_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve all job results for one workflow.
tags: []
/results/{id}:
delete:
description: Delete a job result.
operationId: delete_result
parameters:
- description: Results ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/result_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Result not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete a job result.
tags: []
x-codegen-request-body-name: body
get:
description: Retrieve a job result.
operationId: get_result
parameters:
- description: Results ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/result_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Result not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve a job result.
tags: []
put:
description: Update a job result.
operationId: update_result
parameters:
- description: Result ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/result_model"
description: result to update in the table.
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/result_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Result not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Update a job result.
tags: []
x-codegen-request-body-name: body
/scheduled_compute_nodes:
post:
description: Store a scheduled compute node.
operationId: create_scheduled_compute_node
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/scheduled_compute_nodes_model"
description: scheduled compute node.
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/scheduled_compute_nodes_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Store a scheduled compute node.
tags: []
x-codegen-request-body-name: body
delete:
description: Delete all scheduled compute node records for one workflow.
operationId: delete_scheduled_compute_nodes
parameters:
- description: Workflow ID
explode: false
in: query
name: workflow_id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
type: object
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete all scheduled compute node records for one workflow.
tags: []
x-codegen-request-body-name: body
get:
description: Retrieve scheduled compute node records for one workflow.
operationId: list_scheduled_compute_nodes
parameters:
- description: Workflow ID
explode: false
in: query
name: workflow_id
required: true
schema:
type: integer
style: simple
- explode: true
in: query
name: offset
required: false
schema:
default: 0
type: integer
style: form
- explode: true
in: query
name: limit
required: false
schema:
default: 100000
type: integer
style: form
- explode: true
in: query
name: sort_by
required: false
schema:
default: null
type: string
style: form
- explode: true
in: query
name: reverse_sort
required: false
schema:
default: false
type: boolean
style: form
- explode: true
in: query
name: scheduler_id
required: false
schema:
type: string
style: form
- explode: true
in: query
name: scheduler_config_id
required: false
schema:
type: string
style: form
- explode: true
in: query
name: status
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_scheduled_compute_nodes_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve scheduled compute node records for one workflow.
tags: []
/scheduled_compute_nodes/{id}:
delete:
description: Delete a scheduled compute node.
operationId: delete_scheduled_compute_node
parameters:
- description: Scheduled compute node ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/scheduled_compute_nodes_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Scheduled compute node not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete a scheduled compute node.
tags: []
x-codegen-request-body-name: body
get:
description: Retrieve a scheduled compute node.
operationId: get_scheduled_compute_node
parameters:
- description: ID of the scheduled_compute_nodes record
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/scheduled_compute_nodes_model"
description: HTTP 200 OK.
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Scheduled compute node not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve a scheduled compute node.
tags: []
put:
description: Update a scheduled compute node.
operationId: update_scheduled_compute_node
parameters:
- description: Scheduled compute node ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/scheduled_compute_nodes_model"
description: scheduled compute node to update in the table.
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/scheduled_compute_nodes_model"
description: scheduled compute node updated in the table.
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Scheduled compute node not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Update a scheduled compute node.
tags: []
x-codegen-request-body-name: body
/slurm_schedulers:
post:
description: Store a Slurm compute node configuration.
operationId: create_slurm_scheduler
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/slurm_scheduler_model"
description: Slurm compute node configuration.
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/slurm_scheduler_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Store a Slurm compute node configuration.
tags: []
x-codegen-request-body-name: body
delete:
description: Retrieve all Slurm compute node configurations for one workflow.
operationId: delete_slurm_schedulers
parameters:
- description: Workflow ID
explode: false
in: query
name: workflow_id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
type: object
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve all Slurm compute node configurations for one workflow.
tags: []
x-codegen-request-body-name: body
get:
description: Retrieve a Slurm compute node configuration.
operationId: list_slurm_schedulers
parameters:
- description: Workflow ID
explode: false
in: query
name: workflow_id
required: true
schema:
type: integer
style: simple
- explode: true
in: query
name: offset
required: false
schema:
default: 0
type: integer
style: form
- explode: true
in: query
name: limit
required: false
schema:
default: 100000
type: integer
style: form
- explode: true
in: query
name: sort_by
required: false
schema:
default: null
type: string
style: form
- explode: true
in: query
name: reverse_sort
required: false
schema:
default: false
type: boolean
style: form
- explode: true
in: query
name: name
required: false
schema:
type: string
style: form
- explode: true
in: query
name: account
required: false
schema:
type: string
style: form
- explode: true
in: query
name: gres
required: false
schema:
type: string
style: form
- explode: true
in: query
name: mem
required: false
schema:
type: string
style: form
- explode: true
in: query
name: nodes
required: false
schema:
type: integer
style: form
- explode: true
in: query
name: partition
required: false
schema:
type: string
style: form
- explode: true
in: query
name: qos
required: false
schema:
type: string
style: form
- explode: true
in: query
name: tmp
required: false
schema:
type: string
style: form
- explode: true
in: query
name: walltime
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_slurm_schedulers_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve a Slurm compute node configuration.
tags: []
/slurm_schedulers/{id}:
delete:
description: Delete Slurm compute node configuration.
operationId: delete_slurm_scheduler
parameters:
- description: Slurm compute node configuration ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/slurm_scheduler_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Slurm scheduler not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete Slurm compute node configuration.
tags: []
x-codegen-request-body-name: body
get:
description: Retrieve a Slurm compute node configuration.
operationId: get_slurm_scheduler
parameters:
- description: Slurm compute node configuration ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/slurm_scheduler_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Slurm scheduler not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve a Slurm compute node configuration.
tags: []
put:
description: Update a Slurm compute node configuration.
operationId: update_slurm_scheduler
parameters:
- description: Slurm compute node configuration ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/slurm_scheduler_model"
description: Slurm compute node configuration to update in the table.
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/slurm_scheduler_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Slurm scheduler not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Update a Slurm compute node configuration.
tags: []
x-codegen-request-body-name: body
/slurm_stats:
post:
description: Store Slurm accounting stats collected via sacct for a job step.
operationId: create_slurm_stats
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/slurm_stats_model"
description: Slurm stats record.
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/slurm_stats_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Store Slurm accounting stats for a job step.
tags: []
x-codegen-request-body-name: body
get:
description: Retrieve Slurm accounting stats for a workflow, optionally filtered by job.
operationId: list_slurm_stats
parameters:
- description: Workflow ID
explode: false
in: query
name: workflow_id
required: true
schema:
type: integer
style: simple
- description: Return the stats for a specific job.
explode: false
in: query
name: job_id
required: false
schema:
type: integer
style: simple
- explode: true
in: query
name: offset
required: false
schema:
default: 0
type: integer
style: form
- explode: true
in: query
name: limit
required: false
schema:
default: 100000
type: integer
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_slurm_stats_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: List Slurm accounting stats.
tags: []
/user_data:
post:
description: Store a user data record.
operationId: create_user_data
parameters:
- description: ID of the job that consumes this user data.
explode: false
in: query
name: consumer_job_id
required: false
schema:
type: integer
style: simple
- description: ID of the job that produces this user data.
explode: false
in: query
name: producer_job_id
required: false
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/user_data_model"
description: user data.
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/user_data_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Referenced resource not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Store a user data record.
tags: []
x-codegen-request-body-name: body
delete:
description: Delete all user data records for one workflow.
operationId: delete_all_user_data
parameters:
- description: Workflow ID
explode: false
in: query
name: workflow_id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
type: object
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete all user data records for one workflow.
tags: []
x-codegen-request-body-name: body
get:
description: Retrieve all user data records for one workflow.
operationId: list_user_data
parameters:
- description: Workflow ID
explode: false
in: query
name: workflow_id
required: true
schema:
type: integer
style: simple
- description: Return user data records that are consumed by a specific job.
explode: false
in: query
name: consumer_job_id
required: false
schema:
type: integer
style: simple
- description: Return user data records that are produced by a specific job.
explode: false
in: query
name: producer_job_id
required: false
schema:
type: integer
style: simple
- explode: true
in: query
name: offset
required: false
schema:
default: 0
type: integer
style: form
- explode: true
in: query
name: limit
required: false
schema:
default: 100000
type: integer
style: form
- explode: true
in: query
name: sort_by
required: false
schema:
default: null
type: string
style: form
- explode: true
in: query
name: reverse_sort
required: false
schema:
default: false
type: boolean
style: form
- explode: true
in: query
name: name
required: false
schema:
type: string
style: form
- explode: true
in: query
name: is_ephemeral
required: false
schema:
type: boolean
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_user_data_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve all user data records for one workflow.
tags: []
/user_data/{id}:
delete:
description: Delete a user data record.
operationId: delete_user_data
parameters:
- description: User data record ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/user_data_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: User data not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete a user data record.
tags: []
x-codegen-request-body-name: body
get:
description: Retrieve a user data record.
operationId: get_user_data
parameters:
- description: User data record ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/user_data_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: User data not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve a user data record.
tags: []
put:
description: Update a user data record.
operationId: update_user_data
parameters:
- description: User data record ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/user_data_model"
description: user data to update in the table.
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/user_data_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: User data not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Update a user data record.
tags: []
x-codegen-request-body-name: body
/ping:
get:
description: Check if the service is running.
operationId: ping
responses:
"200":
content:
application/json:
schema:
type: object
description: Successful response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Check if the service is running.
tags: []
/version:
get:
description: Return the version of the service.
operationId: get_version
responses:
"200":
content:
application/json:
schema:
type: object
description: Successful response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Return the version of the service.
tags: []
/workflows:
get:
description: Retrieve all workflows.
operationId: list_workflows
parameters:
- explode: true
in: query
name: offset
required: false
schema:
default: 0
type: integer
style: form
- explode: true
in: query
name: sort_by
required: false
schema:
default: null
type: string
style: form
- explode: true
in: query
name: reverse_sort
required: false
schema:
default: false
type: boolean
style: form
- explode: true
in: query
name: limit
required: false
schema:
default: 100000
type: integer
style: form
- explode: true
in: query
name: name
required: false
schema:
type: string
style: form
- explode: true
in: query
name: user
required: false
schema:
type: string
style: form
- explode: true
in: query
name: description
required: false
schema:
type: string
style: form
- explode: true
in: query
name: is_archived
required: false
schema:
type: boolean
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_workflows_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve all workflows.
tags: []
post:
description: Store a workflow.
operationId: create_workflow
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/workflow_model"
description: Workflow attributes
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/workflow_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Store a workflow.
tags: []
x-codegen-request-body-name: body
/workflows/{id}:
delete:
description: Delete a workflow.
operationId: delete_workflow
parameters:
- description: Workflow ID.
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/workflow_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete a workflow.
tags: []
x-codegen-request-body-name: body
get:
description: Retrieve a workflow.
operationId: get_workflow
parameters:
- description: ID of the workflows record
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/workflow_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve a workflow.
tags: []
put:
description: Update a workflow.
operationId: update_workflow
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/workflow_model"
description: workflow to update in the table.
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/workflow_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Update a workflow.
tags: []
x-codegen-request-body-name: body
/workflows/{id}/cancel:
put:
description: Cancel a workflow. Workers will detect the status change and cancel
jobs.
operationId: cancel_workflow
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
type: object
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Cancel a workflow. Workers will detect the status change and cancel jobs.
tags: []
x-codegen-request-body-name: body
/workflows/{id}/initialize_jobs:
post:
description: Initialize job relationships based on file and user_data relationships.
operationId: initialize_jobs
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
- description: Only initialize jobs with a status of uninitialized.
explode: true
in: query
name: only_uninitialized
required: false
schema:
default: false
type: boolean
style: form
- description: Clear all ephemeral user data.
explode: true
in: query
name: clear_ephemeral_user_data
required: false
schema:
default: true
type: boolean
style: form
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
type: object
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Initialize job relationships based on file and user_data relationships.
tags: []
x-codegen-request-body-name: body
/workflows/{id}/is_complete:
get:
description: Return true if all jobs in the workflow are complete.
operationId: is_workflow_complete
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/is_complete_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Return true if all jobs in the workflow are complete.
tags: []
/workflows/{id}/is_uninitialized:
get:
description: Return true if all jobs in the workflow are uninitialized or disabled.
operationId: is_workflow_uninitialized
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/is_uninitialized_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Return true if all jobs in the workflow are uninitialized or disabled.
tags: []
/workflows/{id}/job_ids:
get:
description: Retrieve all job IDs for one workflow.
operationId: list_job_ids
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_job_ids_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve all job IDs for one workflow.
tags: []
/workflows/{id}/latest_event_timestamp:
get:
description: Return the timestamp of the latest event in ms since the epoch
in UTC.
operationId: get_latest_event_timestamp
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
type: object
description: Successful response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Return the timestamp of the latest event in ms since the epoch in UTC.
tags: []
/workflows/{id}/missing_user_data:
get:
description: List missing user data that should exist.
operationId: list_missing_user_data
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_missing_user_data_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: List missing user data that should exist.
tags: []
/workflows/{id}/process_changed_job_inputs:
post:
description: Check for changed job inputs and update status accordingly.
operationId: process_changed_job_inputs
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
- description: "If true, report changes but do not change the database."
explode: false
in: query
name: dry_run
required: false
schema:
type: boolean
style: simple
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/process_changed_job_inputs_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Check for changed job inputs and update status accordingly.
tags: []
x-codegen-request-body-name: body
/workflows/{id}/ready_job_requirements:
get:
description: Return the resource requirements for jobs with a status of ready.
operationId: get_ready_job_requirements
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
- description: Limit output to jobs assigned this scheduler.
explode: true
in: query
name: scheduler_config_id
required: false
schema:
type: integer
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/get_ready_job_requirements_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Return the resource requirements for jobs with a status of ready.
tags: []
/workflows/{id}/required_existing_files:
get:
description: List files that must exist.
operationId: list_required_existing_files
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_required_existing_files_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: List files that must exist.
tags: []
/workflows/{id}/claim_jobs_based_on_resources/{limit}:
post:
description: Return jobs that are ready for submission and meet worker resource requirements. Set status to pending.
operationId: claim_jobs_based_on_resources
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
- explode: true
in: query
name: sort_method
required: false
schema:
$ref: "#/components/schemas/jobs_sort_method"
style: form
- description: If true, only claim jobs that match the scheduler_id of the worker. If false (default), jobs with a scheduler_id mismatch will be claimed if no matching jobs are available.
explode: true
in: query
name: strict_scheduler_match
required: false
schema:
type: boolean
default: false
style: form
- explode: true
in: path
name: limit
required: true
schema:
type: integer
style: form
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/compute_nodes_resources"
description: Available worker resources.
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/claim_jobs_based_on_resources_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Return jobs that are ready for submission and meet worker resource requirements. Set status to pending.
tags: []
x-codegen-request-body-name: body
/workflows/{id}/claim_next_jobs:
post:
description: Return user-requested number of jobs that are ready for submission. Sets status to pending.
operationId: claim_next_jobs
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
- explode: true
in: query
name: limit
required: false
schema:
default: 1.0
type: integer
style: form
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/claim_next_jobs_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Return user-requested number of jobs that are ready for submission. Sets status to pending.
tags: []
x-codegen-request-body-name: body
/workflows/{id}/reset_status:
post:
description: Reset workflow status.
operationId: reset_workflow_status
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
- description: If true, ignore active jobs check and reset anyway
explode: true
in: query
name: force
required: false
schema:
type: boolean
default: false
style: form
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
type: object
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"422":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Unprocessable content
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Reset worklow status.
tags: []
x-codegen-request-body-name: body
/workflows/{id}/reset_job_status:
post:
description: Reset status for jobs to uninitialized.
operationId: reset_job_status
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
- description: Only reset failed jobs
explode: true
in: query
name: failed_only
required: false
schema:
default: false
type: boolean
style: form
requestBody:
content:
application/json:
schema:
type: object
required: false
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/reset_job_status_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Reset status for jobs to uninitialized.
tags: []
x-codegen-request-body-name: body
/workflows/{id}/status:
get:
description: Return the workflow status.
operationId: get_workflow_status
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/workflow_status_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Return the workflow status.
tags: []
put:
description: Update the workflow status.
operationId: update_workflow_status
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/workflow_status_model"
description: Updated workflow status
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/workflow_status_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Update the workflow status.
tags: []
x-codegen-request-body-name: body
/workflows/{id}/job_dependencies:
get:
description: Retrieve all job blocking relationships for one workflow from the job_depends_on table.
operationId: list_job_dependencies
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
- explode: true
in: query
name: offset
required: false
schema:
default: 0
type: integer
style: form
- explode: true
in: query
name: limit
required: false
schema:
default: 100000
type: integer
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_job_dependencies_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve job blocking relationships for a workflow.
tags: []
/workflows/{id}/job_file_relationships:
get:
description: Retrieve all job-file relationships for one workflow from the job_input_file and job_output_file tables.
operationId: list_job_file_relationships
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
- explode: true
in: query
name: offset
required: false
schema:
default: 0
type: integer
style: form
- explode: true
in: query
name: limit
required: false
schema:
default: 100000
type: integer
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_job_file_relationships_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve job-file relationships for a workflow.
tags: []
/workflows/{id}/job_user_data_relationships:
get:
description: Retrieve all job-user_data relationships for one workflow from the job_input_user_data and job_output_user_data tables.
operationId: list_job_user_data_relationships
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
- explode: true
in: query
name: offset
required: false
schema:
default: 0
type: integer
style: form
- explode: true
in: query
name: limit
required: false
schema:
default: 100000
type: integer
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_job_user_data_relationships_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Retrieve job-user_data relationships for a workflow.
tags: []
/workflows/{id}/actions:
post:
description: Create a workflow action.
operationId: create_workflow_action
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/workflow_action_model"
description: Workflow action to create
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/workflow_action_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"422":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Unprocessable content error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Create a workflow action.
tags: []
x-codegen-request-body-name: body
get:
description: Get all workflow actions for a workflow.
operationId: get_workflow_actions
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/workflow_action_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Get all workflow actions for a workflow.
tags: []
/workflows/{id}/actions/pending:
get:
description: Get pending (unexecuted) workflow actions for a workflow, optionally filtered by trigger type.
operationId: get_pending_actions
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
- description: Filter by trigger type (can be specified multiple times)
explode: true
in: query
name: trigger_type
required: false
schema:
type: array
items:
type: string
style: form
responses:
"200":
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/workflow_action_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found error response
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Get pending workflow actions, optionally filtered by trigger type.
tags: []
/workflows/{id}/actions/{action_id}/claim:
post:
description: Atomically claim a workflow action for execution by a compute node.
operationId: claim_action
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
- description: Action ID
explode: false
in: path
name: action_id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
properties:
compute_node_id:
type: integer
description: ID of the compute node claiming the action
required:
- compute_node_id
description: Compute node claiming the action
required: true
responses:
"200":
content:
application/json:
schema:
type: object
properties:
action_id:
type: integer
success:
type: boolean
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Conflict - action already claimed
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Atomically claim a workflow action.
tags: []
x-codegen-request-body-name: body
/workflows/{id}/remote_workers:
post:
description: Store remote workers for a workflow.
operationId: create_remote_workers
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: array
items:
type: string
description: List of remote worker addresses
description: List of remote workers to add
required: true
responses:
"200":
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/remote_worker_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Workflow not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Store remote workers for a workflow.
tags: []
x-codegen-request-body-name: workers
get:
description: List all remote workers for a workflow.
operationId: list_remote_workers
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/remote_worker_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Workflow not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: List all remote workers for a workflow.
tags: []
/workflows/{id}/remote_workers/{worker}:
delete:
description: Delete a remote worker from a workflow.
operationId: delete_remote_worker
parameters:
- description: Workflow ID
explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
- description: Worker address (URL-encoded)
explode: false
in: path
name: worker
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/remote_worker_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Workflow or worker not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete a remote worker from a workflow.
tags: []
/ro_crate_entities:
post:
description: Create a new RO-Crate entity.
operationId: create_ro_crate_entity
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ro_crate_entity_model"
description: RO-Crate entity to create
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ro_crate_entity_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this workflow
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Create a new RO-Crate entity.
tags: []
x-codegen-request-body-name: body
/ro_crate_entities/{id}:
get:
description: Get an RO-Crate entity by ID.
operationId: get_ro_crate_entity
parameters:
- explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ro_crate_entity_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Get an RO-Crate entity by ID.
tags: []
put:
description: Update an RO-Crate entity.
operationId: update_ro_crate_entity
parameters:
- explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ro_crate_entity_model"
description: Updated RO-Crate entity
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ro_crate_entity_model"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Update an RO-Crate entity.
tags: []
x-codegen-request-body-name: body
delete:
description: Delete an RO-Crate entity.
operationId: delete_ro_crate_entity
parameters:
- explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
description: Optional request body (ignored)
required: false
responses:
"200":
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Success message
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete an RO-Crate entity.
tags: []
x-codegen-request-body-name: body
/workflows/{id}/ro_crate_entities:
get:
description: List all RO-Crate entities for a workflow.
operationId: list_ro_crate_entities
parameters:
- explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
- explode: true
in: query
name: offset
required: false
schema:
default: 0
type: integer
style: form
- explode: true
in: query
name: limit
required: false
schema:
default: 100000
type: integer
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/list_ro_crate_entities_response"
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this workflow
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"422":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Validation error (e.g., invalid pagination parameters)
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: List all RO-Crate entities for a workflow.
tags: []
delete:
description: Delete all RO-Crate entities for a workflow.
operationId: delete_ro_crate_entities
parameters:
- explode: false
in: path
name: id
required: true
schema:
type: integer
style: simple
requestBody:
content:
application/json:
schema:
type: object
description: Optional request body (ignored)
required: false
responses:
"200":
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Success message
deleted_count:
type: integer
description: Number of RO-Crate entities deleted
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - user does not have access to this workflow
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/not_found_error_response"
description: Not found
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Delete all RO-Crate entities for a workflow.
tags: []
x-codegen-request-body-name: body
/admin/reload-auth:
post:
description: >-
Re-reads the htpasswd authentication file from disk without restarting
the server. This is useful for adding/removing users or changing
passwords. Only admin users can call this endpoint. The credential cache
is cleared after reload.
operationId: reload_auth
responses:
"200":
content:
application/json:
schema:
properties:
message:
type: string
user_count:
type: integer
required:
- message
- user_count
type: object
description: Successful response
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/forbidden_error_response"
description: Forbidden - only admin users can reload auth
"500":
content:
application/json:
schema:
$ref: "#/components/schemas/default_error_response"
description: Default error response
security: []
summary: Reload auth credentials from htpasswd file
tags:
- Admin
components:
schemas:
access_group_model:
description: Access group for team-based access control
properties:
id:
type: integer
name:
type: string
description:
type: string
created_at:
type: string
required:
- name
type: object
user_group_membership_model:
description: User membership in an access group
properties:
id:
type: integer
user_name:
type: string
group_id:
type: integer
role:
type: string
default: member
created_at:
type: string
required:
- user_name
- group_id
type: object
workflow_access_group_model:
description: Association between a workflow and an access group
properties:
workflow_id:
type: integer
group_id:
type: integer
created_at:
type: string
required:
- workflow_id
- group_id
type: object
list_access_groups_response:
description: Response for listing access groups
properties:
items:
items:
$ref: "#/components/schemas/access_group_model"
type: array
offset:
type: integer
limit:
type: integer
total_count:
type: integer
has_more:
type: boolean
type: object
list_user_group_memberships_response:
description: Response for listing user group memberships
properties:
items:
items:
$ref: "#/components/schemas/user_group_membership_model"
type: array
offset:
type: integer
limit:
type: integer
total_count:
type: integer
has_more:
type: boolean
type: object
access_check_response:
description: Response for access check
properties:
has_access:
type: boolean
user_name:
type: string
workflow_id:
type: integer
required:
- has_access
- user_name
- workflow_id
type: object
compute_node_model:
example:
workflow_id: 37
duration_seconds: 1.4658129805029452
num_cpus: 5
is_active: true
time_limit: time_limit
num_gpus: 2
pid: 6
scheduler_config_id: 9
num_nodes: 7
compute_node_type: local
scheduler: {}
start_time: start_time
hostname: hostname
memory_gb: 5.637376656633329
id: 0
properties:
id:
type: integer
workflow_id:
type: integer
hostname:
type: string
pid:
type: integer
start_time:
type: string
duration_seconds:
type: number
is_active:
type: boolean
num_cpus:
type: integer
memory_gb:
type: number
num_gpus:
type: integer
num_nodes:
type: integer
time_limit:
type: string
scheduler_config_id:
type: integer
compute_node_type:
type: string
scheduler:
properties: {}
type: object
required:
- workflow_id
- hostname
- memory_gb
- num_cpus
- num_gpus
- num_nodes
- pid
- start_time
- compute_node_type
compute_node_schedule:
example:
start_one_worker_per_node: false
num_jobs: 5
max_parallel_jobs: 32
scheduler_id: scheduler_id
properties:
max_parallel_jobs:
type: integer
num_jobs:
type: integer
scheduler_id:
type: integer
start_one_worker_per_node:
default: false
type: boolean
required:
- num_jobs
- scheduler_id
compute_nodes_resources:
properties:
id:
type: integer
num_cpus:
type: integer
memory_gb:
type: number
num_gpus:
type: integer
num_nodes:
type: integer
time_limit:
type: string
scheduler_config_id:
type: integer
required:
- memory_gb
- num_cpus
- num_gpus
- num_nodes
event_model:
description: Data model for events.
example:
workflow_id: 6
data: "{}"
id: 0
timestamp: timestamp
properties:
id:
description: Database ID of the event.
type: integer
workflow_id:
description: Database ID of the workflow this record is associated with.
type: integer
timestamp:
description: Timestamp of the event
type: integer
data:
description: User-defined data associated with the event
type: object
required:
- data
- timestamp - workflow_id
failure_handler_model:
description: Data model for configurable failure handlers that define rules for automatic job retry.
example:
id: 1
workflow_id: 42
name: simple_retry
rules: "[{\"match_all_exit_codes\": true, \"max_retries\": 3}]"
properties:
id:
description: Database ID of this failure handler.
type: integer
workflow_id:
description: Database ID of the workflow this handler is associated with.
type: integer
name:
description: Name of the failure handler
type: string
rules:
description: >-
JSON array of rule objects. Each rule can have: exit_codes (array of integers),
match_all_exit_codes (boolean, matches any non-zero exit code),
recovery_script (optional path to script), and max_retries (integer, defaults to 3).
type: string
required:
- name
- rules
- workflow_id
file_model:
description: Data model for files needed or produced by jobs. Can be data or
code.
example:
st_mtime: 1.4658129805029452
path: path
workflow_id: 6
name: name
id: 0
properties:
id:
type: integer
workflow_id:
description: Database ID of the workflow this record is associated with.
type: integer
name:
description: User-defined name of the file (not necessarily the filename)
type: string
path:
description: Path to the file; can be relative to the execution directory.
type: string
st_mtime:
description: Timestamp of when the file was last modified
type: number
required:
- name
- path
- workflow_id
job_model:
example:
output_user_data:
- 3
- 3
workflow_id: 6
cancel_on_blocking_job_failure: true
command: command
input_user_data_ids:
- 9
- 9
scheduler: 4
input_file_ids:
- 2
- 2
output_file_ids:
- 7
- 7
depends_on_job_ids:
- 5
- 5
resource_requirements_id: 2
name: name
id: 0
invocation_script: invocation_script
status: ready
supports_termination: false
properties:
id:
type: integer
workflow_id:
type: integer
name:
description: Name of the job; no requirements on uniqueness
type: string
command:
description: CLI command to execute. Will not be executed in a shell and
so must not include shell characters.
type: string
invocation_script:
description: Wrapper script for command in case the environment needs customization.
type: string
status:
description: Status of job; managed by torc.
$ref: "#/components/schemas/job_status"
cancel_on_blocking_job_failure:
default: true
description: Cancel this job if any of its blocking jobs fails.
type: boolean
supports_termination:
default: false
deprecated: true
description: "Deprecated: Slurm now manages termination signals via srun\
\ --time and KillWait, so all jobs receive graceful SIGTERM. This field\
\ is accepted but ignored."
type: boolean
depends_on_job_ids:
description: Database IDs of jobs that block this job
items:
type: integer
type: array
input_file_ids:
description: Database IDs of files that this job needs
items:
type: integer
type: array
output_file_ids:
description: Database IDs of files that this job produces
items:
type: integer
type: array
input_user_data_ids:
description: Database IDs of user-data objects that this job needs
items:
type: integer
type: array
output_user_data_ids:
description: Database IDs of user-data objects that this job produces
items:
type: integer
type: array
resource_requirements_id:
description: Optional database ID of resources required by this job
type: integer
scheduler_id:
description: Optional database ID of scheduler needed by this job
type: integer
failure_handler_id:
description: Optional database ID of failure handler for this job
type: integer
attempt_id:
description: Current retry attempt number (starts at 1)
type: integer
default: 1
required:
- command
- name
- workflow_id
jobs_model:
description: Data model for a batch of jobs
properties:
jobs:
description: Jobs in the batch
items:
$ref: "#/components/schemas/job_model"
type: array
required:
- jobs
local_scheduler_model:
example:
num_cpus: 1
workflow_id: 6
memory: memory
name: default
id: 0
properties:
id:
type: integer
workflow_id:
type: integer
name:
default: default
type: string
memory:
type: string
num_cpus:
type: integer
required:
- workflow_id
resource_requirements_model:
example:
num_cpus: 1
workflow_id: 6
memory: 1m
num_gpus: 5
name: name
runtime: P0DT1M
id: 0
num_nodes: 5
properties:
id:
description: Database ID of this record.
type: integer
workflow_id:
description: Database ID of the workflow this record is associated with.
type: integer
name:
description: Name of the resource requirements
type: string
num_cpus:
description: Number of CPUs required by a job
type: integer
default: 1
num_gpus:
description: Number of GPUs required by a job
type: integer
default: 0
num_nodes:
description: Number of nodes required per job (used by srun --nodes for Slurm jobs)
type: integer
default: 1
memory:
default: 1m
description: "Amount of memory required by a job, e.g., 20g"
type: string
runtime:
default: P0DT1M
description: Maximum runtime for a job
type: string
required:
- workflow_id
- name
result_model:
example:
workflow_id: 1
run_id: 5
attempt_id: 1
completion_time: completion_time
job_id: 6
exec_time_minutes: 2.3021358869347655
id: 0
return_code: 5
status: status
compute_node_id: 1
peak_memory_bytes: 524288000
avg_memory_bytes: 419430400
peak_cpu_percent: 150.5
avg_cpu_percent: 85.2
properties:
id:
type: integer
job_id:
description: Database ID for the job tied to this result
type: integer
workflow_id:
description: Database ID for the workflow tied to this result
type: integer
run_id:
description: ID of the workflow run. Incremements on every start and restart.
type: integer
attempt_id:
description: Retry attempt number for this result (starts at 1, increments on each retry)
type: integer
default: 1
compute_node_id:
description: Database ID for the compute node that ran this job
type: integer
return_code:
description: Code returned by the job. Zero is success; non-zero is a failure.
type: integer
exec_time_minutes:
description: Job execution time in minutes
type: number
completion_time:
description: Timestamp of when the job completed.
type: string
status:
description: Status of the job; managed by torc.
$ref: "#/components/schemas/job_status"
peak_memory_bytes:
description: Peak memory usage in bytes
type: integer
avg_memory_bytes:
description: Average memory usage in bytes
type: integer
peak_cpu_percent:
description: Peak CPU usage as percentage (can exceed 100% for multi-core)
type: number
avg_cpu_percent:
description: Average CPU usage as percentage (can exceed 100% for multi-core)
type: number
required:
- completion_time
- compute_node_id
- exec_time_minutes
- job_id
- return_code
- run_id
- status
- workflow_id
scheduled_compute_nodes_model:
example:
workflow_id: 6
id: 0
scheduler_config_id: 5
scheduler_id: 1
scheduler_type: local
status: status
properties:
id:
type: integer
workflow_id:
type: integer
scheduler_id:
type: integer
scheduler_config_id:
type: integer
scheduler_type:
type: string
status:
type: string
required:
- scheduler_config_id
- scheduler_id
- scheduler_type
- status
- workflow_id
slurm_scheduler_model:
description: Data model for Slurm scheduler
example:
ntasks_per_node: 5
workflow_id: 6
gres: gres
walltime: walltime
nodes: 1
partition: partition
mem: mem
qos: normal
tmp: tmp
extra: extra
name: name
id: 0
account: account
properties:
id:
type: integer
workflow_id:
description: Database ID of the workflow this scheduler is associated with.
type: integer
name:
description: Name of the scheduler
type: string
account:
description: Slurm account ID
type: string
gres:
description: Generic resource requirement
type: string
mem:
description: Compute node memory requirement
type: string
nodes:
description: Number of nodes for the Slurm allocation
type: integer
ntasks_per_node:
description: Number of tasks to invoke on each node
type: integer
partition:
description: Compute node partition; likely not necessary because Slurm
should optimize it.
type: string
qos:
default: normal
description: Priority of Slurm job
type: string
tmp:
description: Compute node local storage size requirement
type: string
walltime:
description: "Slurm runtime requirement, e.g., 04:00:00"
type: string
extra:
description: Extra Slurm parameters that torc will append to the sbatch
command
type: string
required:
- account
- nodes
- walltime
- workflow_id
user_data_model:
example:
workflow_id: 6
data: "{}"
is_ephemeral: false
name: name
id: 0
properties:
id:
type: integer
workflow_id:
description: Database ID of the workflow this record is associated with.
type: integer
is_ephemeral:
default: false
description: The data will only exist for the duration of one run. Torc
will clear it before starting new runs.
type: boolean
name:
description: Name of the data object
type: string
data:
description: User-defined data
properties: {}
type: object
required:
- workflow_id
- name
remote_worker_model:
description: A remote worker associated with a workflow
example:
worker: "user@hostname:22"
workflow_id: 1
properties:
worker:
description: Worker address in format [user@]hostname[:port]
type: string
workflow_id:
description: ID of the workflow this worker is associated with
type: integer
required:
- worker
- workflow_id
workflow_model:
example:
status_id: 1
name: name
description: description
id: 0
user: user
timestamp: timestamp
jobs_sort_method: gpus_runtime_memory
workflow_completion_script: workflow_completion_script
compute_node_ignore_workflow_completion: false
compute_node_wait_for_new_jobs_seconds: 1
compute_node_wait_for_healthy_database_minutes: 5
compute_node_min_time_for_new_jobs_seconds: 300
worker_startup_script: worker_startup_script
worker_completion_script: worker_completion_script
slurm_config: null
execution_config: '{"mode":"auto","limit_resources":true,"srun_termination_signal":"TERM@120"}'
properties:
id:
type: integer
name:
description: Name of the workflow
type: string
user:
description: User that created the workflow
type: string
description:
description: Description of the workflow
type: string
timestamp:
description: Timestamp of workflow creation
type: string
project:
description: Project name or identifier for grouping workflows
type: string
metadata:
description: Arbitrary metadata as JSON string
type: string
compute_node_expiration_buffer_seconds:
deprecated: true
description: "Deprecated: Slurm now manages job termination signals via\
\ srun --time and KillWait. This field is accepted but ignored. Previously\
\ informed compute nodes to shut down this many seconds before expiration."
type: integer
compute_node_wait_for_new_jobs_seconds:
default: 90
description: Inform all compute nodes to wait for new jobs for this time
period before exiting. Does not apply if the workflow is complete. Default
must be >= completion_check_interval_secs + job_completion_poll_interval
to avoid exiting before dependent jobs are unblocked.
type: integer
compute_node_ignore_workflow_completion:
default: false
description: Inform all compute nodes to ignore workflow completions and
hold onto allocations indefinitely. Useful for debugging failed jobs and
possibly dynamic workflows where jobs get added after starting.
type: boolean
compute_node_wait_for_healthy_database_minutes:
default: 20
description: Inform all compute nodes to wait this number of minutes if
the database becomes unresponsive.
type: integer
compute_node_min_time_for_new_jobs_seconds:
default: 300
description: Minimum remaining walltime (in seconds) required before a
compute node will request new jobs. If the remaining time is less than
this value, the compute node will stop requesting new jobs and wait for
running jobs to complete. This prevents starting jobs that won't have
enough time to complete. Default is 300 seconds (5 minutes).
type: integer
jobs_sort_method:
$ref: "#/components/schemas/jobs_sort_method"
resource_monitor_config:
description: Resource monitoring configuration as JSON string
type: string
slurm_defaults:
description: Default Slurm parameters to apply to all schedulers as JSON string
type: string
use_pending_failed:
default: false
description: Use PendingFailed status for failed jobs (enables AI-assisted recovery)
type: boolean
enable_ro_crate:
default: false
description: >-
When true, automatically create RO-Crate entities for workflow
files. Input files get entities during initialization; output
files get entities on job completion.
type: boolean
status_id:
type: integer
slurm_config:
deprecated: true
description: "Deprecated: Use execution_config instead. JSON-encoded\
\ blob of Slurm configuration options for the workflow. May include\
\ fields such as limit_resources, use_srun, srun_termination_signal,\
\ and enable_cpu_bind. Stored as a JSON string."
type:
- string
- "null"
execution_config:
description: "JSON-encoded execution configuration controlling mode\
\ (direct/slurm/auto) and related settings such as limit_resources,\
\ termination_signal, sigterm_lead_seconds, sigkill_headroom_seconds,\
\ timeout_exit_code, oom_exit_code, srun_termination_signal, and\
\ enable_cpu_bind. The server stores this without interpretation;\
\ only the client deserializes it."
type:
- string
- "null"
required:
- name
- user
workflow_action_model:
description: Data model for a workflow action
example:
id: 1
workflow_id: 123
trigger_type: "on_workflow_start"
action_type: "run_commands"
action_config:
commands:
- "echo 'Workflow started'"
job_ids: [1,2,3]
executed: false
executed_at: null
executed_by: null
persistent: false
properties:
id:
type: integer
description: Unique identifier for the action
workflow_id:
type: integer
description: ID of the workflow this action belongs to
trigger_type:
type: string
description: "Type of trigger (e.g., on_workflow_start, on_jobs_ready, on_jobs_complete, on_worker_start, on_worker_complete)"
action_type:
type: string
description: "Type of action to execute (e.g., run_commands, schedule_nodes)"
action_config:
type: object
description: Configuration for the action (JSON object)
job_ids:
type: array
items:
type: integer
description: Array of job IDs that this action applies to (for job-specific triggers)
executed:
type: boolean
default: false
description: Whether the action has been executed
executed_at:
type: string
description: Timestamp when the action was executed
executed_by:
type: integer
description: ID of the compute node that executed the action
persistent:
type: boolean
default: false
description: Whether the action can be claimed by multiple workers (persistent) or only once (non-persistent)
required:
- workflow_id
- trigger_type
- action_type
- action_config
workflow_status_model:
description: Data model for a workflow
example:
run_id: 6
is_archived: false
is_canceled: true
id: 0
has_detected_need_to_run_completion_script: false
properties:
id:
type: integer
is_canceled:
description: Flag indicating whether the workflow has been canceled.
type: boolean
is_archived:
default: false
description: Flag indicating whether the workflow has been archived.
type: boolean
run_id:
type: integer
has_detected_need_to_run_completion_script:
default: false
type: boolean
required:
- is_canceled
- run_id
default_error_response:
example:
code: 2
errorNum: 3
errorMessage: errorMessage
error: {}
properties:
error:
type: object
errorNum:
type: integer
errorMessage:
type: string
code:
type: integer
required:
- error
not_found_error_response:
example:
code: 404
errorNum: 404
errorMessage: errorMessage
error: {}
properties:
error:
type: object
errorNum:
type: integer
errorMessage:
type: string
code:
type: integer
required:
- error
forbidden_error_response:
description: Response when the user does not have access to the requested resource
example:
code: 403
errorNum: 403
errorMessage: User does not have access to this resource
error: {}
properties:
error:
type: object
errorNum:
type: integer
errorMessage:
type: string
code:
type: integer
required:
- error
create_jobs_response:
example:
items:
- output_user_data:
- 3
- 3
workflow_id: 6
cancel_on_blocking_job_failure: true
command: command
input_user_data:
- 9
- 9
scheduler: 4
input_file_ids:
- 2
- 2
output_files:
- 7
- 7
depends_on_job_ids:
- 5
- 5
resource_requirements_id: 2
name: name
id: 0
invocation_script: invocation_script
status: uninitialized
supports_termination: false
- output_user_data:
- 3
- 3
workflow_id: 6
cancel_on_blocking_job_failure: true
command: command
input_user_data:
- 9
- 9
scheduler: 4
input_file_ids:
- 2
- 2
output_files:
- 7
- 7
depends_on_job_ids:
- 5
- 5
resource_requirements_id: 2
name: name
id: 0
invocation_script: invocation_script
status: uninitialized
supports_termination: false
properties:
jobs:
items:
$ref: "#/components/schemas/job_model"
type: array
list_compute_nodes_response:
example:
max_limit: 6
total_count: 5
count: 1
offset: 0
has_more: true
items:
- duration_seconds: 1.4658129805029452
num_cpus: 5
is_active: true
time_limit: time_limit
num_gpus: 2
pid: 6
scheduler_config_id: 9
num_nodes: 7
scheduler: "{}"
start_time: start_time
hostname: hostname
memory_gb: 5.637376656633329
id: 0
- duration_seconds: 1.4658129805029452
num_cpus: 5
is_active: true
time_limit: time_limit
num_gpus: 2
pid: 6
scheduler_config_id: 9
num_nodes: 7
scheduler: "{}"
start_time: start_time
hostname: hostname
memory_gb: 5.637376656633329
id: 0
properties:
items:
items:
$ref: "#/components/schemas/compute_node_model"
type: array
offset:
type: integer
max_limit:
type: integer
count:
type: integer
total_count:
type: integer
has_more:
type: boolean
required:
- items
- count
- has_more
- max_limit
- offset
- total_count
list_events_response:
example:
max_limit: 6
total_count: 5
count: 1
offset: 0
has_more: true
items:
- workflow_id: 6
data: "{}"
id: 0
timestamp: timestamp
- workflow_id: 6
data: "{}"
id: 0
timestamp: timestamp
properties:
items:
items:
$ref: "#/components/schemas/event_model"
type: array
offset:
type: integer
max_limit:
type: integer
count:
type: integer
total_count:
type: integer
has_more:
type: boolean
required:
- items
- count
- has_more
- max_limit
- offset
- total_count
list_files_response:
example:
max_limit: 6
total_count: 5
count: 1
offset: 0
has_more: true
items:
- st_mtime: 1.4658129805029452
path: path
workflow_id: 6
name: name
id: 0
- st_mtime: 1.4658129805029452
path: path
workflow_id: 6
name: name
id: 0
properties:
items:
items:
$ref: "#/components/schemas/file_model"
type: array
offset:
type: integer
max_limit:
type: integer
count:
type: integer
total_count:
type: integer
has_more:
type: boolean
required:
- items
- count
- has_more
- max_limit
- offset
- total_count
list_jobs_response:
example:
max_limit: 6
total_count: 5
count: 1
offset: 0
has_more: true
items:
- output_user_data:
- 3
- 3
workflow_id: 6
cancel_on_blocking_job_failure: true
command: command
input_user_data:
- 9
- 9
scheduler: 4
input_file_ids:
- 2
- 2
output_files:
- 7
- 7
depends_on_job_ids:
- 5
- 5
resource_requirements_id: 2
name: name
id: 0
invocation_script: invocation_script
status: ready
supports_termination: false
- output_user_data:
- 3
- 3
workflow_id: 6
cancel_on_blocking_job_failure: true
command: command
input_user_data:
- 9
- 9
scheduler: 4
input_file_ids:
- 2
- 2
output_files:
- 7
- 7
depends_on_job_ids:
- 5
- 5
resource_requirements_id: 2
name: name
id: 0
invocation_script: invocation_script
status: ready
supports_termination: false
properties:
items:
items:
$ref: "#/components/schemas/job_model"
type: array
offset:
type: integer
max_limit:
type: integer
count:
type: integer
total_count:
type: integer
has_more:
type: boolean
required:
- items
- count
- has_more
- max_limit
- offset
- total_count
job_dependency_model:
description: Represents a blocking relationship between two jobs in the job_depends_on table.
example:
job_id: 123
job_name: "process_data"
depends_on_job_id: 456
depends_on_job_name: "download_data"
workflow_id: 789
properties:
job_id:
description: The job that is blocked
type: integer
job_name:
description: The name of the job that is blocked
type: string
depends_on_job_id:
description: The job that must complete first
type: integer
depends_on_job_name:
description: The name of the job that must complete first
type: string
workflow_id:
description: The workflow containing both jobs
type: integer
required:
- job_id
- job_name
- depends_on_job_id
- depends_on_job_name
- workflow_id
type: object
list_job_dependencies_response:
example:
max_limit: 100000
total_count: 42
count: 42
offset: 0
has_more: false
items:
- job_id: 123
job_name: "process_data"
depends_on_job_id: 456
depends_on_job_name: "download_data"
workflow_id: 789
- job_id: 124
job_name: "analyze_data"
depends_on_job_id: 456
depends_on_job_name: "download_data"
workflow_id: 789
properties:
items:
items:
$ref: "#/components/schemas/job_dependency_model"
type: array
offset:
type: integer
max_limit:
type: integer
count:
type: integer
total_count:
type: integer
has_more:
type: boolean
required:
- items
- count
- has_more
- max_limit
- offset
- total_count
type: object
job_file_relationship_model:
description: Represents a job-file relationship showing producer and consumer jobs for a file.
example:
file_id: 42
file_name: "data.csv"
file_path: "/path/to/data.csv"
producer_job_id: 123
producer_job_name: "generate_data"
consumer_job_id: 456
consumer_job_name: "process_data"
workflow_id: 789
properties:
file_id:
description: The file ID
type: integer
file_name:
description: The name of the file
type: string
file_path:
description: The path of the file
type: string
producer_job_id:
description: The job that produces this file (null for workflow inputs)
type:
- integer
- "null"
producer_job_name:
description: The name of the job that produces this file
type:
- string
- "null"
consumer_job_id:
description: The job that consumes this file (null for workflow outputs)
type:
- integer
- "null"
consumer_job_name:
description: The name of the job that consumes this file
type:
- string
- "null"
workflow_id:
description: The workflow containing the file and jobs
type: integer
required:
- file_id
- file_name
- file_path
- workflow_id
type: object
list_job_file_relationships_response:
example:
max_limit: 100000
total_count: 42
count: 42
offset: 0
has_more: false
items:
- file_id: 42
file_name: "data.csv"
file_path: "/path/to/data.csv"
producer_job_id: 123
producer_job_name: "generate_data"
consumer_job_id: 456
consumer_job_name: "process_data"
workflow_id: 789
properties:
items:
items:
$ref: "#/components/schemas/job_file_relationship_model"
type: array
offset:
type: integer
max_limit:
type: integer
count:
type: integer
total_count:
type: integer
has_more:
type: boolean
required:
- items
- count
- has_more
- max_limit
- offset
- total_count
type: object
job_user_data_relationship_model:
description: Represents a job-user_data relationship showing producer and consumer jobs for user_data.
example:
user_data_id: 42
user_data_name: "config"
producer_job_id: 123
producer_job_name: "generate_config"
consumer_job_id: 456
consumer_job_name: "use_config"
workflow_id: 789
properties:
user_data_id:
description: The user_data ID
type: integer
user_data_name:
description: The name of the user_data
type: string
producer_job_id:
description: The job that produces this user_data (null for workflow inputs)
type:
- integer
- "null"
producer_job_name:
description: The name of the job that produces this user_data
type:
- string
- "null"
consumer_job_id:
description: The job that consumes this user_data (null for workflow outputs)
type:
- integer
- "null"
consumer_job_name:
description: The name of the job that consumes this user_data
type:
- string
- "null"
workflow_id:
description: The workflow containing the user_data and jobs
type: integer
required:
- user_data_id
- user_data_name
- workflow_id
type: object
list_job_user_data_relationships_response:
example:
max_limit: 100000
total_count: 42
count: 42
offset: 0
has_more: false
items:
- user_data_id: 42
user_data_name: "config"
producer_job_id: 123
producer_job_name: "generate_config"
consumer_job_id: 456
consumer_job_name: "use_config"
workflow_id: 789
properties:
items:
items:
$ref: "#/components/schemas/job_user_data_relationship_model"
type: array
offset:
type: integer
max_limit:
type: integer
count:
type: integer
total_count:
type: integer
has_more:
type: boolean
required:
- items
- count
- has_more
- max_limit
- offset
- total_count
type: object
list_local_schedulers_response:
example:
max_limit: 6
total_count: 5
count: 1
offset: 0
has_more: true
items:
- num_cpus: 1
workflow_id: 6
memory: memory
name: default
id: 0
- num_cpus: 1
workflow_id: 6
memory: memory
name: default
id: 0
properties:
items:
items:
$ref: "#/components/schemas/local_scheduler_model"
type: array
offset:
type: integer
max_limit:
type: integer
count:
type: integer
total_count:
type: integer
has_more:
type: boolean
required:
- items
- count
- has_more
- max_limit
- offset
- total_count
list_failure_handlers_response:
example:
max_limit: 100
total_count: 2
count: 2
offset: 0
has_more: false
items:
- id: 1
workflow_id: 42
name: gpu_recovery
rules: "[{\"exit_codes\": [128], \"recovery_script\": \"./fix.sh\", \"max_retries\": 3}]"
properties:
items:
items:
$ref: "#/components/schemas/failure_handler_model"
type: array
offset:
type: integer
max_limit:
type: integer
count:
type: integer
total_count:
type: integer
has_more:
type: boolean
required:
- items
- count
- has_more
- max_limit
- offset
- total_count
list_resource_requirements_response:
example:
max_limit: 6
total_count: 5
count: 1
offset: 0
has_more: true
items:
- num_cpus: 1
workflow_id: 6
memory: 1m
num_gpus: 5
name: name
runtime: P0DT1M
id: 0
num_nodes: 5
- num_cpus: 1
workflow_id: 6
memory: 1m
num_gpus: 5
name: name
runtime: P0DT1M
id: 0
num_nodes: 5
properties:
items:
items:
$ref: "#/components/schemas/resource_requirements_model"
type: array
offset:
type: integer
max_limit:
type: integer
count:
type: integer
total_count:
type: integer
has_more:
type: boolean
required:
- items
- count
- has_more
- max_limit
- offset
- total_count
list_results_response:
example:
max_limit: 6
total_count: 5
count: 1
offset: 0
has_more: true
items:
- workflow_id: 1
run_id: 5
completion_time: completion_time
job_id: 6
exec_time_minutes: 2.3021358869347655
id: 0
return_code: 5
status: done
- workflow_id: 1
run_id: 5
completion_time: completion_time
job_id: 6
exec_time_minutes: 2.3021358869347655
id: 0
return_code: 5
status: done
properties:
items:
items:
$ref: "#/components/schemas/result_model"
type: array
offset:
type: integer
max_limit:
type: integer
count:
type: integer
total_count:
type: integer
has_more:
type: boolean
required:
- items
- count
- has_more
- max_limit
- offset
- total_count
list_scheduled_compute_nodes_response:
example:
max_limit: 6
total_count: 5
count: 1
offset: 0
has_more: true
items:
- workflow_id: 6
id: 0
scheduler_config_id: 5
scheduler_id: 1
status: status
- workflow_id: 6
id: 0
scheduler_config_id: 5
scheduler_id: 1
status: status
properties:
items:
items:
$ref: "#/components/schemas/scheduled_compute_nodes_model"
type: array
offset:
type: integer
max_limit:
type: integer
count:
type: integer
total_count:
type: integer
has_more:
type: boolean
required:
- items
- count
- has_more
- max_limit
- offset
- total_count
list_slurm_schedulers_response:
example:
max_limit: 6
total_count: 5
count: 1
offset: 0
has_more: true
items:
- ntasks_per_node: 5
workflow_id: 6
gres: gres
walltime: walltime
nodes: 1
partition: partition
mem: mem
qos: normal
tmp: tmp
extra: extra
name: name
id: 0
account: account
- ntasks_per_node: 5
workflow_id: 6
gres: gres
walltime: walltime
nodes: 1
partition: partition
mem: mem
qos: normal
tmp: tmp
extra: extra
name: name
id: 0
account: account
properties:
items:
items:
$ref: "#/components/schemas/slurm_scheduler_model"
type: array
offset:
type: integer
max_limit:
type: integer
count:
type: integer
total_count:
type: integer
has_more:
type: boolean
required:
- items
- count
- has_more
- max_limit
- offset
- total_count
slurm_stats_model:
description: Per-step Slurm accounting data collected via sacct.
properties:
id:
description: Database ID for the record
type: integer
workflow_id:
description: Database ID for the workflow
type: integer
job_id:
description: Database ID for the job
type: integer
run_id:
description: ID of the workflow run
type: integer
attempt_id:
description: Retry attempt number (starts at 1)
type: integer
slurm_job_id:
description: Slurm allocation ID (from SLURM_JOB_ID env var)
type: string
max_rss_bytes:
description: Max resident set size in bytes (from sacct MaxRSS)
type: integer
max_vm_size_bytes:
description: Max virtual memory size in bytes (from sacct MaxVMSize)
type: integer
max_disk_read_bytes:
description: Max disk read in bytes (from sacct MaxDiskRead)
type: integer
max_disk_write_bytes:
description: Max disk write in bytes (from sacct MaxDiskWrite)
type: integer
ave_cpu_seconds:
description: Average CPU time in seconds (from sacct AveCPU)
type: number
node_list:
description: "Node(s) on which the step ran (from sacct NodeList)"
type: string
required:
- workflow_id
- job_id
- run_id
- attempt_id
type: object
list_slurm_stats_response:
description: Response containing a list of Slurm accounting stats records.
example:
max_limit: 6
total_count: 5
count: 1
offset: 0
has_more: true
items:
- workflow_id: 6
job_id: 1
run_id: 1
attempt_id: 1
slurm_job_id: "12345"
max_rss_bytes: 1048576
- workflow_id: 6
job_id: 2
run_id: 1
attempt_id: 1
slurm_job_id: "12346"
max_rss_bytes: 2097152
properties:
items:
items:
$ref: "#/components/schemas/slurm_stats_model"
type: array
offset:
type: integer
max_limit:
type: integer
count:
type: integer
total_count:
type: integer
has_more:
type: boolean
required:
- items
- count
- has_more
- max_limit
- offset
- total_count
type: object
list_user_data_response:
example:
max_limit: 6
total_count: 5
count: 1
offset: 0
has_more: true
items:
- workflow_id: 6
data: "{}"
is_ephemeral: false
name: name
id: 0
- workflow_id: 6
data: "{}"
is_ephemeral: false
name: name
id: 0
properties:
items:
items:
$ref: "#/components/schemas/user_data_model"
type: array
offset:
type: integer
max_limit:
type: integer
count:
type: integer
total_count:
type: integer
has_more:
type: boolean
required:
- items
- count
- has_more
- max_limit
- offset
- total_count
list_workflows_response:
example:
max_limit: 5
total_count: 7
count: 2
offset: 5
has_more: true
items:
properties:
items:
items:
$ref: "#/components/schemas/workflow_model"
type: array
offset:
type: integer
max_limit:
type: integer
count:
type: integer
total_count:
type: integer
has_more:
type: boolean
required:
- items
- count
- has_more
- max_limit
- offset
- total_count
is_complete_response:
example:
is_canceled: true
needs_to_run_completion_script: true
is_complete: true
properties:
is_canceled:
type: boolean
is_complete:
type: boolean
needs_to_run_completion_script:
type: boolean
required:
- is_canceled
- is_complete
- needs_to_run_completion_script
is_uninitialized_response:
example:
is_uninitialized: true
properties:
is_uninitialized:
type: boolean
required:
- is_uninitialized
get_ready_job_requirements_response:
example:
num_cpus: 6
memory_gb: 5.962133916683182
max_runtime: max_runtime
num_gpus: 1
num_jobs: 0
max_num_nodes: 5
properties:
num_jobs:
type: integer
num_cpus:
type: integer
num_gpus:
type: integer
memory_gb:
type: number
max_num_nodes:
type: integer
max_runtime:
type: string
required:
- max_num_nodes
- max_runtime
- memory_gb
- num_cpus
- num_gpus
- num_jobs
process_changed_job_inputs_response:
example:
reinitialized_jobs:
- reinitialized_jobs
- reinitialized_jobs
properties:
reinitialized_jobs:
items:
type: string
type: array
list_missing_user_data_response:
example:
user_data:
- user_data
- user_data
properties:
user_data:
items:
type: integer
type: array
default: []
list_required_existing_files_response:
example:
files:
- files
- files
properties:
files:
items:
type: string
type: array
default: []
claim_jobs_based_on_resources_response:
example:
reason: reason
jobs:
- output_user_data:
- 3
- 3
workflow_id: 6
cancel_on_blocking_job_failure: true
command: command
input_user_data:
- 9
- 9
scheduler: 4
input_file_ids:
- 2
- 2
output_files:
- 7
- 7
depends_on_job_ids:
- 5
- 5
resource_requirements_id: 2
name: name
id: 0
invocation_script: invocation_script
status: status
supports_termination: false
- output_user_data:
- 3
- 3
workflow_id: 6
cancel_on_blocking_job_failure: true
command: command
input_user_data:
- 9
- 9
scheduler: 4
input_file_ids:
- 2
- 2
output_files:
- 7
- 7
depends_on_job_ids:
- 5
- 5
resource_requirements_id: 2
name: name
id: 0
invocation_script: invocation_script
status: status
supports_termination: false
properties:
jobs:
items:
$ref: "#/components/schemas/job_model"
type: array
reason:
type: string
claim_next_jobs_response:
example:
jobs:
- output_user_data:
- 3
- 3
workflow_id: 6
cancel_on_blocking_job_failure: true
command: command
input_user_data:
- 9
- 9
scheduler: 4
input_file_ids:
- 2
- 2
output_files:
- 7
- 7
depends_on_job_ids:
- 5
- 5
resource_requirements_id: 2
name: name
id: 0
invocation_script: invocation_script
status: status
supports_termination: false
- output_user_data:
- 3
- 3
workflow_id: 6
cancel_on_blocking_job_failure: true
command: command
input_user_data:
- 9
- 9
scheduler: 4
input_file_ids:
- 2
- 2
output_files:
- 7
- 7
depends_on_job_ids:
- 5
- 5
resource_requirements_id: 2
name: name
id: 0
invocation_script: invocation_script
status: status
supports_termination: false
properties:
jobs:
items:
$ref: "#/components/schemas/job_model"
type: array
job_status:
description: Job statuses
enum:
- uninitialized
- blocked
- ready
- pending
- running
- completed
- failed
- canceled
- terminated
- disabled
type: string
jobs_sort_method:
default: gpus_runtime_memory
description: Inform the server to use this sort method when processing the claim_jobs_based_on_resources command.
enum:
- gpus_runtime_memory
- gpus_memory_runtime
- none
type: string
reset_job_status_response:
description: Response from resetting job statuses
properties:
workflow_id:
description: The workflow ID for which jobs were reset
type: integer
updated_count:
description: The number of jobs that were updated
type: integer
status:
description: The status that jobs were reset to
type: string
reset_type:
description: The type of reset performed (e.g., "all" or "failed_only")
type: string
required:
- workflow_id
- updated_count
- status
type: object
list_job_ids_response:
description: Response containing job IDs for a workflow
properties:
job_ids:
description: List of job IDs in the workflow
items:
type: integer
type: array
count:
description: The number of job IDs returned
type: integer
required:
- job_ids
- count
type: object
ro_crate_entity_model:
description: A single RO-Crate JSON-LD entity description for provenance tracking.
properties:
id:
description: Database ID of this record
type: integer
workflow_id:
description: Database ID of the workflow this entity belongs to
type: integer
file_id:
description: Optional link to a file record
type: integer
entity_id:
description: The JSON-LD @id for this entity (e.g., "data/output.parquet", "#job-42-attempt-1")
type: string
entity_type:
description: The Schema.org @type (e.g., "File", "Dataset", "SoftwareApplication", "CreateAction")
type: string
metadata:
description: Full JSON-LD metadata object as a JSON string
type: string
required:
- workflow_id
- entity_id
- entity_type
- metadata
type: object
list_ro_crate_entities_response:
description: Response containing a list of RO-Crate entities
properties:
items:
items:
$ref: "#/components/schemas/ro_crate_entity_model"
type: array
offset:
type: integer
max_limit:
type: integer
count:
type: integer
total_count:
type: integer
has_more:
type: boolean
required:
- items
- offset
- max_limit
- count
- total_count
- has_more
type: object
x-original-swagger-version: "2.0"