Benchling Workflow Task Groups API

Workflow task groups are groups of workflow tasks of the same schema

Documentation

Specifications

Other Resources

OpenAPI Specification

benchling-workflow-task-groups-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  title: Benchling AA Sequences Workflow Task Groups API
  version: 2.0.0
  description: 'AA Sequences are the working units of cells that make everything run (they help make structures, catalyze reactions and allow for signaling - a kind of internal cell communication). On Benchling, these are comprised of a string of amino acids and collections of other attributes, such as annotations.

    '
servers:
- url: /api/v2
security:
- oAuth: []
- basicApiKeyAuth: []
tags:
- description: Workflow task groups are groups of workflow tasks of the same schema
  name: Workflow Task Groups
paths:
  /workflow-task-groups:
    get:
      description: List workflow task groups
      operationId: listWorkflowTaskGroups
      parameters:
      - description: Comma separated list of workflow task group IDs
        in: query
        name: ids
        schema:
          example: prs_giVNQcTL,prs_t6m99v1
          type: string
      - description: The workflow task schema ID of tasks in this task group
        in: query
        name: schemaId
        schema:
          example: prstsch_KnR9iVum,prstsch_nJ34lw9y
          type: string
      - description: A folder ID
        in: query
        name: folderId
        schema:
          example: lib_bf0636
          type: string
      - description: A project ID
        in: query
        name: projectId
        schema:
          example: src_NetYd96a
          type: string
      - description: A comma separated list entry IDs
        in: query
        name: mentionedIn
        schema:
          example: etr_30ad79,etr_d00c97
          type: string
      - description: Comma separated list of user IDs or "null"
        in: query
        name: watcherIds
        schema:
          example: ent_a0SApq3z,ent_asdf72354,null
          minLength: 1
          type: string
      - description: 'Comma separated list of workflow execution types. Acceptable execution types are "DIRECT" and "ENTRY"

          '
        in: query
        name: executionTypes
        schema:
          example: ENTRY,DIRECT
          minLength: 1
          type: string
      - description: Comma separated list of team IDs or "null"
        in: query
        name: responsibleTeamIds
        schema:
          example: team_Thepp2c7,team_QqHMbfqK,null
          minLength: 1
          type: string
      - description: Commas separated list of Status ids. Maximum of 100. Returns workflows where at least one task is of one of the provided statuses.
        in: query
        name: statusIds.anyOf
        schema:
          example: wfts_VFvwv7JV,wfts_wQzUCsW0
          minLength: 1
          type: string
      - description: Commas separated list of Status ids. Returns workflows where none of the tasks are of any of the provided statuses.
        in: query
        name: statusIds.noneOf
        schema:
          example: wfts_VFvwv7JV,wfts_wQzUCsW0
          minLength: 1
          type: string
      - description: Commas separated list of Status ids. Returns workflows where all of the tasks are of one of the provided statuses.
        in: query
        name: statusIds.only
        schema:
          example: wfts_VFvwv7JV,wfts_wQzUCsW0
          minLength: 1
          type: string
      - description: The name of the workflow task group
        in: query
        name: name
        schema:
          example: Plasmid Transformation
          type: string
      - description: Part of the name of the workflow task group
        in: query
        name: nameIncludes
        schema:
          example: Plasmid
          type: string
      - description: Comma separated list of user IDs.
        in: query
        name: creatorIds
        schema:
          example: ent_a0SApq3z
          type: string
      - description: 'Datetime, in RFC 3339 format. Supports the > and < operators. Time zone defaults to UTC. Restricts results to those modified in the specified range. e.g. > 2017-04-30. Date ranges can be specified with the following nomenclature > YYYY-MM-DD AND <YYYY-MM-DD.

          '
        examples:
          and-range:
            summary: Filter for all models modified within a certain range using the AND operator.
            value: '> 2022-03-01 AND < 2022-04-01'
          full-rfc-3339-format:
            summary: Filter for modified models using the full RFC 3339 format
            value: '> 2020-12-31T21:07:14-05:00'
          greater-than-example:
            summary: Filter for all models modified after a certain date
            value: '> 2022-03-01'
        in: query
        name: modifiedAt
        schema:
          type: string
      - example: Im5ldyB0ZXN0Ig==
        in: query
        name: nextToken
        schema:
          type: string
      - in: query
        name: pageSize
        schema:
          default: 50
          maximum: 100
          minimum: 0
          nullable: false
          type: integer
      - description: Comma-separated list of Workflow Display IDs.
        in: query
        name: displayIds
        schema:
          example: VPR001,VPR002
          type: string
      - description: 'Archive reason. Restricts items to those with the specified archive reason. Use "NOT_ARCHIVED" to filter for unarchived workflow task groups. Use "ANY_ARCHIVED" to filter for archived workflow task groups regardless of reason. Use "ANY_ARCHIVED_OR_NOT_ARCHIVED" to return items for both archived and unarchived.

          '
        examples:
          1_not_archived:
            summary: Only include unarchived items (default).
            value: NOT_ARCHIVED
          2_archived_reason:
            summary: Includes items archived for a specific reason.
            value: Retired
          3_any_archived:
            summary: Includes items archived for any reason.
            value: ANY_ARCHIVED
          4_any_archived_or_not_archived:
            summary: Includes both archived and unarchived items.
            value: ANY_ARCHIVED_OR_NOT_ARCHIVED
        in: query
        name: archiveReason
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowTaskGroupsPaginatedList'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad request
      summary: List workflow task groups
      tags:
      - Workflow Task Groups
    post:
      description: Create a new workflow task group. If no name is specified, uses the workflow schema name and a unique incrementor separated by a single whitespace.
      operationId: createWorkflowTaskGroup
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowTaskGroupCreate'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowTaskGroup'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad request
      summary: Create a new workflow task group
      tags:
      - Workflow Task Groups
  /workflow-task-groups/{workflow_task_group_id}:
    get:
      description: Get a workflow task group
      operationId: getWorkflowTaskGroup
      parameters:
      - description: The ID of the workflow task group
        in: path
        name: workflow_task_group_id
        required: true
        schema:
          example: prs_giVNQcTL
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowTaskGroup'
          description: OK
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: Not found
      summary: Get a workflow task group
      tags:
      - Workflow Task Groups
    patch:
      description: Update a workflow task group
      operationId: updateWorkflowTaskGroup
      parameters:
      - description: The ID of the workflow task group
        in: path
        name: workflow_task_group_id
        required: true
        schema:
          example: prs_giVNQcTL
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowTaskGroupUpdate'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowTaskGroup'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: Not found
      summary: Update a workflow task group. If updating the folder ID, other attributes cannot be updated at the same time.
      tags:
      - Workflow Task Groups
  /workflow-task-groups:archive:
    post:
      description: Archive one or more workflows
      operationId: archiveWorkflowTaskGroups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowTaskGroupsArchive'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowTaskGroupsArchivalChange'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad request
      summary: Archive one or more workflows
      tags:
      - Workflow Task Groups
  /workflow-task-groups:unarchive:
    post:
      description: Unarchive one or more workflows
      operationId: unarchiveWorkflowTaskGroups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowTaskGroupsUnarchive'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowTaskGroupsArchivalChange'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad request
      summary: Unarchive one or more workflows
      tags:
      - Workflow Task Groups
components:
  schemas:
    WorkflowTaskSummary:
      properties:
        displayId:
          description: User-friendly ID of the workflow task
          type: string
        id:
          description: The ID of the workflow task
          example: wftask_OnnsW08k
          readOnly: true
          type: string
    TeamSummary:
      allOf:
      - type: object
      - properties:
          id:
            type: string
          name:
            type: string
      - example:
          id: team_5cjIguqc
          name: Elion's Team
    WorkflowTaskGroup:
      allOf:
      - $ref: '#/components/schemas/WorkflowTaskGroupBase'
      - properties:
          executionType:
            description: The method by which the workflow is executed
            enum:
            - DIRECT
            - ENTRY
            - FLOWCHART
            - PROCEDURE
            - PROCEDURE_METHOD
            - PROCEDURE_STEP
            type: string
          flowchartConfigVersionId:
            description: The flowchart configuration that this task group uses. This will be null if the task group does not have executionType FLOWCHART.
            example: wffccv_giVNQcAF
            type: string
          flowchartTaskGroups:
            description: The task groups that are members of the flowchart that this task group is the root of. This will be null this task group is not the root task group of a flowchart (eg if the task group does not have executionType FLOWCHART).
            items:
              $ref: '#/components/schemas/WorkflowNodeTaskGroupSummary'
            type: array
          nodeConfig:
            allOf:
            - $ref: '#/components/schemas/WorkflowFlowchartNodeConfig'
            description: The node in a Flowchart that this task group is associated with. This will be null if the task group is not part of a flowchart.
          rootTaskGroup:
            allOf:
            - $ref: '#/components/schemas/WorkflowTaskGroupSummary'
            description: The task group associated with the root node of the flowchart that this task group is a part of. This will be null if the task group is not part of a flowchart.
          workflowOutputs:
            description: The outputs of the workflow task group
            items:
              $ref: '#/components/schemas/WorkflowOutputSummary'
            type: array
    CreationOrigin:
      properties:
        application:
          nullable: true
          readOnly: true
          type: string
        originId:
          nullable: true
          readOnly: true
          type: string
        originModalUuid:
          format: uuid
          nullable: true
          readOnly: true
          type: string
        originType:
          nullable: true
          readOnly: true
          type: string
      type: object
    Folder:
      properties:
        archiveRecord:
          allOf:
          - $ref: '#/components/schemas/ArchiveRecord'
          nullable: true
          readOnly: true
        id:
          readOnly: true
          type: string
        name:
          type: string
        parentFolderId:
          description: ID of the parent folder, if it exists
          nullable: true
          type: string
        projectId:
          description: ID of the containing project
          readOnly: true
          type: string
    WorkflowEndNodeDetails:
      additionalProperties: false
      properties:
        id:
          description: The ID of the workflow flowchart end node config details
          example: wftrnd_aB8Wi12c
          readOnly: true
          type: string
        name:
          description: The name of the end node
          example: End 1
          readOnly: true
          type: string
        nodeType:
          description: The type of the node
          enum:
          - END
          type: string
      type: object
    BadRequestError:
      properties:
        error:
          allOf:
          - $ref: '#/components/schemas/BaseError'
          - properties:
              type:
                enum:
                - invalid_request_error
                type: string
      type: object
    BaseError:
      properties:
        message:
          type: string
        type:
          type: string
        userMessage:
          type: string
      type: object
    WorkflowTaskGroupsUnarchive:
      properties:
        workflowTaskGroupIds:
          items:
            example: prs_giVNQcTL
            type: string
          type: array
      required:
      - workflowTaskGroupIds
      type: object
    ArchiveRecord:
      properties:
        reason:
          example: Made in error
          type: string
      type: object
    WorkflowTaskSchemaSummary:
      properties:
        id:
          description: The ID of the workflow task schema
          type: string
        name:
          description: The name of the workflow task schema
          type: string
    WorkflowTaskGroupBase:
      allOf:
      - $ref: '#/components/schemas/WorkflowTaskGroupSummary'
      - properties:
          archiveRecord:
            allOf:
            - $ref: '#/components/schemas/ArchiveRecord'
            nullable: true
            readOnly: true
          createdAt:
            description: The ISO formatted date and time that the task group was created
            example: '2020-08-01T00:00:00.000Z'
            nullable: false
            type: string
          creationOrigin:
            $ref: '#/components/schemas/CreationOrigin'
          creator:
            $ref: '#/components/schemas/UserSummary'
          folder:
            $ref: '#/components/schemas/Folder'
          modifiedAt:
            description: The ISO formatted date and time that the task group was last modified
            example: '2020-08-01T00:00:00.000Z'
            nullable: false
            type: string
          outputs:
            description: The outputs of the workflow task group
            items:
              $ref: '#/components/schemas/WorkflowOutputSummary'
            type: array
          responsibleTeam:
            allOf:
            - $ref: '#/components/schemas/TeamSummary'
            nullable: true
          watchers:
            description: The users watching the workflow task group
            items:
              $ref: '#/components/schemas/UserSummary'
            type: array
          webURL:
            description: URL of the workflow task group
            format: uri
            readOnly: true
            type: string
          workflowTaskSchema:
            $ref: '#/components/schemas/WorkflowTaskSchemaSummary'
          workflowTasks:
            description: The input tasks to the workflow task group
            items:
              $ref: '#/components/schemas/WorkflowTaskSummary'
            type: array
    UserSummary:
      allOf:
      - $ref: '#/components/schemas/PartySummary'
      - example:
          handle: lpasteur
          id: ent_a0SApq3z
          name: Louis Pasteur
    WorkflowRouterFunction:
      additionalProperties: false
      properties:
        edgeConfigId:
          description: The ID of the workflow flowchart edge config associated with this function
          example: wffcec_giVNQcTL
          readOnly: true
          type: string
        id:
          description: The function associated with a router node
          example: wfrf_b2VJBmBj
          readOnly: true
          type: string
        isDefault:
          readOnly: true
        name:
          description: The name of a function associated with a router node
          example: Rule 1
          readOnly: true
          type: string
      type: object
    WorkflowTaskGroupArchiveReason:
      description: 'The reason for archiving the provided workflow task groups. Accepted reasons may differ based on tenant configuration.

        '
      enum:
      - Made in error
      - Retired
      - Other
      type: string
    PartySummary:
      properties:
        handle:
          type: string
        id:
          type: string
        name:
          type: string
      type: object
    WorkflowOutputSummary:
      properties:
        displayId:
          description: User-friendly ID of the workflow task group
          type: string
        id:
          description: The ID of the workflow output
          example: wfout_5cJLQKVF
          readOnly: true
          type: string
    WorkflowTaskNodeDetails:
      additionalProperties: false
      properties:
        id:
          description: The ID of the workflow task node config details
          example: wftnd_hbVNQcEM
          readOnly: true
          type: string
        nodeType:
          description: The type of the node
          enum:
          - TASK
          type: string
        taskSchema:
          $ref: '#/components/schemas/WorkflowTaskSchemaSummary'
      type: object
    WorkflowOutputNodeDetails:
      additionalProperties: false
      properties:
        id:
          description: The ID of the workflow output node config details
          example: wfond_hbVNQcEM
          readOnly: true
          type: string
        nodeType:
          description: The type of the node
          enum:
          - OUTPUT
          type: string
        outputSchema:
          $ref: '#/components/schemas/SchemaSummary'
      type: object
    WorkflowFlowchartNodeConfig:
      properties:
        id:
          description: The ID of the workflow flowchart node config
          readOnly: true
          type: string
        nodeDetails:
          discriminator:
            mapping:
              END: '#/components/schemas/WorkflowEndNodeDetails'
              OUTPUT: '#/components/schemas/WorkflowOutputNodeDetails'
              ROOT: '#/components/schemas/WorkflowRootNodeDetails'
              ROUTER: '#/components/schemas/WorkflowRouterNodeDetails'
              TASK: '#/components/schemas/WorkflowTaskNodeDetails'
            propertyName: nodeType
          oneOf:
          - $ref: '#/components/schemas/WorkflowRootNodeDetails'
          - $ref: '#/components/schemas/WorkflowOutputNodeDetails'
          - $ref: '#/components/schemas/WorkflowTaskNodeDetails'
          - $ref: '#/components/schemas/WorkflowRouterNodeDetails'
          - $ref: '#/components/schemas/WorkflowEndNodeDetails'
        nodeType:
          description: The type associated with the node config
          enum:
          - ROOT
          - OUTPUT
          - TASK
          - ROUTER
          - END
          type: string
      type: object
    WorkflowTaskGroupCreate:
      allOf:
      - $ref: '#/components/schemas/WorkflowTaskGroupWriteBase'
      - properties:
          schemaId:
            description: The workflow task schema of tasks in this task group
            example: prstsch_KnR9iVum
            type: string
        required:
        - schemaId
        - folderId
    WorkflowNodeTaskGroupSummary:
      allOf:
      - $ref: '#/components/schemas/WorkflowTaskGroupSummary'
      - properties:
          nodeConfigId:
            description: The node in a Flowchart that this task group is associated with. This will be null if the task group is not part of a flowchart.
            example: wffcnc_giVNQcTL
            type: string
    WorkflowRootNodeDetails:
      additionalProperties: false
      properties:
        id:
          description: The ID of the workflow root node config details
          example: wfrnd_hbVNQcEM
          readOnly: true
          type: string
        nodeType:
          description: The type of the node
          enum:
          - ROOT
          type: string
        rootTaskSchema:
          $ref: '#/components/schemas/WorkflowTaskSchemaSummary'
      type: object
    WorkflowTaskGroupSummary:
      properties:
        displayId:
          description: User-friendly ID of the workflow task group
          type: string
        id:
          description: The ID of the workflow task group
          example: prs_giVNQcTL
          readOnly: true
          type: string
        name:
          description: The name of the workflow task group
          type: string
    WorkflowRouterNodeDetails:
      additionalProperties: false
      properties:
        id:
          description: The ID of the workflow router node config details
          example: wfrnd_hbVJBcMC
          readOnly: true
          type: string
        name:
          description: The name of the router node
          example: Router 1
          readOnly: true
          type: string
        nodeType:
          description: The type of the node
          enum:
          - ROUTER
          type: string
        routerFunctions:
          description: Router functions associated with this router node
          items:
            $ref: '#/components/schemas/WorkflowRouterFunction'
          readOnly: true
          type: array
      type: object
    WorkflowTaskGroupsArchive:
      properties:
        reason:
          $ref: '#/components/schemas/WorkflowTaskGroupArchiveReason'
        workflowTaskGroupIds:
          items:
            example: prs_giVNQcTL
            type: string
          type: array
      required:
      - workflowTaskGroupIds
      - reason
      type: object
    WorkflowTaskGroupsPaginatedList:
      properties:
        nextToken:
          example: Im5ldyB0ZXN0Ig==
          type: string
        workflowTaskGroups:
          items:
            $ref: '#/components/schemas/WorkflowTaskGroup'
          type: array
      type: object
    NotFoundError:
      properties:
        error:
          allOf:
          - $ref: '#/components/schemas/BaseError'
          - properties:
              invalidId:
                type: string
              type:
                enum:
                - invalid_request_error
                type: string
      type: object
    WorkflowTaskGroupWriteBase:
      properties:
        folderId:
          description: ID of the folder that contains the workflow task group
          type: string
        name:
          description: The name of the workflow task group
          type: string
        watcherIds:
          description: IDs of the users watching the workflow task group
          items:
            example: ent_a0SApq3z
            type: string
          type: array
    WorkflowTaskGroupUpdate:
      allOf:
      - $ref: '#/components/schemas/WorkflowTaskGroupWriteBase'
    WorkflowTaskGroupsArchivalChange:
      description: 'IDs of all items that were archived or unarchived, grouped by resource type

        '
      properties:
        workflowTaskGroupIds:
          items:
            example: prs_giVNQcTL
            type: string
          type: array
      type: object
    SchemaSummary:
      properties:
        id:
          type: string
        name:
          type: string
      type: object
  securitySchemes:
    basicApiKeyAuth:
      description: Use issued API key for standard access to the API
      scheme: basic
      type: http
    basicClientIdSecretAuth:
      description: Auth used as part of client credentials OAuth flow prior to receiving a bearer token.
      scheme: basic
      type: http
    oAuth:
      description: OAuth2 Client Credentials flow intended for service access
      flows:
        clientCredentials:
          scopes: {}
          tokenUrl: /api/v2/token
      type: oauth2
externalDocs:
  description: Additional API Documentation
  url: https://docs.benchling.com