openapi: 3.1.0
info:
  title: Process Street Public API
  version: '1.1'
  description: |
    The Process Street API is organized around REST. Our API has predictable resource-oriented URLs,
    accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response
    codes, authentication, and verbs.

    An [MCP server](https://www.process.st/help/docs/mcp-server/) is also available for integrating with AI agents and tools.

    ## Core concepts

    **Workflow vs Workflow Run.** A **Workflow** (sometimes called a "playbook" or template) is the reusable
    definition — tasks, form fields, logic, automations. A **Workflow Run** (sometimes called a "checklist")
    is one *instance* of running a Workflow. You list available templates via `listWorkflows`; you start one
    via `createWorkflowRun` (or by scheduling); and you read or update the live state of an in-progress run
    via the Workflow Runs / Tasks / Form Field Values endpoints. The two are easy to confuse — when in doubt,
    "Workflow" is the *blueprint*, "Workflow Run" is *one execution*.

    **Pages** are similar but standalone: a Page is a content document (no tasks/form fields). A
    **Page Revision** is a versioned snapshot of its content.

    ## IDs

    All resource IDs are opaque 22-character URL-safe strings (Muids — a base64-encoded UUID). Treat them
    as opaque tokens. Do not parse them, attempt to sort by them, or assume any internal structure. You can
    compare two IDs for equality with a plain string comparison.

    ## Dates and times

    All timestamps in requests and responses are ISO-8601, UTC, with millisecond precision
    (e.g. `2024-09-15T14:32:00.000Z`). For date-only fields (typically due dates), use a calendar date
    (`2024-09-15`).

    ## Pagination

    List endpoints page through results using an opaque cursor named `_` (yes, just an underscore).
    The flow:

    1. Call the list endpoint without `_` to get the first page.
    2. Each response includes a `links[]` array. If there are more pages, you'll find an entry with
       `name: "next"` whose `href` is a fully-formed URL you can `GET` directly.
    3. Keep following `next.href` until the `next` link is absent — that's the end.

    You can also reuse the `_` value from one response by passing it as the `_` query parameter on the
    next request, but **following the `href` is simpler and forward-compatible**.

    ## Authentication

    Every request must include an API key as `X-API-KEY: <your-key>`. Generate keys from your
    organization settings in the Process Street app. Each key carries the permissions of the user that
    created it.

    ## Idempotency and retries

    - `GET` requests are safe to retry on any error.
    - `PUT` requests are idempotent — calling them twice with the same body is equivalent to calling once.
      Safe to retry on `5xx`.
    - `DELETE` is idempotent (deleting an already-deleted resource returns `404`, which is fine to ignore).
    - `POST` is generally **not** safe to blindly retry. For workflow runs, attach a `referenceId`
      on create — calling `createWorkflowRun` twice with the same `referenceId` will return the existing
      run instead of creating a duplicate.

    ## Errors

    Errors are returned as a JSON object with this shape:

    ```json
    {
      "error": "human-readable message",
      "errorCode": "NotFound",
      "requestId": "abc123…",
      "details": { "fieldPath": "what went wrong" }
    }
    ```

    **When present**, branch on `errorCode` rather than regex'ing `error` (we may rewrite the wording). Include
    `requestId` if you contact support so we can find the request in our logs.

    `errorCode` and `requestId` are populated on responses generated by the public API exception handler, which
    covers the great majority of errors. A few low-level failures (e.g. JSON parse failures caught before the
    handler runs, framework-level routing errors) may return an `ErrorInfo` without these fields. In that case,
    fall back to the HTTP status code (`400`/`401`/`403`/`404`/`409`/`422`/`429`/`5xx`) — its semantics match
    the corresponding `errorCode` value.

    ## Rate limits

    All requests are subject to rate limits. If you receive a `429` response, wait for the duration
    specified in the `Retry-After` header before retrying.
tags:
- name: Attachments
  description: |-
    An attachment is a file uploaded to a task within a workflow run.
    Use these endpoints to list, upload, and delete task-level attachments.
  externalDocs:
    url: https://www.process.st/help/docs/api-attachments/
    description: Process Street help article
- name: Comments
  description: |-
    A comment is a discussion message on a task within a workflow run.
    Use these endpoints to create, list, update, and delete comments.
  externalDocs:
    url: https://www.process.st/help/docs/api-comments/
    description: Process Street help article
- name: Data Set Incoming Webhooks
  description: |-
    An incoming webhook triggers data set row creation or updates from external systems.
    Use these endpoints to create, view, update, and delete incoming webhooks for a data set.
  externalDocs:
    url: https://www.process.st/help/docs/data-sets-incoming-webhooks/
    description: Process Street help article
- name: File Uploads
  description: |-
    A file upload is a two-step upload for large files. Create one to get an upload URL and a
    `fileUploadId`, send the file's bytes to that URL, then attach the upload to a target (form field
    value, attachment, or page/workflow widget) via that target's `/upload` endpoint. The `fileUploadId`
    is single-use — attaching it consumes it.
- name: Folders
  description: |-
    A folder organizes workflows, pages, and other templates within your organization.
    Use these endpoints to create and manage folders.
  externalDocs:
    url: https://www.process.st/help/docs/folders/
    description: Process Street help article
- name: Workflows
  description: |-
    A workflow is a reusable process template that defines the structure, tasks,
    and form fields for a repeatable process. Use these endpoints to browse and
    inspect your organization's workflows.
  externalDocs:
    url: https://www.process.st/help/docs/workflows/
    description: Process Street help article
- name: Workflow Revisions
  description: |-
    A workflow revision is a versioned snapshot of a workflow's structure.
    Use these endpoints to list, inspect, and manage revisions.
  externalDocs:
    url: https://www.process.st/help/docs/workflow-revisions/
    description: Process Street help article
- name: Workflow Runs
  description: |-
    A workflow run is an active instance of a workflow. Each run tracks its own
    progress, assignees, and form field values as it moves through the process.
    Use these endpoints to create, update, and manage workflow runs.
  externalDocs:
    url: https://www.process.st/help/docs/workflow-runs/
    description: Process Street help article
- name: Tasks
  description: |-
    A task is a step within a workflow run. Tasks can be checked off, assigned
    to users, and may contain form fields for collecting data. Use these endpoints
    to view and update tasks within a workflow run.
  externalDocs:
    url: https://www.process.st/help/docs/tasks/
    description: Process Street help article
- name: Form Fields
  description: |-
    A form field is a data-collection element defined on a workflow template.
    Use these endpoints to inspect the form fields and their available options
    on a workflow.
  externalDocs:
    url: https://www.process.st/help/docs/form-fields/
    description: Process Street help article
- name: Form Field Values
  description: |-
    A form field value is the data entered into a form field within a workflow
    run. Use these endpoints to read and update form field values for a specific
    workflow run.
  externalDocs:
    url: https://www.process.st/help/docs/form-fields/
    description: Process Street help article
- name: Data Sets
  description: |-
    A data set is a structured collection of records that can be linked to
    workflow form fields. Use these endpoints to manage data sets and their
    records.
  externalDocs:
    url: https://www.process.st/help/docs/data-sets/
    description: Process Street help article
- name: One-Off Tasks
  description: |-
    A one-off task is a standalone task that can optionally be linked to a
    workflow run. Use these endpoints to create, view, and manage one-off tasks.
  externalDocs:
    url: https://www.process.st/help/docs/one-off-tasks/
    description: Process Street help article
- name: Pages
  description: |-
    A page is a document template for sharing information. Use these endpoints
    to create and manage pages.
  externalDocs:
    url: https://www.process.st/help/docs/pages/
    description: Process Street help article
- name: Page Revisions
  description: |-
    A page revision is a versioned snapshot of a page's content.
    Use these endpoints to list, inspect, and manage revisions.
  externalDocs:
    url: https://www.process.st/help/docs/pages/
    description: Process Street help article
- name: Page Widgets
  description: |-
    A page widget is a content element (text, image, video, file, embed, cross-link, or table)
    on a page revision. Use these endpoints to create and manage widgets on draft revisions.
  externalDocs:
    url: https://www.process.st/help/docs/pages/
    description: Process Street help article
- name: Workflow Logic Rules
  description: |-
    Workflow logic rules are conditional rules that control the visibility of tasks
    and form fields within a workflow revision. Use these endpoints to create, view,
    and manage logic rules.
  externalDocs:
    url: https://www.process.st/help/docs/conditional-logic/
    description: Process Street help article
- name: Workflow Tasks
  description: |-
    A workflow task is a task template within a workflow revision.
    Use these endpoints to create, view, update, and delete task templates
    on draft revisions.

    > 💡 Notes for MCP clients:
    > - Don't prefix task names with numbers — the UI already shows a position next to each task and order can change.
    > - Consider adding content widgets with instructions, context, or guidance to make processes easier to follow.
  externalDocs:
    url: https://www.process.st/help/docs/tasks/
    description: Process Street help article
- name: Workflow Incoming Webhooks
  description: |-
    An incoming webhook triggers workflow runs from external systems.
    Use these endpoints to create, view, update, and delete incoming webhooks for a workflow.
  externalDocs:
    url: https://www.process.st/help/docs/run-via-webhook/
    description: Process Street help article
- name: Workflow Task Assignment Rules
  description: |-
    A workflow task assignment rule assigns a task template on a draft workflow
    revision to a specific user (static) or derives assignees from a source such
    as the workflow run initiator, a Members form field, or the source document's
    owner/author (dynamic). Use these endpoints to replace the full set of
    assignment rules on a task template.
  externalDocs:
    url: https://www.process.st/help/docs/task-assignments/
    description: Process Street help article
- name: Workflow Widgets
  description: |-
    A workflow widget is a form field or content element on a task within a workflow revision.
    Use these endpoints to create and manage widgets on draft revisions.
  externalDocs:
    url: https://www.process.st/help/docs/form-fields/
    description: Process Street help article
- name: Workflow Due Date Rules
  description: |-
    A workflow due date rule defines how the checklist-level due date is calculated
    for workflow runs — either relative to the run's start date or derived from a
    Date form field value. Use these endpoints to set or clear the checklist due
    date rule on a draft workflow revision.
  externalDocs:
    url: https://www.process.st/help/docs/dynamic-due-dates/
    description: Process Street help article
- name: Workflow Task Due Date Rules
  description: |-
    A task due date rule defines how an individual task's due date is calculated
    within a workflow run — relative to the run's start/due date, a form field
    value, or another task. Use these endpoints to set or clear the due date rule
    on a task within a draft workflow revision.
  externalDocs:
    url: https://www.process.st/help/docs/dynamic-due-dates/
    description: Process Street help article
- name: Scheduled Workflows
  description: |-
    A scheduled workflow is a recurring schedule that automatically creates workflow runs.
    Use these endpoints to list scheduled workflows and their recurrence rules.
  externalDocs:
    url: https://www.process.st/help/docs/scheduled-workflows/
    description: Process Street help article
- name: Users
  description: These endpoints let you list the users in your organization.
  externalDocs:
    url: https://www.process.st/help/docs/users/
    description: Process Street help article
- name: Webhooks
  description: |-
    A webhook delivers real-time notifications to your application when events
    occur in Process Street. Use these endpoints to create and manage webhook
    subscriptions.
  externalDocs:
    url: https://www.process.st/help/docs/webhooks/
    description: Process Street help article
- name: Utilities
  description: Helper endpoints for testing authentication and checking rate limits.
  externalDocs:
    url: https://www.process.st/help/category/api/
    description: Process Street help article
- name: My Work
  description: |-
    My Work is your personal task inbox — a consolidated view of all tasks and checklist items
    assigned to you across all workflows. Use these endpoints to list, search, and manage
    your assigned work items.
  externalDocs:
    url: https://www.process.st/help/docs/my-work/
    description: Process Street help article
servers:
- url: https://public-api.process.st/api/v1.1
paths:
  /attachments:
    get:
      tags:
      - Attachments
      summary: List attachments
      description: Returns task-level attachments, ordered by creation date (newest
        first). Supports filtering by workflow, workflow run, task, or creator.
      operationId: listAttachments
      parameters:
      - name: workflowId
        in: query
        description: Filter by workflow.
        required: false
        schema:
          type: string
      - name: workflowRunId
        in: query
        description: Filter by workflow run.
        required: false
        schema:
          type: string
      - name: taskId
        in: query
        description: Filter by task.
        required: false
        schema:
          type: string
      - name: createdById
        in: query
        description: Filter by creator.
        required: false
        schema:
          type: string
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiAttachmentListResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    post:
      tags:
      - Attachments
      summary: Upload an attachment
      description: |-
        Uploads a file as a task-level attachment.

        Requires `workflowRunId` and `taskId` to identify the target task.
        Accepts multipart form data (fields `workflowRunId` + `taskId` + `file`) or JSON with base64-encoded content
        (fields `workflowRunId` + `taskId` + `fileBase64`). Maximum file size: 20 MB for multipart, 10 MB for base64.
        You can also send `workflowRunId` + `taskId` + `fileUploadId` to attach a file you uploaded with
        `createFileUpload`; the `fileUploadId` is single-use.
      operationId: uploadAttachment
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UploadAttachmentRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/UploadAttachmentRequest'
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiAttachmentResponse'
        '400':
          description: Invalid value
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /attachments/{attachmentId}:
    delete:
      tags:
      - Attachments
      summary: Delete an attachment
      description: Deletes a task-level attachment.
      operationId: deleteAttachment
      parameters:
      - name: attachmentId
        in: path
        description: The attachment ID.
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /comments:
    get:
      tags:
      - Comments
      summary: List all comments
      description: Returns a paginated list of comments sorted by creation date (newest
        first). Provide either `workflowId`, or `workflowRunId` with optional `taskId`.
      operationId: listComments
      parameters:
      - name: workflowId
        in: query
        description: Filter by workflow.
        required: false
        schema:
          type: string
      - name: workflowRunId
        in: query
        description: Filter by workflow run.
        required: false
        schema:
          type: string
      - name: taskId
        in: query
        description: Filter by task.
        required: false
        schema:
          type: string
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiCommentListResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    post:
      tags:
      - Comments
      summary: Create a comment
      description: Creates a comment on a task within a workflow run.
      operationId: createComment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCommentRequest'
            examples:
              Reconciliation note:
                summary: An auditor leaving a reconciliation note on a compliance
                  task
                value:
                  workflowRunId: hE7OnEbD7jaGQ4GsMI1Abw
                  taskId: uGQRp4sVGAPs8hXrBmtOWw
                  text: Verified the bank details against ATO records. Balance matches
                    within $0.02 - marking this as reconciled.
              Escalation request:
                summary: A team member requesting escalation on a blocked procurement
                  task
                value:
                  workflowRunId: rdKf60u9UIZ2FYNrJmxF1w
                  taskId: t3ioqlEszwD9tGEa1IdEOg
                  text: '@sarah The supplier has not responded to our follow-up from
                    last week. Can you escalate this before the Friday deadline?'
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiCommentResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /comments/{commentId}:
    get:
      tags:
      - Comments
      summary: Get a comment
      description: Returns a comment by its ID.
      operationId: getComment
      parameters:
      - name: commentId
        in: path
        description: The ID of the Comment
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiCommentResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Comments
      summary: Update a comment
      description: Updates the text of an existing comment.
      operationId: updateComment
      parameters:
      - name: commentId
        in: path
        description: The ID of the Comment
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCommentRequest'
            examples:
              Fix a typo:
                summary: Correcting a factual error in a previously posted comment
                value:
                  text: 'Correction: the balance discrepancy was $0.02, not $0.20.
                    Reconciliation is still valid.'
        required: true
      responses:
        '204':
          description: ''
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    delete:
      tags:
      - Comments
      summary: Delete a comment
      description: Deletes an existing comment.
      operationId: deleteComment
      parameters:
      - name: commentId
        in: path
        description: The ID of the Comment
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /data-sets/{dataSetId}/incoming-webhooks:
    get:
      tags:
      - Data Set Incoming Webhooks
      summary: List incoming webhooks for a data set
      description: Returns all non-deleted incoming webhooks for a data set.
      operationId: listDataSetIncomingWebhooks
      parameters:
      - name: dataSetId
        in: path
        description: The ID of the Data Set
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiDataSetIncomingWebhookListResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    post:
      tags:
      - Data Set Incoming Webhooks
      summary: Create an incoming webhook for a data set
      description: |-
        Creates an incoming webhook for a data set. When the webhook URL receives a JSON payload,
        it creates or updates data set rows using the configured column mappings.

        **config.columns** maps data set column IDs to JSON path expressions in the incoming payload.
        Each key is a column ID (Muid), each value is a JSON path (e.g. `$.contact.email`).

        **config.keyColumn** (optional) specifies a column used as a unique key for upserts.
        When set, incoming payloads update existing rows matching the key value.
        When absent, every payload creates a new row.
      operationId: createDataSetIncomingWebhook
      parameters:
      - name: dataSetId
        in: path
        description: The ID of the Data Set
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDataSetIncomingWebhookRequest'
            examples:
              Create new rows:
                summary: Webhook that always creates new data set rows from incoming
                  payloads
                value:
                  name: CRM Contact Sync
                  automationApp: Make
                  config:
                    columns:
                      gcWPxsRjNNTeZqaTsBpLhg: $.contact.name
                      ocsAkBEFkTih7YpuSfJEnw: $.contact.email
                      kR5mHvDdCCqh3YpuSfJEnw: $.contact.company
              Upsert by email:
                summary: Webhook that updates existing rows matching the key column
                  value, or creates new rows
                value:
                  name: CRM Contact Upsert
                  automationApp: Make
                  config:
                    columns:
                      columnId1: $.contact.name
                      columnId2: $.contact.email
                      columnId3: $.contact.company
                    keyColumn: ocsAkBEFkTih7YpuSfJEnw
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiDataSetIncomingWebhookResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /data-sets/{dataSetId}/incoming-webhooks/{webhookId}:
    get:
      tags:
      - Data Set Incoming Webhooks
      summary: Get an incoming webhook for a data set
      description: Returns an incoming webhook by its ID for a data set.
      operationId: getDataSetIncomingWebhook
      parameters:
      - name: dataSetId
        in: path
        description: The ID of the Data Set
        required: true
        schema:
          type: string
      - name: webhookId
        in: path
        description: The ID of the Webhook
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiDataSetIncomingWebhookResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Data Set Incoming Webhooks
      summary: Update an incoming webhook for a data set
      description: |-
        Updates an incoming webhook for a data set. PUT semantics: all fields must be provided. Returns the updated webhook.

        See the create endpoint for details on `config.columns` and `config.keyColumn`.
      operationId: updateDataSetIncomingWebhook
      parameters:
      - name: dataSetId
        in: path
        description: The ID of the Data Set
        required: true
        schema:
          type: string
      - name: webhookId
        in: path
        description: The ID of the Webhook
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDataSetIncomingWebhookRequest'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiDataSetIncomingWebhookResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    delete:
      tags:
      - Data Set Incoming Webhooks
      summary: Delete an incoming webhook for a data set
      description: Soft-deletes an incoming webhook for a data set. Subsequent GET
        requests will return 404.
      operationId: deleteDataSetIncomingWebhook
      parameters:
      - name: dataSetId
        in: path
        description: The ID of the Data Set
        required: true
        schema:
          type: string
      - name: webhookId
        in: path
        description: The ID of the Webhook
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /file-uploads:
    post:
      tags:
      - File Uploads
      summary: Create a file upload
      description: Returns a single-use upload URL and a `fileUploadId`. Upload the
        file's bytes to `uploadUrl` with an HTTP `PUT` (sending the same `Content-Type`
        you declared), then attach the upload to a target by passing the `fileUploadId`
        to one of the `/upload` endpoints. Lets you upload large files without sending
        them through the API.
      operationId: createFileUpload
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFileUploadRequest'
            examples:
              PDF document:
                summary: Uploading a quarterly invoice to later attach to a form field
                  value
                value:
                  filename: invoice-2026-Q1.pdf
                  contentType: application/pdf
                  sizeBytes: 248173
              Image file:
                summary: Uploading a photo to later attach as a task attachment
                value:
                  filename: site-photo.jpg
                  contentType: image/jpeg
                  sizeBytes: 1048576
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiFileUploadResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /folders:
    get:
      tags:
      - Folders
      summary: List all folders
      description: Returns a paginated list of folders in your organization that you
        have permission to read. Excludes system folders (Home and Private).
      operationId: listFolders
      parameters:
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiFolderListResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    post:
      tags:
      - Folders
      summary: Create a folder
      description: Creates a folder in your organization. If `parentFolderId` is omitted,
        the folder is created directly under the organization's Home folder.
      operationId: createFolder
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFolderRequest'
            examples:
              Nested folder:
                summary: A compliance team creating a quarterly folder under an existing
                  parent folder.
                value:
                  name: Q4 Compliance Reviews
                  parentFolderId: p9FR1c08vnEUrmT29adHTg
              Top-level folder:
                summary: A new folder created directly under the organization's Home
                  folder (no parent provided).
                value:
                  name: Onboarding Workflows
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiFolderResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /folders/{folderId}:
    put:
      tags:
      - Folders
      summary: Update a folder
      description: Updates the name of an existing folder.
      operationId: updateFolder
      parameters:
      - name: folderId
        in: path
        description: The ID of the Folder
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateFolderRequest'
            examples:
              Rename a folder:
                summary: Renaming a folder to better reflect its contents.
                value:
                  name: Q4 Compliance Reviews (Renamed)
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiFolderResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    delete:
      tags:
      - Folders
      summary: Delete a folder
      description: Deletes an empty folder. The folder must contain no subfolders
        or templates.
      operationId: deleteFolder
      parameters:
      - name: folderId
        in: path
        description: The ID of the Folder
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /folders/{folderId}/permissions:
    get:
      tags:
      - Folders
      summary: Get permissions for a folder
      description: Returns the complete list of permissions on a folder, one entry
        per user or group. `accessLevel` is `Custom` when the atom combination does
        not match a predefined level. Groups appear with synthetic `group-<id>@process.st`
        emails on the embedded user.
      operationId: getFolderPermissions
      parameters:
      - name: folderId
        in: path
        description: The ID of the Folder
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiFolderPermissionListResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Folders
      summary: Set permissions for a folder
      description: 'Replaces the full set of permissions for a folder. PUT semantics:
        send the complete list to replace all existing permissions. Send an empty
        array to remove all user-addressable permissions. Accepts both user emails
        and group emails (groups appear in other endpoints with synthetic `group-<id>@process.st`
        emails). Note: the AllFreeMembers system group is managed automatically by
        the AllMembers system group and cannot be modified directly. Returns the resulting
        permissions.'
      operationId: updateFolderPermissions
      parameters:
      - name: folderId
        in: path
        description: The ID of the Folder
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/FolderPermissionEntry'
            examples:
              Replace all permissions:
                summary: Grant Jane edit access and John view access
                value:
                - email: jane@example.com
                  accessLevel: Edit
                - email: john@example.com
                  accessLevel: View
              Clear all user permissions:
                summary: Remove all user-addressable permissions (system-managed permits
                  are preserved)
                value: []
        required: false
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiFolderPermissionListResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows:
    get:
      tags:
      - Workflows
      summary: List all workflows
      description: |-
        Returns a list of active workflows.
        The workflows are returned 20 at a time, sorted by name.
        You must use the links section to get the next 20 results.
      operationId: listWorkflows
      parameters:
      - name: name
        in: query
        description: The partial name of the Workflow to search for (will match any
          part of the name in a case-insensitive manner)
        required: false
        schema:
          type: string
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListWorkflowsResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    post:
      tags:
      - Workflows
      summary: Create a workflow
      description: Creates a new workflow with the specified properties. Only name
        and folderId are required.
      operationId: createWorkflow
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWorkflowRequest'
            examples:
              Create a workflow:
                summary: Creates a new workflow with all properties specified
                value:
                  name: Employee Onboarding
                  description: Standard onboarding workflow for new hires
                  folderId: py0JirxP0cckzbr_o85GiQ
                  shareLevel: View
                  runLinkShareLevel: Organization
                  allowComments: true
                  sharedRunsByDefault: false
                  referenceId: ONB
              Minimal workflow:
                summary: Creates a workflow with only the required fields; optional
                  fields use defaults
                value:
                  name: Vendor Approval
                  folderId: tmnRDcrd5bfrGoyyRMxJ-Q
                  shareLevel: None
                  runLinkShareLevel: Organization
                  allowComments: true
                  sharedRunsByDefault: false
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWorkflowResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}:
    get:
      tags:
      - Workflows
      summary: Get a workflow
      description: Returns a workflow by its ID.
      operationId: getWorkflow
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWorkflowResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Workflows
      summary: Update a workflow
      description: Updates all properties of a workflow. All fields are required (PUT
        semantics). Returns the updated workflow.
      operationId: updateWorkflow
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWorkflowRequest'
            examples:
              Update all fields:
                summary: Sets all properties of a workflow including description and
                  reference ID
                value:
                  name: Employee Onboarding
                  description: Standard onboarding workflow for new hires
                  folderId: mzb84YyCjEGgV8zCc2NCEQ
                  shareLevel: View
                  runLinkShareLevel: Organization
                  allowComments: true
                  sharedRunsByDefault: false
                  referenceId: ONB
              Clear nullable fields:
                summary: Sets all properties and clears the description and reference
                  ID
                value:
                  name: Employee Onboarding
                  folderId: qexPFtmcVqAg2P0EH-VDdw
                  shareLevel: View
                  runLinkShareLevel: Organization
                  allowComments: true
                  sharedRunsByDefault: false
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWorkflowResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    delete:
      tags:
      - Workflows
      summary: Delete a workflow
      description: Soft deletes a workflow by its ID.
      operationId: deleteWorkflow
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/tasks:
    get:
      tags:
      - Workflows
      summary: List all tasks in a workflow
      description: |-
        Returns a list of tasks for a workflow.
        The task templates are returned 20 at a time, sorted in order.
        You must use the links section to get the next 20 results.
      operationId: listWorkflowTasks
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListTaskTemplatesResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/duplicate:
    post:
      tags:
      - Workflows
      summary: Duplicate a workflow
      description: Creates a new workflow as a copy of the source workflow at a given
        revision. All body fields are optional — send `{}` to use defaults. `revisionId`
        defaults to the source workflow's latest published revision; `name` defaults
        to `"Copy of <original>"`; `folderId` defaults to the source workflow's folder.
      operationId: duplicateWorkflow
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DuplicateWorkflowRequest'
            examples:
              Custom name and destination:
                summary: Duplicates the source workflow's latest published revision
                  into the given folder with a custom name
                value:
                  name: Compliance review (template)
                  folderId: sutfywnflCeXFgS5GENKzw
              Defaults:
                summary: Duplicates the source workflow's latest published revision
                  into the source's folder, named "Copy of <original>"
                value: {}
              Specific revision:
                summary: Duplicates a specific revision of the source workflow
                value:
                  revisionId: jGczdWEGZc5XrQCaumRPXQ
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWorkflowResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/permissions:
    get:
      tags:
      - Workflows
      summary: Get permissions for a workflow
      description: Returns the complete list of permissions on a workflow, one entry
        per user or group. `accessLevel` is `Custom` when the atom combination does
        not match a predefined level. Groups appear with synthetic `group-<id>@process.st`
        emails.
      operationId: getWorkflowPermissions
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWorkflowPermissionListResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Workflows
      summary: Set permissions for a workflow
      description: 'Replaces the full set of permissions for a workflow. PUT semantics:
        send the complete list to replace all existing permissions. Send an empty
        array to remove all user-addressable permissions. Accepts both user emails
        and group emails (groups appear in other endpoints with synthetic `group-<id>@process.st`
        emails). Note: the AllFreeMembers system group is managed automatically by
        the AllMembers system group and cannot be modified directly. Returns the resulting
        permissions.'
      operationId: updateWorkflowPermissions
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/WorkflowPermissionEntry'
            examples:
              Replace all permissions:
                summary: Grant Jane edit access and John run access
                value:
                - email: jane@example.com
                  accessLevel: Edit
                - email: john@example.com
                  accessLevel: Run
              Clear all user permissions:
                summary: Remove all user-addressable permissions (system-managed permits
                  are preserved)
                value: []
        required: false
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWorkflowPermissionListResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/revisions:
    get:
      tags:
      - Workflow Revisions
      summary: List workflow revisions
      description: Returns a paginated list of revisions for a workflow, optionally
        filtered by status.
      operationId: listWorkflowRevisions
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: status
        in: query
        description: 'Filter by status: Draft, Finished, or Revised.'
        required: false
        schema:
          type: string
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWorkflowRevisionListResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    post:
      tags:
      - Workflow Revisions
      summary: Create a workflow revision
      description: Creates a new draft revision for a workflow from its current finished
        revision. Only one draft can exist at a time.
      operationId: createWorkflowRevision
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWorkflowRevisionResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/revisions/{revisionId}:
    get:
      tags:
      - Workflow Revisions
      summary: Get a workflow revision
      description: Returns a workflow revision by its ID.
      operationId: getWorkflowRevision
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWorkflowRevisionResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Workflow Revisions
      summary: Update a workflow revision
      description: |-
        Updates a draft workflow revision. Only revisions in Draft status can be updated. PUT semantics: send all fields; optional fields omitted or set to null are cleared.
        The checklist name template can include merge tag variables (e.g. `{{workflow.name}}`).
        Use the listWorkflowRevisionVariables endpoint to discover available variables.
        Returns the updated revision.
      operationId: updateWorkflowRevision
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWorkflowRevisionRequest'
            examples:
              Update all fields:
                summary: Sets the change type, explanation, and default run name of
                  a draft revision
                value:
                  changeType: Material
                  changeExplanation: Added new approval step
                  defaultChecklistName: Onboarding - {{date}}
              Clear nullable fields:
                summary: Sets the change type and clears the explanation and default
                  run name
                value:
                  changeType: NonMaterial
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWorkflowRevisionResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    delete:
      tags:
      - Workflow Revisions
      summary: Delete a workflow revision
      description: Deletes a draft workflow revision. Only revisions in Draft status
        can be deleted.
      operationId: deleteWorkflowRevision
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/revisions/{revisionId}/publish:
    post:
      tags:
      - Workflow Revisions
      summary: Publish a workflow revision
      description: Publishes a draft workflow revision, transitioning it to Finished
        status. The previously finished revision becomes Revised.
      operationId: publishWorkflowRevision
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWorkflowRevisionResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/revisions/{revisionId}/variables:
    get:
      tags:
      - Workflow Revisions
      summary: List workflow revision variables
      description: Returns merge tag variables available in a workflow revision, filtered
        by type. Variables are returned in alphabetical order by label.
      operationId: listWorkflowRevisionVariables
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: type
        in: query
        description: 'Filter by variable type: Standard, FormField, DataSet, EmailTrigger,
          or DocumentReview.'
        required: true
        schema:
          $ref: '#/components/schemas/VariableType'
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWorkflowRevisionVariableListResponse'
        '400':
          description: 'Invalid value for: query parameter type'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflow-runs/{workflowRunId}/assignees/{email}:
    post:
      tags:
      - Workflow Runs
      summary: Assign a user to a workflow run
      description: Assigns a user to a workflow run. If the user does not exist in
        your organization they will be invited as a Guest (Internal).
      operationId: assignWorkflowRun
      parameters:
      - name: workflowRunId
        in: path
        description: The ID of the Workflow Run
        required: true
        schema:
          type: string
      - name: email
        in: path
        description: Email
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    delete:
      tags:
      - Workflow Runs
      summary: Unassign a user from a workflow run
      description: Unassigns a user from a workflow run.
      operationId: unassignWorkflowRun
      parameters:
      - name: workflowRunId
        in: path
        description: The ID of the Workflow Run
        required: true
        schema:
          type: string
      - name: email
        in: path
        description: Email
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflow-runs/{workflowRunId}/assignees:
    get:
      tags:
      - Workflow Runs
      summary: List all assignees in a workflow run
      description: |2

        Returns a list of workflow run assignees for the given workflow run.
        The results are returned 20 at a time.
        You must use the links section to get the next 20 results.
      operationId: listWorkflowRunAssignees
      parameters:
      - name: workflowRunId
        in: path
        description: The ID of the Workflow Run
        required: true
        schema:
          type: string
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListChecklistAssigneesResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflow-runs:
    get:
      tags:
      - Workflow Runs
      summary: Search workflow runs
      description: Returns the latest 200 workflow runs of a workflow, showing the
        most recently updated first.
      operationId: searchWorkflowRuns
      parameters:
      - name: workflowId
        in: query
        description: The ID of the Workflow (can be copied from the Workflow URL in
          the web app)
        required: false
        schema:
          type: string
      - name: name
        in: query
        description: The partial name of the Workflow Run to search for (will match
          any part of the name in a case-insensitive manner)
        required: false
        schema:
          type: string
      - name: status
        in: query
        description: |2

          The status (or statuses) to filter by (Active, Completed or Archived).
          If no status is provided, it will default to Active.
          Multiple statuses can be provided as a comma-separated list.
        required: false
        schema:
          type: string
      - name: fields
        in: query
        description: |2

          The partial values of form field values to search for.
          It will match any part of the value in a case-insensitive manner.
          If there are multiple form field values, then Workflow Runs that match any of them will be returned.<br>
          <br>
          Example (before being URL-encoded):
          <code>?fields[lD7FTF9R63xNCLn8w_xMdw]=value_1&fields[lD7FTF9R63xNCLn8w_xMab]=value_2</code>
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListWorkflowRunsResponse'
        '400':
          description: 'Invalid value for: query parameters'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    post:
      tags:
      - Workflow Runs
      summary: Create a workflow run
      description: Creates a new workflow run for the specified workflow.
      operationId: createWorkflowRun
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWorkflowRunRequest'
            examples:
              Without a due date:
                value:
                  workflowId: t6yPNqjU0hZAi5z8Gn9Jew
                  name: Project Kickoff
              With a due date:
                value:
                  workflowId: u0VF9n1WjIv2897rUoFAmA
                  name: Q1 Inventory Audit
                  dueDate: '2026-04-01T08:12:52.727Z'
              Shared:
                value:
                  workflowId: joGOGkymT85atHQGFwxB-g
                  name: Q1 Inventory Audit
                  shared: true
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateWorkflowRunResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflow-runs/{workflowRunId}:
    get:
      tags:
      - Workflow Runs
      summary: Get a workflow run
      description: Returns a workflow run by its ID.
      operationId: getWorkflowRun
      parameters:
      - name: workflowRunId
        in: path
        description: The ID of the Workflow Run
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetWorkflowRunResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Workflow Runs
      summary: Update a workflow run
      description: |-
        A PUT request replaces all values, so all fields must be supplied in each request.
        To remove a due date, you may send a null value or omit the field. See the examples for more.
      operationId: updateWorkflowRun
      parameters:
      - name: workflowRunId
        in: path
        description: The ID of the Workflow Run
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWorkflowRunRequest'
            examples:
              Update name only:
                value:
                  name: New Name
                  status: Active
                  shared: false
                  dueDate: '2026-07-03T00:00:00.000Z'
              Removing the due date:
                value:
                  name: Existing Name
                  status: Active
                  shared: false
              Update status only:
                value:
                  name: Existing Name
                  status: Completed
                  shared: false
                  dueDate: '2026-07-03T00:00:00.000Z'
              Update shared status only:
                value:
                  name: Existing Name
                  status: Active
                  shared: true
                  dueDate: '2026-07-03T00:00:00.000Z'
              Update all fields:
                value:
                  name: New Name
                  status: Active
                  shared: false
                  dueDate: '2026-07-17T00:00:00.000Z'
        required: true
      responses:
        '204':
          description: ''
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    delete:
      tags:
      - Workflow Runs
      summary: Delete a workflow run
      description: Deletes a workflow run by its ID.
      operationId: deleteWorkflowRun
      parameters:
      - name: workflowRunId
        in: path
        description: The ID of the Workflow Run
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflow-runs/list:
    get:
      tags:
      - Workflow Runs
      summary: List all workflow runs
      description: Returns a paginated list of workflow runs accessible to the calling
        user, sorted by creation date (newest first). Soft-deleted runs are excluded;
        only runs of workflow-type templates are returned (runs of page-type templates
        are out of scope).
      operationId: listWorkflowRuns
      parameters:
      - name: workflowId
        in: query
        description: Filter results to runs of a specific workflow. If the workflow
          does not exist or is inaccessible, the response is an empty page rather
          than an error.
        required: false
        schema:
          type: string
      - name: status
        in: query
        description: |
          Filter results by workflow run status.

          - `Active` — the run is in progress.
          - `Completed` — all tasks were completed and the run was finalised.
          - `Archived` — the run was archived from the active list.

          The internal `Deleted` status is hidden from the public API surface and rejected here.
          Omit this filter to include all non-deleted runs.
        required: false
        schema:
          type: string
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWorkflowRunListResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflow-runs/{workflowRunId}/undelete:
    post:
      tags:
      - Workflow Runs
      summary: Undelete a workflow run
      description: Restores a previously deleted workflow run by its ID.
      operationId: undeleteWorkflowRun
      parameters:
      - name: workflowRunId
        in: path
        description: The ID of the Workflow Run
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflow-runs/{workflowRunId}/approvals:
    get:
      tags:
      - Tasks
      summary: List all approvals in a workflow run
      description: |-
        Returns a list of approved or rejected approvals for a workflow run. It will not return pending approvals
        that have not yet been acted upon.
        The approvals are returned 20 at a time, sorted in task order.
        You must use the links section to get the next 20 results.
      operationId: listApprovals
      parameters:
      - name: workflowRunId
        in: path
        description: The ID of the Workflow Run
        required: true
        schema:
          type: string
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListApprovalsResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Tasks
      summary: Approve or reject a task
      description: |-
        The <code>approvalTaskId</code> is the ID of the approval task and the <code>subjectTaskId</code> is the
        ID of the task being approved or rejected. If you don't include a subject task, all pending subject tasks
        of the approval task will be approved or rejected.<br>
        <br>
        A PUT request replaces all values, so all fields must be supplied in each request.
        To not have a comment, you may send a null value or omit the field. See the examples for more.
      operationId: upsertApproval
      parameters:
      - name: workflowRunId
        in: path
        description: The ID of the Workflow Run
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpsertApprovalRequest'
            examples:
              Approve subject task:
                value:
                  approvalTaskId: sHSl9xmF2r4R9E8NK_NFXA
                  subjectTaskId: kOqvQEw48qFEbhCTkc5KDA
                  status: Approved
              Approve all subject tasks with comment:
                value:
                  approvalTaskId: vepLtJPEWYF7R3ipk4tD0A
                  status: Approved
                  comment: Looks good to me!
              Reject subject task with comment:
                value:
                  approvalTaskId: tDMj9HKzHn_R8FDJoTtLbw
                  subjectTaskId: gMZVA2zCPAWpxj4zlQ1IXQ
                  status: Rejected
                  comment: The customer name is misspelled.
        required: true
      responses:
        '204':
          description: ''
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflow-runs/{workflowRunId}/tasks/{taskId}/assignees/{email}:
    put:
      tags:
      - Tasks
      summary: Assign a user to a task
      description: Assigns a user by email to a task in a workflow run.
      operationId: assignTask
      parameters:
      - name: workflowRunId
        in: path
        description: The ID of the Workflow Run
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      - name: email
        in: path
        description: Email
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    delete:
      tags:
      - Tasks
      summary: Unassign a user from a task
      description: Unassigns a user by email from a task in a workflow run.
      operationId: unassignTask
      parameters:
      - name: workflowRunId
        in: path
        description: The ID of the Workflow Run
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      - name: email
        in: path
        description: Email
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflow-runs/{workflowRunId}/tasks/{taskId}:
    get:
      tags:
      - Tasks
      summary: Get a task
      description: Returns a task in a workflow run by its ID.
      operationId: getTask
      parameters:
      - name: workflowRunId
        in: path
        description: The ID of the Workflow Run
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTaskResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Tasks
      summary: Update a task
      description: |-
        A PUT request replaces all values, so all fields must be supplied in each request.
        To remove a due date, you may send a null value or omit the field. See the examples for more.
      operationId: updateTask
      parameters:
      - name: workflowRunId
        in: path
        description: The ID of the Workflow Run
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTaskRequest'
            examples:
              Complete task:
                value:
                  status: Completed
              Update due date:
                value:
                  status: NotCompleted
                  dueDate: '2026-07-03T00:00:00.000Z'
              Clear due date:
                value:
                  status: NotCompleted
        required: true
      responses:
        '204':
          description: ''
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /tasks:
    get:
      tags:
      - Tasks
      summary: List all tasks
      description: |2

        Returns a list of tasks for the given query.
        The tasks are returned 20 at a time, sorted in order of due date.
        You must use the links section to get the next 20 results.
      operationId: listTasks
      parameters:
      - name: assigneeEmail
        in: query
        description: The email of the assigned user to filter the tasks by (will match
          in a case-insensitive manner)
        required: true
        schema:
          type: string
      - name: workflowId
        in: query
        description: The ID of the workflow to filter by.
        required: false
        schema:
          type: string
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListTasksResponse'
        '400':
          description: 'Invalid value for: query parameter assigneeEmail'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflow-runs/{workflowRunId}/tasks:
    get:
      tags:
      - Tasks
      summary: List all tasks in a workflow run
      description: |-
        Returns a list of tasks for a workflow run.
        The tasks are returned 20 at a time, sorted in order.
        You must use the links section to get the next 20 results.
      operationId: listTasksByWorkflowRun
      parameters:
      - name: workflowRunId
        in: path
        description: The ID of the Workflow Run
        required: true
        schema:
          type: string
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListTasksResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflow-runs/{workflowRunId}/tasks/{taskId}/assignees:
    get:
      tags:
      - Tasks
      summary: List all assignees in a task
      description: Returns all the assignees of a given task of a workflow run.
      operationId: listTaskAssignees
      parameters:
      - name: workflowRunId
        in: path
        description: The ID of the Workflow Run
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListTaskAssigneesResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/form-fields:
    get:
      tags:
      - Form Fields
      summary: List all form fields in a workflow
      description: |-
        Gets a page of form fields for a workflow.
        Form fields are paged, meaning the links section in the
        response must be used to get the next/previous batch of form fields.
      operationId: listFormFields
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListFormFieldsResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/form-fields/{formFieldId}/options:
    get:
      tags:
      - Form Fields
      summary: List all options for a form field
      description: |-
        Gets a page of form field options.<br>
        Options are paged, meaning the links section in the response must be used to get the next/previous
        batch of form field options.
        If the field is linked to a Data Set Saved View, then the Row IDs are
        also listed in the response.
      operationId: listFormFieldOptions
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: formFieldId
        in: path
        description: Form Field ID
        required: true
        schema:
          type: string
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListFormFieldOptionsResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflow-runs/{workflowRunId}/tasks/{taskId}/form-fields:
    get:
      tags:
      - Form Field Values
      summary: List all form field values in a task
      description: |-
        Gets a page of form field values for a task of a workflow run.
        Form field values are paged, meaning the links section in the
        response must be used to get the next/previous batch of form field values.
      operationId: listFormFieldValuesByTask
      parameters:
      - name: workflowRunId
        in: path
        description: The ID of the Workflow Run
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListFormFieldValuesResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflow-runs/{workflowRunId}/form-fields:
    get:
      tags:
      - Form Field Values
      summary: List all form field values
      description: |-
        Gets a page of form field values for a workflow run.
        Form field values are paged, meaning the links section in the
        response must be used to get the next/previous batch of form field values.
      operationId: listFormFieldValues
      parameters:
      - name: workflowRunId
        in: path
        description: The ID of the Workflow Run
        required: true
        schema:
          type: string
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListFormFieldValuesResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    post:
      tags:
      - Form Field Values
      summary: Batch update form field values
      description: |-
        Updates multiple form field values (i.e the values for the form fields present in a workflow run).
        A value may consist of a simple string, may accept multiple values as an array, or it may accept multiple
        properties.<br>
        <br>
        See the examples for a complete reference on setting form field values.<br>
        <br>
        Note: File Upload form fields cannot be updated using this endpoint. Use the upload endpoint instead.
      operationId: batchUpdateFormFieldValues
      parameters:
      - name: workflowRunId
        in: path
        description: The ID of the Workflow Run
        required: true
        schema:
          type: string
      requestBody:
        description: |-
          List of form fields to set a new value for within a workflow run.
          Form field IDs included in the request will have their values created or updated.
          Form field IDs not included in the request will be left unchanged.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateMultipleFormFieldValuesRequest'
            examples:
              updatingSimpleFields:
                summary: 'Updating a simple field: Short Text, Long Text, Email, Website,
                  Members (User) and Dropdown fields'
                description: |-
                  Requires specifying only a 'value' key with a String associated.
                                  This structure must be used for the following fields: Short Text, Long Text, Email, Website, Members (User) and Dropdown.
                value:
                  fields:
                  - id: hBDKLYBwJRuAm7ZkJyFFNg
                    value: It's over Anakin, I have the high ground
              updatingMultiValueFields:
                summary: 'Updating a field that accepts multiple values: Members,
                  Multi Select (Subtasks) and Multi Choice fields'
                description: |-
                  Requires specifying only a 'values' key with a list of Strings associated.
                                    This structure must be used for the following fields: Multi Select and Multi Choice.
                value:
                  fields:
                  - id: l_jqLpiNPdIuwgysO2NF-Q
                    values:
                    - It's over Anakin
                    - I have the high ground
              dataSetConnectedDropdown:
                summary: Updating a Data Set Linked Dropdown field
                description: Requires specifying a 'value' or a 'dataSetRowId' key
                  with a Muid associated.
                value:
                  fields:
                  - id: qjjx0PoQG5dobubGlKJJlw
                    value: iXpeDhPx3deoy8qjxWBJIA
              updatingDateFields:
                summary: Updating the Date field
                description: |-
                  Requires specifying only a 'value' key, but may optionally add a 'timeHidden' key.
                                    This structure must be used for the Date field.
                value:
                  fields:
                  - id: hnY9vt5bLnvSlPFWAz9Ihw
                    value: '2026-07-03T08:12:50.718Z'
                    timeHidden: true
              updatingTableFields:
                summary: Updating the Table field
                description: Requires specifying only a 'value' key with a CSV associated.
                value:
                  fields:
                  - id: irKKFapZsucDl0cBUUdB9w
                    value: |-
                      Alice,Bob
                      Jon,Natalie
              updatingMultipleFields:
                summary: Updating multiple fields at the same time
                description: Updating multiple fields at the same time
                value:
                  fields:
                  - id: pFyvXe0oPEfVn8j485ZILQ
                    value: '2026-07-03T08:12:50.715Z'
                    timeHidden: true
                  - id: otzW_NROQNHp1MvlJcxDuA
                    values:
                    - It's over Anakin
                    - I have the high ground
                  - id: pcit4BGUM2zad7KKAxNIRQ
                    value: https://www.process.st
                  - id: gA7g17SUF7ioogr0yLdJNQ
                    value: |-
                      Alice,Bob
                      Jon,Natalie
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateMultipleFormFieldValuesResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflow-runs/{workflowRunId}/form-fields/{formFieldId}/upload:
    post:
      tags:
      - Form Field Values
      summary: Upload a form field value
      description: |-
        Uploads one or more files to a File or MultiFile form field in a workflow run.

        Note:<br>
        This endpoint supports both single-file and multi-file form fields.<br>
        File fields can accept exactly one file and it will replace the current file.<br>
        MultiFile fields can accept multiple files per request, up to 10 files total, subject to the field's configuration.
        These files will be appended to the field.<br>
        The maximum file size supported by this endpoint is 20 MB per file for multipart uploads and 10 MB per file for Base64 uploads.

        Alternatively, send JSON `{ "fileUploadId": "..." }` to attach a file you uploaded with the `createFileUpload` endpoint. The `fileUploadId` is single-use.
      operationId: uploadFormFieldValue
      parameters:
      - name: workflowRunId
        in: path
        description: The ID of the Workflow Run
        required: true
        schema:
          type: string
      - name: formFieldId
        in: path
        description: Form Field ID
        required: true
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UploadFormFieldValueRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/UploadFormFieldValueRequest'
        required: true
      responses:
        '204':
          description: ''
        '400':
          description: Invalid value
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    delete:
      tags:
      - Form Field Values
      summary: Delete all files from a form field
      description: Deletes all files from a File or MultiFile form field in a workflow
        run.
      operationId: deleteFormFieldAllFiles
      parameters:
      - name: workflowRunId
        in: path
        description: The ID of the Workflow Run
        required: true
        schema:
          type: string
      - name: formFieldId
        in: path
        description: Form Field ID
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflow-runs/{workflowRunId}/form-fields/{formFieldId}/upload/{fileId}:
    delete:
      tags:
      - Form Field Values
      summary: Delete a specific file from a form field
      description: |-
        Deletes a specific file from a File or MultiFile form field in a workflow run.
        For File fields, the `fileId` parameter is ignored since there is only one file.
        For MultiFile fields, the specified file is removed. If it was the last file, the field value is deleted entirely.
      operationId: deleteFormFieldFileById
      parameters:
      - name: workflowRunId
        in: path
        description: The ID of the Workflow Run
        required: true
        schema:
          type: string
      - name: formFieldId
        in: path
        description: Form Field ID
        required: true
        schema:
          type: string
      - name: fileId
        in: path
        description: File ID
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /data-sets:
    get:
      tags:
      - Data Sets
      summary: List all data sets
      description: |2

        Returns a list of data sets.
        The results are returned 20 at a time, sorted in order of creation date.
        You must use the links section to get the next 20 results.
      operationId: listDataSets
      parameters:
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListDataSetsResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    post:
      tags:
      - Data Sets
      summary: Create a data set
      description: Creates a new data set with the given name and field definitions.
      operationId: createDataSet
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDataSetRequest'
            examples:
              Create a data set:
                summary: Creates a data set with three columns
                value:
                  name: Customers
                  fields:
                  - name: Company
                    fieldType: Text
                  - name: Revenue
                    fieldType: Number
                  - name: Region
                    fieldType: Text
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiDataSetResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /data-sets/{dataSetId}:
    get:
      tags:
      - Data Sets
      summary: Get a data set
      description: Returns a data set by its ID, including its field definitions.
      operationId: getDataSet
      parameters:
      - name: dataSetId
        in: path
        description: The ID of the Data Set
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiDataSetResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Data Sets
      summary: Update a data set
      description: 'Updates a data set''s name and field definitions. Uses PUT semantics:
        the full field list is replaced. Returns the updated data set.'
      operationId: updateDataSet
      parameters:
      - name: dataSetId
        in: path
        description: The ID of the Data Set
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDataSetRequest'
            examples:
              Update a data set:
                summary: Rename a field and add a new one
                value:
                  name: Customers
                  fields:
                  - id: hVtUdH83aL7TDyCCH9VJgA
                    name: Company Name
                    fieldType: Text
                  - id: rUtK-_XJz-_0oKKS9H5IyA
                    name: Revenue
                    fieldType: Number
                  - name: Region
                    fieldType: Text
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiDataSetResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    delete:
      tags:
      - Data Sets
      summary: Delete a data set
      description: Deletes a data set and all of its records permanently.
      operationId: deleteDataSet
      parameters:
      - name: dataSetId
        in: path
        description: The ID of the Data Set
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /data-sets/{dataSetId}/records/import:
    post:
      tags:
      - Data Sets
      summary: Import data set records
      description: |-
        Imports data set records from an external source via CSV upload.

        The data set must already exist and must not contain any duplicate column names.
      operationId: importDataSetRecords
      parameters:
      - name: dataSetId
        in: path
        description: The ID of the Data Set
        required: true
        schema:
          type: string
      requestBody:
        description: |-
          `strategy`: Defines how data is imported into the system. Possible values are:
           - `Append`: Always append new rows, never touch existing ones
           - `Upsert`: Insert new rows or update existing ones based on matching keys, never delete existing rows.
           - `Sync`: Same as `Upsert`, but also delete any existing rows that are not present in the import file.

          `file`: The CSV file to import. The first row must contain the column names. Must not contain duplicate column names.
          The maximum size for the file is 20 MB.

          `key`: The column name to use as the unique identifier for
          the `Upsert` and `Sync` strategies. This field is required when using
          the `Upsert` or `Sync` strategies, and must not be provided when using
          the `Append` strategy.
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ImportDataSetRowsRequest'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImportDataSetRowsResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /data-sets/{dataSetId}/records:
    get:
      tags:
      - Data Sets
      summary: List all data set records
      description: |2

        Returns a list of data set records for the given query.
        The results are returned 20 at a time, sorted in order of data set record ID.
        You must use the links section to get the next 20 results.
      operationId: listDataSetRecords
      parameters:
      - name: dataSetId
        in: path
        description: The ID of the Data Set
        required: true
        schema:
          type: string
      - name: columns
        in: query
        description: |2

          The values of columns to search for.
          It will match them exactly in a case-insensitive manner.
          If there are multiple columns, then the records that match all of them will be returned.

          Example (before being URL-encoded):
          `?columns[lD7FTF9R63xNCLn8w_xMdw]=value_1&columns[iJozi9Lbu_vC2igAV1NLWQ]=value_2`
        required: false
        style: deepObject
        explode: true
        schema:
          type: object
          additionalProperties:
            type: string
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListDataSetRowsResponse'
        '400':
          description: 'Invalid value for: query parameters'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    post:
      tags:
      - Data Sets
      summary: Create a data set record
      description: Creates a new record in the specified data set.
      operationId: createDataSetRecord
      parameters:
      - name: dataSetId
        in: path
        description: The ID of the Data Set
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDataSetRowRequest'
            examples:
              Create Data Set row:
                value:
                  cells:
                  - fieldId: vPd1dMpHihhj--xMqOdIKg
                    value: cell 1
                  - fieldId: uMgCNz_3HscGe32ivPBAOg
                    value: cell 2
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateDataSetRowResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /data-sets/{dataSetId}/records/{dataSetRecordId}:
    get:
      tags:
      - Data Sets
      summary: Get a data set record
      description: Returns a data set record by its ID.
      operationId: getDataSetRecord
      parameters:
      - name: dataSetId
        in: path
        description: The ID of the Data Set
        required: true
        schema:
          type: string
      - name: dataSetRecordId
        in: path
        description: The ID of the Data Set Record
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimplifiedRow'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Data Sets
      summary: Update a data set record
      description: Updates an existing record in a data set.
      operationId: updateDataSetRecord
      parameters:
      - name: dataSetId
        in: path
        description: The ID of the Data Set
        required: true
        schema:
          type: string
      - name: dataSetRecordId
        in: path
        description: The ID of the Data Set Record
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDataSetRowRequest'
            examples:
              Update Data Set row:
                value:
                  cells:
                  - fieldId: uaBcyij565HMSgzSDz9CjQ
                    value: cell 1
                  - fieldId: uNHQN3nY4SOaIsV1fYBPwQ
                    value: cell 2
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimplifiedRow'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    delete:
      tags:
      - Data Sets
      summary: Delete a data set record
      description: Deletes a data set record by its ID.
      operationId: deleteDataSetRecord
      parameters:
      - name: dataSetId
        in: path
        description: The ID of the Data Set
        required: true
        schema:
          type: string
      - name: dataSetRecordId
        in: path
        description: The ID of the Data Set Record
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimplifiedRow'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /work/tasks:
    post:
      tags:
      - One-Off Tasks
      summary: Create a one-off task
      description: Creates a new one-off task, optionally linked to a workflow run.
      operationId: createOneOffTask
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOneOffTaskRequest'
            examples:
              Create a one-off task:
                summary: Creates a task with two subtasks assigned to a user
                value:
                  name: Review contract
                  description: Check the terms and conditions
                  dueDate: '2026-04-01T09:00:00.000Z'
                  required: false
                  assigneeEmails:
                  - jane@example.com
                  subtasks:
                  - name: Check terms
                  - name: Verify dates
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiOneOffTaskResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /work/tasks/{taskId}:
    get:
      tags:
      - One-Off Tasks
      summary: Get a one-off task
      description: Returns a one-off task by its ID, including assignments and subtasks.
      operationId: getOneOffTask
      parameters:
      - name: taskId
        in: path
        description: The ID of the One-Off Task
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiOneOffTaskResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - One-Off Tasks
      summary: Update a one-off task
      description: 'Updates a one-off task. PUT semantics: all fields must be provided.
        Returns the updated task.'
      operationId: updateOneOffTask
      parameters:
      - name: taskId
        in: path
        description: The ID of the One-Off Task
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateOneOffTaskRequest'
            examples:
              Update a one-off task:
                summary: Update task details, reassign, and modify subtasks
                value:
                  name: Review contract
                  description: Check the terms and conditions
                  dueDate: '2026-04-02T09:00:00.000Z'
                  required: true
                  assigneeEmails:
                  - jane@example.com
                  - john@example.com
                  subtasks:
                  - id: skxHBuXQOJfSF-YrPDJKaw
                    name: Check terms
                    status: Completed
                  - name: Contact lawyer
                    status: NotCompleted
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiOneOffTaskResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    delete:
      tags:
      - One-Off Tasks
      summary: Delete a one-off task
      description: Deletes a one-off task permanently.
      operationId: deleteOneOffTask
      parameters:
      - name: taskId
        in: path
        description: The ID of the One-Off Task
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /work/tasks/{taskId}/complete:
    post:
      tags:
      - One-Off Tasks
      summary: Complete a one-off task
      description: Sets the task status to Completed. No-op if already completed.
        Returns the updated task.
      operationId: completeOneOffTask
      parameters:
      - name: taskId
        in: path
        description: The ID of the One-Off Task
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiOneOffTaskResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /work/tasks/{taskId}/uncomplete:
    post:
      tags:
      - One-Off Tasks
      summary: Uncomplete a one-off task
      description: Sets the task status to NotCompleted. No-op if already not completed.
        Returns the updated task.
      operationId: uncompleteOneOffTask
      parameters:
      - name: taskId
        in: path
        description: The ID of the One-Off Task
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiOneOffTaskResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /pages:
    get:
      tags:
      - Pages
      summary: List pages
      description: Returns a paginated list of pages, sorted by name.
      operationId: listPages
      parameters:
      - name: name
        in: query
        description: Filter by page name.
        required: false
        schema:
          type: string
      - name: folderId
        in: query
        description: Filter by folder ID.
        required: false
        schema:
          type: string
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiPageListResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    post:
      tags:
      - Pages
      summary: Create a page
      description: Creates a new page in the specified folder.
      operationId: createPage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePageRequest'
            examples:
              Create a page:
                summary: Creates a page in the specified folder
                value:
                  name: Employee Handbook
                  description: Company policies and procedures
                  folderId: mG4elYB9e9zHkVu65U9I_Q
                  shareLevel: None
                  referenceId: EH
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiPageResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /pages/{pageId}:
    get:
      tags:
      - Pages
      summary: Get a page
      description: Returns a page by its ID.
      operationId: getPage
      parameters:
      - name: pageId
        in: path
        description: The ID of the Page
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiPageResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Pages
      summary: Update a page
      description: 'Updates a page. PUT semantics: all fields must be provided. Returns
        the updated page.'
      operationId: updatePage
      parameters:
      - name: pageId
        in: path
        description: The ID of the Page
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdatePageRequest'
            examples:
              Update a page:
                summary: Updates a page with new values
                value:
                  name: Employee Handbook
                  description: Company policies and procedures
                  folderId: pRxFE417VjJj1HVDkdlGJA
                  shareLevel: None
                  referenceId: EH
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiPageResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    delete:
      tags:
      - Pages
      summary: Delete a page
      description: Soft deletes a page by its ID.
      operationId: deletePage
      parameters:
      - name: pageId
        in: path
        description: The ID of the Page
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /pages/{pageId}/markdown:
    get:
      tags:
      - Pages
      summary: Export page as Markdown
      description: Returns the content of the latest published page revision as Markdown.
      operationId: getPageMarkdown
      parameters:
      - name: pageId
        in: path
        description: The ID of the Page
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          headers:
            Content-Type:
              required: true
              schema:
                type: string
            Cache-Control:
              required: true
              schema:
                type: string
          content:
            text/markdown:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /pages/{pageId}/permissions:
    get:
      tags:
      - Pages
      summary: Get permissions for a page
      description: Returns the complete list of permissions on a page, one entry per
        user or group. `accessLevel` is `Custom` when the atom combination does not
        match a predefined level. Groups appear with synthetic `group-<id>@process.st`
        emails.
      operationId: getPagePermissions
      parameters:
      - name: pageId
        in: path
        description: The ID of the Page
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiPagePermissionListResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Pages
      summary: Set permissions for a page
      description: 'Replaces the full set of permissions for a page. PUT semantics:
        send the complete list to replace all existing permissions. Send an empty
        array to remove all user-addressable permissions. Accepts both user emails
        and group emails (groups appear in other endpoints with synthetic `group-<id>@process.st`
        emails). Note: only the AllMembers system group is user-addressable; AllAdmins,
        AllFreeMembers, AllGuests, and AllAnonymous are managed automatically and
        cannot be set directly. Returns the resulting permissions.'
      operationId: updatePagePermissions
      parameters:
      - name: pageId
        in: path
        description: The ID of the Page
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/PagePermissionEntry'
            examples:
              Replace all permissions:
                summary: Grant Jane edit access and John view access
                value:
                - email: jane@example.com
                  accessLevel: Edit
                - email: john@example.com
                  accessLevel: View
              Clear all user permissions:
                summary: Remove all user-addressable permissions (system-managed permits
                  are preserved)
                value: []
        required: false
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiPagePermissionListResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /pages/{pageId}/duplicate:
    post:
      tags:
      - Pages
      summary: Duplicate a page
      description: Creates a new page as a copy of the source page at a given revision.
        All body fields are optional — send `{}` to use defaults. `revisionId` defaults
        to the source page's latest published revision; `name` defaults to `"Copy
        of <original>"`; `folderId` defaults to the source page's folder.
      operationId: duplicatePage
      parameters:
      - name: pageId
        in: path
        description: The ID of the Page
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DuplicatePageRequest'
            examples:
              Custom name and destination:
                summary: Duplicates the source page's latest published revision into
                  the given folder with a custom name
                value:
                  name: Onboarding guide (draft)
                  folderId: g2ek0mk5Hzm7VWtqOSpLDg
              Defaults:
                summary: Duplicates the source page's latest published revision into
                  the source's folder, named "Copy of <original>"
                value: {}
              Specific revision:
                summary: Duplicates a specific revision of the source page
                value:
                  revisionId: kzAX84gIgdArK2R4jHxE-A
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiPageResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /pages/{pageId}/revisions:
    get:
      tags:
      - Page Revisions
      summary: List page revisions
      description: Returns a paginated list of revisions for a page.
      operationId: listPageRevisions
      parameters:
      - name: pageId
        in: path
        description: The ID of the Page
        required: true
        schema:
          type: string
      - name: status
        in: query
        description: 'Filter by status: Draft, Finished, or Revised.'
        required: false
        schema:
          type: string
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiPageRevisionListResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    post:
      tags:
      - Page Revisions
      summary: Create a page revision
      description: Creates a new draft revision for a page from its current finished
        revision. Only one draft can exist at a time.
      operationId: createPageRevision
      parameters:
      - name: pageId
        in: path
        description: The ID of the Page
        required: true
        schema:
          type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiPageRevisionResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /pages/{pageId}/revisions/{revisionId}:
    get:
      tags:
      - Page Revisions
      summary: Get a page revision
      description: Returns a page revision by its ID.
      operationId: getPageRevision
      parameters:
      - name: pageId
        in: path
        description: The ID of the Page
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiPageRevisionResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Page Revisions
      summary: Update a page revision
      description: Updates a draft page revision. Only revisions in Draft status can
        be updated. Returns the updated revision.
      operationId: updatePageRevision
      parameters:
      - name: pageId
        in: path
        description: The ID of the Page
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdatePageRevisionRequest'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiPageRevisionResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    delete:
      tags:
      - Page Revisions
      summary: Delete a page revision
      description: Discards a draft page revision. Only revisions in Draft status
        can be deleted.
      operationId: deletePageRevision
      parameters:
      - name: pageId
        in: path
        description: The ID of the Page
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /pages/{pageId}/revisions/{revisionId}/markdown:
    get:
      tags:
      - Page Revisions
      summary: Export page revision as Markdown
      description: Returns the content of a specific page revision as Markdown.
      operationId: getPageRevisionMarkdown
      parameters:
      - name: pageId
        in: path
        description: The ID of the Page
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          headers:
            Content-Type:
              required: true
              schema:
                type: string
            Cache-Control:
              required: true
              schema:
                type: string
          content:
            text/markdown:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /pages/{pageId}/revisions/{revisionId}/publish:
    post:
      tags:
      - Page Revisions
      summary: Publish a page revision
      description: Publishes a draft page revision, transitioning it to Finished status.
        The previously finished revision becomes Revised.
      operationId: publishPageRevision
      parameters:
      - name: pageId
        in: path
        description: The ID of the Page
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiPageRevisionResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /pages/{pageId}/revisions/{revisionId}/widgets/{widgetId}:
    get:
      tags:
      - Page Widgets
      summary: Get a page widget
      description: Returns a widget by its ID on a page revision.
      operationId: getPageRevisionWidget
      parameters:
      - name: pageId
        in: path
        description: The ID of the Page
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: widgetId
        in: path
        description: The ID of the Widget
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWidgetResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Page Widgets
      summary: Update a page widget
      description: |-
        Updates a widget on a draft page revision. PUT semantics: all mutable fields must be provided.
        Returns the updated widget.
      operationId: updatePageRevisionWidget
      parameters:
      - name: pageId
        in: path
        description: The ID of the Page
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: widgetId
        in: path
        description: The ID of the Widget
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdatePageWidgetRequest'
            examples:
              Text content widget:
                summary: Update a text content widget
                value:
                  hiddenByDefault: false
                  content: |-
                    ## Heading

                    Some text content.
                  type: Text
              Image widget:
                summary: Update an image widget's caption and position
                value:
                  hiddenByDefault: false
                  caption: Architecture diagram
                  type: Image
              File widget:
                summary: Update a file widget's description and position
                value:
                  hiddenByDefault: false
                  description: Project report
                  type: File
              Video content widget:
                summary: Update a video content widget
                value:
                  hiddenByDefault: false
                  description: Product demo
                  url: https://www.youtube.com/watch?v=dQw4w9WgXcQ
                  type: Video
              Embed widget:
                summary: Update an embed widget's URL
                value:
                  hiddenByDefault: false
                  url: https://www.google.com/maps/embed?pb=example
                  type: Embed
              CrossLink widget:
                summary: Update a cross-link widget
                value:
                  hiddenByDefault: false
                  type: CrossLink
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWidgetResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    delete:
      tags:
      - Page Widgets
      summary: Delete a page widget
      description: Deletes a widget from a draft page revision.
      operationId: deletePageRevisionWidget
      parameters:
      - name: pageId
        in: path
        description: The ID of the Page
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: widgetId
        in: path
        description: The ID of the Widget
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /pages/{pageId}/revisions/{revisionId}/widgets:
    get:
      tags:
      - Page Widgets
      summary: List page widgets
      description: Returns widgets on a page revision, ordered by position.
      operationId: listPageRevisionWidgets
      parameters:
      - name: pageId
        in: path
        description: The ID of the Page
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: type
        in: query
        description: Filter by widget type.
        required: false
        schema:
          $ref: '#/components/schemas/Type'
          description: |
            Widget kind discriminator (pages do not support FormField widgets).

            - `Text` — rich text content.
            - `Image` — image content.
            - `File` — downloadable file.
            - `Video` — video content (uploaded or linked).
            - `Embed` — embedded external content via URL.
            - `CrossLink` — link to another workflow or page.
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWidgetListResponse'
        '400':
          description: 'Invalid value for: query parameter type'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    post:
      tags:
      - Page Widgets
      summary: Create a page widget
      description: Creates a widget on a draft page revision.
      operationId: createPageRevisionWidget
      parameters:
      - name: pageId
        in: path
        description: The ID of the Page
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePageWidgetRequest'
            examples:
              Text content widget:
                summary: Create a text content widget
                value:
                  hiddenByDefault: false
                  content: |-
                    ## Heading

                    Some text content.
                  type: Text
              Image widget:
                summary: Create an image widget. The image file is uploaded via a
                  separate endpoint.
                value:
                  hiddenByDefault: false
                  caption: Architecture diagram
                  type: Image
              File widget:
                summary: Create a file widget. The file is uploaded via a separate
                  endpoint.
                value:
                  hiddenByDefault: false
                  description: Project report
                  type: File
              Video content widget:
                summary: Create a video content widget with a YouTube embed
                value:
                  hiddenByDefault: false
                  description: Product demo
                  url: https://www.youtube.com/watch?v=dQw4w9WgXcQ
                  type: Video
              Video content widget (empty, for upload):
                summary: Create an empty video content widget. Upload the video file
                  via the widget upload endpoint.
                value:
                  hiddenByDefault: false
                  description: Training recording
                  type: Video
              Embed widget:
                summary: Create an embed widget that renders a URL in an iframe
                value:
                  hiddenByDefault: false
                  url: https://www.google.com/maps/embed?pb=example
                  type: Embed
              CrossLink widget:
                summary: Create a cross-link widget that links to another workflow
                  or page
                value:
                  hiddenByDefault: false
                  type: CrossLink
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWidgetResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /pages/{pageId}/revisions/{revisionId}/widgets/{widgetId}/upload:
    post:
      tags:
      - Page Widgets
      summary: Upload a file to a page widget
      description: |-
        Uploads a file to an Image or File widget on a draft page revision. Replaces the existing file, if any.

        Accepts multipart form data (field `file`) or JSON with base64-encoded content (field `fileBase64`).
        Maximum file size: 20 MB for multipart, 10 MB for base64.
        You can also send JSON `{ "fileUploadId": "..." }` to attach a file you uploaded with
        `createFileUpload`; the `fileUploadId` is single-use.
        For Image widgets, only image/* content types are accepted.
      operationId: uploadPageRevisionWidgetFile
      parameters:
      - name: pageId
        in: path
        description: The ID of the Page
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: widgetId
        in: path
        description: The ID of the Widget
        required: true
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UploadWidgetFileRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/UploadWidgetFileRequest'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWidgetResponse'
        '400':
          description: Invalid value
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/revisions/{revisionId}/logic-rules:
    get:
      tags:
      - Workflow Logic Rules
      summary: List all conditional logic rules
      description: Returns a paginated list of conditional logic rules for a workflow
        revision, sorted by order tree.
      operationId: listWorkflowRevisionLogicRules
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiLogicRuleListResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    post:
      tags:
      - Workflow Logic Rules
      summary: Create a conditional logic rule
      description: Creates a conditional logic rule on a draft workflow revision.
      operationId: createWorkflowRevisionLogicRule
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWorkflowLogicRuleRequest'
            examples:
              Simple condition:
                summary: Show a task when a form field value is Active
                value:
                  condition:
                    or:
                    - and:
                      - widgetId: mRyEz36FMX4PFtpTMXRNQw
                        operator: Is
                        value: Active
                  action: Show
                  targets:
                    taskIds:
                    - ivJ4SNnXvhVrauVkc7dGWw
                    widgetIds: []
                  description: Show task when Status is Active
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiLogicRuleResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/revisions/{revisionId}/logic-rules/{ruleId}:
    get:
      tags:
      - Workflow Logic Rules
      summary: Get a conditional logic rule
      description: Returns a conditional logic rule by its ID.
      operationId: getWorkflowRevisionLogicRule
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: ruleId
        in: path
        description: The ID of the Logic Rule
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiLogicRuleResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Workflow Logic Rules
      summary: Update a conditional logic rule
      description: 'Updates a conditional logic rule on a draft workflow revision.
        PUT semantics: all fields must be provided. Returns the updated rule.'
      operationId: updateWorkflowRevisionLogicRule
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: ruleId
        in: path
        description: The ID of the Logic Rule
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWorkflowLogicRuleRequest'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiLogicRuleResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    delete:
      tags:
      - Workflow Logic Rules
      summary: Delete a conditional logic rule
      description: Deletes a conditional logic rule from a draft workflow revision.
      operationId: deleteWorkflowRevisionLogicRule
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: ruleId
        in: path
        description: The ID of the Logic Rule
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/revisions/{revisionId}/tasks:
    get:
      tags:
      - Workflow Tasks
      summary: List workflow tasks
      description: Returns a paginated list of workflow tasks for a workflow revision,
        ordered by position.
      operationId: listWorkflowRevisionTasks
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: taskType
        in: query
        description: 'Filter by task type: Standard, Approval, AI, or Code.'
        required: false
        schema:
          $ref: '#/components/schemas/TaskType'
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiTaskTemplateListResponse'
        '400':
          description: 'Invalid value for: query parameter taskType'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    post:
      tags:
      - Workflow Tasks
      summary: Create a workflow task
      description: |-
        Creates a workflow task on a draft workflow revision. AI and Code tasks cannot have due date offsets or stop flags.
        Task names can include merge tag variables (e.g. `{{workflow.name}}`).
        Use the listWorkflowRevisionVariables endpoint to discover available variables.

        > 💡 Notes for MCP clients:
        > - Don't prefix task names with numbers (e.g. "1. ", "Task 1:"). The UI already shows a position number next to each task, and task order can change — hard-coded numbers go stale.
        > - Consider adding content widgets to tasks with instructions, context, or guidance for the person running the workflow. Well-explained tasks make processes easier to follow.
      operationId: createWorkflowRevisionTask
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWorkflowTaskRequest'
            examples:
              Standard task:
                summary: Create a standard task at the bottom of the revision with
                  a 3-day due offset
                value:
                  name: Review document
                  taskType: Standard
                  stop: false
                  hiddenByDefault: false
                  dueOffset: P3D
                  position:
                    type: Bottom
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiTaskTemplateResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/revisions/{revisionId}/tasks/{taskId}:
    get:
      tags:
      - Workflow Tasks
      summary: Get a workflow task
      description: Returns a workflow task by its ID within a workflow revision.
      operationId: getWorkflowRevisionTask
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiTaskTemplateResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Workflow Tasks
      summary: Update a workflow task
      description: |-
        Updates a workflow task on a draft workflow revision. PUT semantics: all fields must be provided. AI and Code tasks cannot have due date offsets or stop flags.
        Task names can include merge tag variables (e.g. `{{workflow.name}}`).
        Use the listWorkflowRevisionVariables endpoint to discover available variables.

        > 💡 Notes for MCP clients:
        > - Don't prefix task names with numbers (e.g. "1. ", "Task 1:"). The UI already shows a position number next to each task, and task order can change — hard-coded numbers go stale.
        > - Consider adding content widgets to tasks with instructions, context, or guidance for the person running the workflow. Well-explained tasks make processes easier to follow.

        Returns the updated task.
      operationId: updateWorkflowRevisionTask
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWorkflowTaskRequest'
            examples:
              Update all fields:
                summary: Sets the task name, flags, due offset, and moves it to the
                  bottom
                value:
                  name: Review document
                  stop: false
                  hiddenByDefault: false
                  dueOffset: P3D
                  position:
                    type: Bottom
              Clear nullable fields:
                summary: Clears the task name and due offset, and moves it to the
                  top
                value:
                  stop: false
                  hiddenByDefault: false
                  position:
                    type: Top
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiTaskTemplateResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    delete:
      tags:
      - Workflow Tasks
      summary: Delete a workflow task
      description: Deletes a workflow task from a draft workflow revision.
      operationId: deleteWorkflowRevisionTask
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/revisions/{revisionId}/tasks/{taskId}/permission-rules:
    get:
      tags:
      - Workflow Tasks
      summary: Get task permission rules
      description: Returns the static and dynamic permission rules for a task template
        on a workflow revision.
      operationId: getWorkflowRevisionTaskPermissionRules
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiPermissionRuleListResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Workflow Tasks
      summary: Update task permission rules
      description: 'Replaces the client-configurable permission rules for a task on
        a draft workflow revision. PUT semantics: send the full list of desired rules
        to replace all existing ones. Send an empty array to remove all client-configurable
        rules. Note: system-managed permits (e.g. for all-members groups) are preserved
        and not affected by this endpoint. Returns the resulting permission rules.'
      operationId: updateWorkflowRevisionTaskPermissionRules
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/UpdateTaskPermissionRuleRequest'
        required: false
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiPermissionRuleListResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/revisions/{revisionId}/tasks/{taskId}/config:
    get:
      tags:
      - Workflow Tasks
      summary: Get workflow task configuration
      description: 'Returns the configuration for a workflow task. Shape varies by
        task type: Approval returns subject task IDs, AI returns prompt and output
        mapping, Code returns code with input/output mappings. Standard tasks have
        no configuration (returns 400).'
      operationId: getWorkflowRevisionTaskConfig
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiTaskConfigResponse'
              examples:
                Approval task:
                  summary: Approval task configuration
                  value:
                    data:
                      subjectTaskIds:
                      - iSB0Yx1P0sv_vYTgHBZCjA
                      - kXZ9-BNN0O8QeLEdEdhJtw
                      type: Approval
                    links: []
                AI task:
                  summary: AI task configuration
                  value:
                    data:
                      prompt: Summarize the form field values
                      systemPrompt: You are a helpful assistant
                      outputMapping:
                        output: iSB0Yx1P0sv_vYTgHBZCjA
                      type: Ai
                    links: []
                Code task:
                  summary: Code task configuration
                  value:
                    data:
                      code: outputData['result'] = String(Number(inputData['value'])
                        * 2); outputData['summary'] = inputData['name'];
                      inputMapping:
                        value: iSB0Yx1P0sv_vYTgHBZCjA
                        name: kXZ9-BNN0O8QeLEdEdhJtw
                      outputMapping:
                        result: iSB0Yx1P0sv_vYTgHBZCjA
                        summary: kXZ9-BNN0O8QeLEdEdhJtw
                      type: Code
                    links: []
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Workflow Tasks
      summary: Update workflow task configuration
      description: 'Sets the configuration for a workflow task on a draft revision.
        PUT semantics: send all fields for the task type; optional fields omitted
        or set to null are cleared. Standard tasks have no configuration (returns
        400). Returns the updated configuration.'
      operationId: updateWorkflowRevisionTaskConfig
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicApiTaskConfig'
            examples:
              Approval task:
                summary: Set which tasks this approval gates
                value:
                  subjectTaskIds:
                  - iSB0Yx1P0sv_vYTgHBZCjA
                  - kXZ9-BNN0O8QeLEdEdhJtw
                  type: Approval
              AI task:
                summary: Set the prompt and output mapping for an AI task
                value:
                  prompt: Summarize the form field values
                  systemPrompt: You are a helpful assistant
                  outputMapping:
                    output: iSB0Yx1P0sv_vYTgHBZCjA
                  type: Ai
              Code task:
                summary: Set the code, input mapping, and output mapping for a code
                  task
                value:
                  code: outputData['result'] = String(Number(inputData['value']) *
                    2); outputData['summary'] = inputData['name'];
                  inputMapping:
                    value: iSB0Yx1P0sv_vYTgHBZCjA
                    name: kXZ9-BNN0O8QeLEdEdhJtw
                  outputMapping:
                    result: iSB0Yx1P0sv_vYTgHBZCjA
                    summary: kXZ9-BNN0O8QeLEdEdhJtw
                  type: Code
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiTaskConfigResponse'
              examples:
                Approval task:
                  summary: Approval task configuration
                  value:
                    data:
                      subjectTaskIds:
                      - iSB0Yx1P0sv_vYTgHBZCjA
                      - kXZ9-BNN0O8QeLEdEdhJtw
                      type: Approval
                    links: []
                AI task:
                  summary: AI task configuration
                  value:
                    data:
                      prompt: Summarize the form field values
                      systemPrompt: You are a helpful assistant
                      outputMapping:
                        output: iSB0Yx1P0sv_vYTgHBZCjA
                      type: Ai
                    links: []
                Code task:
                  summary: Code task configuration
                  value:
                    data:
                      code: outputData['result'] = String(Number(inputData['value'])
                        * 2); outputData['summary'] = inputData['name'];
                      inputMapping:
                        value: iSB0Yx1P0sv_vYTgHBZCjA
                        name: kXZ9-BNN0O8QeLEdEdhJtw
                      outputMapping:
                        result: iSB0Yx1P0sv_vYTgHBZCjA
                        summary: kXZ9-BNN0O8QeLEdEdhJtw
                      type: Code
                    links: []
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/incoming-webhooks:
    get:
      tags:
      - Workflow Incoming Webhooks
      summary: List incoming webhooks
      description: Returns all non-deleted incoming webhooks for a workflow, including
        disabled ones.
      operationId: listWorkflowIncomingWebhooks
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiIncomingWebhookListResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    post:
      tags:
      - Workflow Incoming Webhooks
      summary: Create an incoming webhook
      description: |-
        Creates an incoming webhook for a workflow. When the webhook URL receives a JSON payload,
        it creates a workflow run and populates it using the configured mappings.

        **config.properties** maps workflow run properties to JSON paths in the incoming payload:
        - `Name` — run name (string)
        - `DueDate` — due date (ISO 8601 date string)
        - `Shared` — whether the run is shared (boolean)
        - `Assignees` — assignee email addresses (string or array of strings)
        - `Runner` — runner email address (string)

        **config.formFields** maps form field widget IDs to JSON paths for populating form field values
        on the created run. Keys are widget IDs (Muid), values are JSON path expressions (e.g. `$.user.name`).
      operationId: createWorkflowIncomingWebhook
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWorkflowIncomingWebhookRequest'
            examples:
              Full config:
                summary: Webhook with run properties and form field mappings
                value:
                  name: New Employee Onboarding
                  automationApp: Zapier
                  config:
                    properties:
                      Name: $.employee.name
                      DueDate: $.employee.start_date
                      Assignees: $.employee.manager_email
                    formFields:
                      gcWPxsRjNNTeZqaTsBpLhg: $.employee.department
                      ocsAkBEFkTih7YpuSfJEnw: $.employee.role
              Minimal:
                summary: Webhook with no mappings — creates a blank workflow run
                value:
                  name: Simple trigger
                  automationApp: Custom
                  config: {}
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiIncomingWebhookResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/incoming-webhooks/{webhookId}:
    get:
      tags:
      - Workflow Incoming Webhooks
      summary: Get an incoming webhook
      description: Returns an incoming webhook by its ID for a workflow.
      operationId: getWorkflowIncomingWebhook
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: webhookId
        in: path
        description: The ID of the Webhook
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiIncomingWebhookResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Workflow Incoming Webhooks
      summary: Update an incoming webhook
      description: |-
        Updates an incoming webhook for a workflow. PUT semantics: all fields must be provided. Returns the updated webhook.

        See the create endpoint for details on `config.properties` and `config.formFields`.
      operationId: updateWorkflowIncomingWebhook
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: webhookId
        in: path
        description: The ID of the Webhook
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWorkflowIncomingWebhookRequest'
            examples:
              Update with active status:
                summary: Update webhook mappings while keeping it active
                value:
                  name: New Employee Onboarding (v2)
                  automationApp: Zapier
                  status: Active
                  config:
                    properties:
                      Name: $.employee.full_name
                      DueDate: $.employee.start_date
                      Assignees: $.employee.manager_email
                    formFields:
                      gcWPxsRjNNTeZqaTsBpLhg: $.employee.department
                      ocsAkBEFkTih7YpuSfJEnw: $.employee.role
              Disable webhook:
                summary: Disable a webhook to stop processing incoming payloads
                value:
                  name: Paused webhook
                  automationApp: Custom
                  status: Disabled
                  config: {}
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiIncomingWebhookResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    delete:
      tags:
      - Workflow Incoming Webhooks
      summary: Delete an incoming webhook
      description: Soft-deletes an incoming webhook for a workflow. Subsequent GET
        requests will return 404.
      operationId: deleteWorkflowIncomingWebhook
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: webhookId
        in: path
        description: The ID of the Webhook
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/revisions/{revisionId}/tasks/{taskId}/assignment-rules:
    get:
      tags:
      - Workflow Task Assignment Rules
      summary: Get task assignment rules
      description: 'Returns the assignment rules for a task on a workflow revision.
        Each rule has a `type` discriminator: `Static` includes the assignee''s `email`;
        `Dynamic` includes a `sourceType` (one of `ChecklistInitiator`, `FormField`,
        `DocumentOwner`, `DocumentAuthor`), and when `sourceType` is `FormField`,
        also a `sourceWidgetId` pointing to a Members or Email form field widget in
        the same revision.'
      operationId: getWorkflowRevisionTaskAssignmentRules
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiAssignmentRuleListResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Workflow Task Assignment Rules
      summary: Update task assignment rules
      description: 'Replaces the assignment rules for a task on a draft workflow revision.
        PUT semantics: send the full list of desired rules to replace all existing
        ones; send an empty array to remove all assignments. Each rule has a `type`
        discriminator: `Static` requires an `email`; `Dynamic` requires a `sourceType`
        (one of `ChecklistInitiator`, `FormField`, `DocumentOwner`, `DocumentAuthor`),
        and when `sourceType` is `FormField`, also a `sourceWidgetId` pointing to
        a Members or Email form field widget in the same revision. Returns the resulting
        assignment rules.'
      operationId: updateWorkflowRevisionTaskAssignmentRules
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/UpdateTaskAssignmentRuleRequest'
        required: false
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiAssignmentRuleListResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/revisions/{revisionId}/tasks/{taskId}/widgets:
    get:
      tags:
      - Workflow Widgets
      summary: List widgets
      description: Returns widgets for a task on a workflow revision, ordered by position.
      operationId: listWorkflowRevisionTaskWidgets
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      - name: type
        in: query
        description: Filter by widget type.
        required: false
        schema:
          $ref: '#/components/schemas/Type'
          description: |
            Widget kind discriminator.

            - `FormField` — collects user input (Text, Number, Date, etc.).
            - `Text` — rich text content displayed on the task.
            - `Image` — image content displayed on the task.
            - `File` — downloadable file attached to the task.
            - `Video` — video content (uploaded or linked from a hosting service).
            - `Embed` — embedded external content via URL.
            - `CrossLink` — link to another workflow or page.
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWidgetListResponse'
        '400':
          description: 'Invalid value for: query parameter type'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    post:
      tags:
      - Workflow Widgets
      summary: Create a widget
      description: |-
        Creates a widget on a task within a draft workflow revision.
        Text content can include merge tag variables (e.g. `{{workflow.name}}`).
        Use the listWorkflowRevisionVariables endpoint to discover available variables.
      operationId: createWorkflowRevisionTaskWidget
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWorkflowWidgetRequest'
            examples:
              Text form field:
                summary: Create a Text form field widget
                value:
                  label: Customer Name
                  config:
                    placeholder: Enter name...
                  constraints:
                    min: 1
                    max: 100
                  fieldType: Text
                  type: FormField
              Textarea form field:
                summary: Create a Textarea form field widget
                value:
                  label: Description
                  fieldType: Textarea
                  type: FormField
              Email form field:
                summary: Create a Email form field widget
                value:
                  label: Contact Email
                  fieldType: Email
                  type: FormField
              Number form field:
                summary: Create a Number form field widget
                value:
                  label: Quantity
                  fieldType: Number
                  type: FormField
              URL form field:
                summary: Create a URL form field widget
                value:
                  label: Website
                  fieldType: Url
                  type: FormField
              Hidden form field:
                summary: Create a Hidden form field widget
                value:
                  hiddenByDefault: true
                  label: Internal ID
                  fieldType: Hidden
                  type: FormField
              MultiFile form field:
                summary: Create a MultiFile form field widget
                value:
                  label: Attachments
                  fieldType: MultiFile
                  type: FormField
              Select form field:
                summary: Create a Select form field widget
                value:
                  label: Status
                  fieldType: Select
                  type: FormField
              MultiChoice form field:
                summary: Create a MultiChoice form field widget
                value:
                  label: Options
                  fieldType: MultiChoice
                  type: FormField
              MultiSelect form field:
                summary: Create a MultiSelect form field widget
                value:
                  label: Subtasks
                  fieldType: MultiSelect
                  type: FormField
              Date form field:
                summary: Create a Date form field widget
                value:
                  label: Due Date
                  fieldType: Date
                  type: FormField
              Members form field:
                summary: Create a Members form field widget
                value:
                  label: Assignee
                  fieldType: Members
                  type: FormField
              Document form field:
                summary: Create a Document form field widget
                value:
                  label: Contract
                  fieldType: Document
                  type: FormField
              Table form field:
                summary: Create a Table form field widget
                value:
                  label: Inventory
                  fieldType: Table
                  type: FormField
              Snippet form field:
                summary: Create a Snippet form field widget
                value:
                  label: Reusable Snippet
                  fieldType: Snippet
                  type: FormField
              SendRichEmail form field:
                summary: Create a SendRichEmail form field widget
                value:
                  label: Notification Email
                  fieldType: SendRichEmail
                  type: FormField
              Text content widget:
                summary: Create a text content widget
                value:
                  hiddenByDefault: false
                  content: |-
                    ## Heading

                    Some text content.
                  type: Text
              Image widget:
                summary: Create an image widget. The file is uploaded via a separate
                  endpoint.
                value:
                  hiddenByDefault: false
                  caption: Architecture diagram
                  type: Image
              File widget:
                summary: Create a file widget. The file is uploaded via a separate
                  endpoint.
                value:
                  hiddenByDefault: false
                  description: Project report
                  type: File
              Video content widget:
                summary: Create a video content widget with a YouTube embed
                value:
                  hiddenByDefault: false
                  description: Product demo
                  url: https://www.youtube.com/watch?v=dQw4w9WgXcQ
                  type: Video
              Video content widget (empty, for upload):
                summary: Create an empty video content widget. Upload the video file
                  via the widget upload endpoint.
                value:
                  hiddenByDefault: false
                  description: Training recording
                  type: Video
              Embed widget:
                summary: Create an embed widget that renders a URL in an iframe
                value:
                  hiddenByDefault: false
                  url: https://www.google.com/maps/embed?pb=example
                  type: Embed
              CrossLink widget:
                summary: Create a cross-link widget that links to another workflow
                  or page
                value:
                  hiddenByDefault: false
                  type: CrossLink
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWidgetResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/revisions/{revisionId}/tasks/{taskId}/widgets/{widgetId}:
    get:
      tags:
      - Workflow Widgets
      summary: Get a widget
      description: Returns a widget by its ID within a workflow revision task.
      operationId: getWorkflowRevisionTaskWidget
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      - name: widgetId
        in: path
        description: The ID of the Widget
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWidgetResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Workflow Widgets
      summary: Update a widget
      description: |-
        Updates a widget on a task within a draft workflow revision. PUT semantics: all mutable fields must be provided.
        Each field type has different config and constraints — refer to the request examples for the specific shape per type.
        Text content can include merge tag variables (e.g. `{{workflow.name}}`).
        Use the listWorkflowRevisionVariables endpoint to discover available variables.
        Returns the updated widget.
      operationId: updateWorkflowRevisionTaskWidget
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      - name: widgetId
        in: path
        description: The ID of the Widget
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWidgetRequest'
            examples:
              Text form field:
                summary: Update a text form field widget
                value:
                  hiddenByDefault: false
                  position:
                    type: After
                    widgetId: pgaNaB9u7R8b8FpEOtpN7g
                  label: Customer Name
                  required: true
                  config:
                    placeholder: Enter name...
                    defaultValue: John
                  constraints:
                    min: 1
                    max: 100
                  fieldType: Text
                  type: FormField
              Textarea form field:
                summary: Update a textarea form field widget
                value:
                  hiddenByDefault: false
                  label: Description
                  required: false
                  config:
                    placeholder: Enter description...
                    defaultValue: ''
                    format: RichText
                  constraints:
                    min: 1
                    max: 500
                  fieldType: Textarea
                  type: FormField
              Email form field:
                summary: Update an email form field widget
                value:
                  hiddenByDefault: false
                  label: Contact Email
                  required: true
                  config:
                    placeholder: Enter email...
                    defaultValue: ''
                  constraints:
                    domains:
                    - company.com
                    restriction: Allow
                  fieldType: Email
                  type: FormField
              Number form field:
                summary: Update a number form field widget
                value:
                  hiddenByDefault: false
                  label: Quantity
                  required: true
                  config:
                    placeholder: Enter number...
                    defaultValue: '0'
                    unit: kg
                    unitLocation: suffix
                  constraints:
                    minDigits: 1
                    maxDigits: 5
                    minValue: 0
                    maxValue: 1000
                    decimalPlaces: 2
                    allowNegative: false
                  fieldType: Number
                  type: FormField
              URL form field:
                summary: Update a URL form field widget
                value:
                  hiddenByDefault: false
                  label: Website
                  required: false
                  config:
                    defaultValue: https://example.com
                  fieldType: Url
                  type: FormField
              Hidden form field:
                summary: Update a hidden form field widget
                value:
                  hiddenByDefault: true
                  label: Internal ID
                  required: false
                  config:
                    defaultValue: default-value
                  fieldType: Hidden
                  type: FormField
              File form field:
                summary: Update a (legacy) file form field widget
                value:
                  hiddenByDefault: false
                  label: Attachment
                  required: true
                  config:
                    placeholder: Upload a file...
                    extractTextContent: false
                  constraints:
                    extensions:
                    - .pdf
                    - .docx
                  fieldType: File
                  type: FormField
              MultiFile form field:
                summary: Update a multi-file form field widget
                value:
                  hiddenByDefault: false
                  label: Attachments
                  required: true
                  config:
                    placeholder: Upload files...
                    extractTextContent: true
                  constraints:
                    extensions:
                    - .pdf
                    - .docx
                    mode: Multiple
                  fieldType: MultiFile
                  type: FormField
              Select form field:
                summary: Update a select (dropdown) form field widget
                value:
                  hiddenByDefault: false
                  label: Status
                  required: false
                  config:
                    items:
                    - id: j3e6zoczgVsojvlYwd1BCQ
                      name: Option 1
                    - id: ihze7MyKvjQmgNrMlAFH0A
                      name: Option 2
                    - id: vb4_4lQc-8tu59cDVElKOQ
                      name: Option 3
                  fieldType: Select
                  type: FormField
              MultiChoice form field:
                summary: Update a multi-choice form field widget
                value:
                  hiddenByDefault: false
                  label: Options
                  required: false
                  config:
                    items:
                    - id: l3UXJvu_CwmZSyY6PMpMLQ
                      name: Choice A
                    - id: juTH9dSjHLbwKn_gl3xJaw
                      name: Choice B
                    - id: l4XZn28cKoHbzR22ujRNtQ
                      name: Choice C
                  fieldType: MultiChoice
                  type: FormField
              MultiSelect form field:
                summary: Update a multi-select (subtasks) form field widget
                value:
                  hiddenByDefault: false
                  label: Subtasks
                  required: false
                  config:
                    items:
                    - id: qpEidWhqNDScyzKvYV5OvA
                      name: Task 1
                    - id: lzvSQ28YDT6lYha54vNOfA
                      name: Task 2
                    - id: tctn6KXx9zo-tHaUSe5BNg
                      name: Task 3
                  fieldType: MultiSelect
                  type: FormField
              Date form field:
                summary: Update a date form field widget
                value:
                  hiddenByDefault: false
                  label: Due Date
                  required: false
                  config:
                    timeOption: Included
                  constraints: {}
                  fieldType: Date
                  type: FormField
              Members form field:
                summary: Update a members form field widget
                value:
                  hiddenByDefault: false
                  label: Assignee
                  required: false
                  config: {}
                  fieldType: Members
                  type: FormField
              Document form field:
                summary: Update a document form field widget
                value:
                  hiddenByDefault: false
                  label: Contract
                  required: false
                  config:
                    reviewRequest: true
                    defaultValue: '{{document_review.document.id}}'
                  fieldType: Document
                  type: FormField
              Table form field:
                summary: Update a table form field widget
                value:
                  hiddenByDefault: false
                  label: Inventory
                  required: false
                  config:
                    columnDefs:
                    - id: p9sVygBp12S7IbMEJGJMcA
                      name: Name
                      columnType: Text
                    - id: tuAJDOmdkJgGDfYWzchOoQ
                      name: Quantity
                      columnType: Number
                  fieldType: Table
                  type: FormField
              Snippet form field:
                summary: Update a snippet form field widget
                value:
                  hiddenByDefault: false
                  label: Reusable Snippet
                  required: false
                  config:
                    value: This is reusable text content.
                  fieldType: Snippet
                  type: FormField
              SendRichEmail form field:
                summary: Update a send rich email form field widget
                value:
                  hiddenByDefault: false
                  label: Notification Email
                  required: false
                  config:
                    to:
                    - recipient@example.com
                    subject: Task completed
                    body: <p>The task has been completed.</p>
                    bodyEditor: RichText
                    editAllowed: true
                  fieldType: SendRichEmail
                  type: FormField
              Text content widget:
                summary: Update a text content widget
                value:
                  hiddenByDefault: false
                  content: |-
                    ## Heading

                    Some text content.
                  type: Text
              Image widget:
                summary: Update an image widget's caption and position
                value:
                  hiddenByDefault: false
                  caption: Architecture diagram
                  type: Image
              File widget:
                summary: Update a file widget's description and position
                value:
                  hiddenByDefault: false
                  description: Project report
                  type: File
              Video content widget:
                summary: Update a video content widget
                value:
                  hiddenByDefault: false
                  description: Product demo
                  url: https://www.youtube.com/watch?v=dQw4w9WgXcQ
                  type: Video
              Embed widget:
                summary: Update an embed widget's URL
                value:
                  hiddenByDefault: false
                  url: https://www.google.com/maps/embed?pb=example
                  type: Embed
              CrossLink widget:
                summary: Update a cross-link widget
                value:
                  hiddenByDefault: false
                  type: CrossLink
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWidgetResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    delete:
      tags:
      - Workflow Widgets
      summary: Delete a widget
      description: Deletes a widget from a task within a draft workflow revision.
      operationId: deleteWorkflowRevisionTaskWidget
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      - name: widgetId
        in: path
        description: The ID of the Widget
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/revisions/{revisionId}/tasks/{taskId}/widgets/{widgetId}/upload:
    post:
      tags:
      - Workflow Widgets
      summary: Upload a file to a widget
      description: |-
        Uploads a file to an Image or File widget on a task within a draft workflow revision. Replaces the existing file, if any.

        Accepts multipart form data (field `file`) or JSON with base64-encoded content (field `fileBase64`).
        Maximum file size: 20 MB for multipart, 10 MB for base64.
        You can also send JSON `{ "fileUploadId": "..." }` to attach a file you uploaded with
        `createFileUpload`; the `fileUploadId` is single-use.
        For Image widgets, only image/* content types are accepted.
      operationId: uploadWorkflowRevisionTaskWidgetFile
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      - name: widgetId
        in: path
        description: The ID of the Widget
        required: true
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UploadWidgetFileRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/UploadWidgetFileRequest'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWidgetResponse'
        '400':
          description: Invalid value
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/revisions/{revisionId}/due-date-rule:
    get:
      tags:
      - Workflow Due Date Rules
      summary: Get the checklist due date rule
      description: Returns the checklist-level due date rule for a workflow revision.
        The `rule` field is `null` when no rule is set.
      operationId: getChecklistDueDateRule
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetChecklistDueDateRuleResponseResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Workflow Due Date Rules
      summary: Set the checklist due date rule
      description: 'Sets the single checklist-level due date rule on a draft workflow
        revision, replacing any existing rule. Send `rule: null` (or omit the field)
        to clear the existing rule. When `sourceType` is `FormFieldValue`, `sourceWidgetId`
        must reference a Date form field widget in the same revision. Returns the
        resulting rule.'
      operationId: setChecklistDueDateRule
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateChecklistDueDateRuleRequest'
            examples:
              Offset from start date:
                summary: Sets the due date 7 days after the workflow run's start date,
                  shifted if it falls on a weekend.
                value:
                  rule:
                    sourceType: ChecklistStartDate
                    offsetDirection: After
                    dueOffset: P7D
                    businessDaysHandlingMode: ShiftToNextBusinessDay
              Offset from form field value:
                summary: Sets the due date 2 hours before a Date form field value.
                  `sourceWidgetId` must reference a Date form field widget in the
                  same revision.
                value:
                  rule:
                    sourceType: FormFieldValue
                    sourceWidgetId: uiLsuk5gYajS7i8w5r1KGw
                    offsetDirection: Before
                    dueOffset: PT2H
                    businessDaysHandlingMode: AllDays
              Clear the rule:
                summary: Removes the existing checklist due date rule from the revision.
                value: {}
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetChecklistDueDateRuleResponseResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /workflows/{workflowId}/revisions/{revisionId}/tasks/{taskId}/due-date-rule:
    get:
      tags:
      - Workflow Task Due Date Rules
      summary: Get the task due date rule
      description: Returns the due date rule for a task on a workflow revision. The
        `rule` field is `null` when no rule is set.
      operationId: getTaskDueDateRule
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTaskDueDateRuleResponseResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Workflow Task Due Date Rules
      summary: Set the task due date rule
      description: 'Sets the single due date rule for a task on a draft workflow revision,
        replacing any existing rule. Send `rule: null` (or omit the field) to clear
        the existing rule. Due date rules cannot be **set** on headings, AI tasks,
        or Code tasks — but clearing is always permitted so stale rules left over
        from prior task edits can be removed. `sourceWidgetId` is required when `sourceType`
        is `FormFieldValue` and must reference a Date form field widget in the same
        revision. `sourceTaskId` is required when `sourceType` is `TaskCompletedDate`
        or `TaskDueDate`; it must reference a task earlier than the target task in
        the same revision and cannot be the target task itself. Returns the resulting
        rule.'
      operationId: setTaskDueDateRule
      parameters:
      - name: workflowId
        in: path
        description: The ID of the Workflow
        required: true
        schema:
          type: string
      - name: revisionId
        in: path
        description: The ID of the Revision
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The ID of the Task
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTaskDueDateRuleRequest'
            examples:
              Offset from workflow run start:
                summary: Task is due 3 days after the workflow run starts.
                value:
                  rule:
                    sourceType: ChecklistStartDate
                    offsetDirection: After
                    dueOffset: P3D
                    businessDaysHandlingMode: AllDays
              Offset from previous task:
                summary: Task is due 1 day after the previous task is completed.
                value:
                  rule:
                    sourceType: PreviousTaskCompletedDate
                    offsetDirection: After
                    dueOffset: P1D
                    businessDaysHandlingMode: ShiftToNextBusinessDay
              Offset from another task:
                summary: Task is due 2 days after the source task is completed. `sourceTaskId`
                  must reference a task that appears before the target task in the
                  same revision.
                value:
                  rule:
                    sourceType: TaskCompletedDate
                    sourceTaskId: oMqrxlwRgc-Hh5a8lXFNrQ
                    offsetDirection: After
                    dueOffset: P2D
                    businessDaysHandlingMode: AllDays
              Offset from a date form field value:
                summary: Task is due 1 business day before a Date form field value.
                value:
                  rule:
                    sourceType: FormFieldValue
                    sourceWidgetId: tQ7TBgT0XQMBSuVu0NZFAw
                    offsetDirection: Before
                    dueOffset: P1D
                    businessDaysHandlingMode: BusinessDaysOnly
              Clear the rule:
                summary: Removes the existing task due date rule.
                value: {}
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTaskDueDateRuleResponseResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /scheduled-workflows:
    get:
      tags:
      - Scheduled Workflows
      summary: List scheduled workflows
      description: Returns a paginated list of scheduled workflows, ordered by next
        run date.
      operationId: listScheduledWorkflows
      parameters:
      - name: workflowId
        in: query
        description: Filter by workflow.
        required: false
        schema:
          type: string
      - name: search
        in: query
        description: Case-insensitive substring match on name.
        required: false
        schema:
          type: string
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiScheduledWorkflowListResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    post:
      tags:
      - Scheduled Workflows
      summary: Create a scheduled workflow
      description: Creates a scheduled workflow that runs a workflow on a recurring
        schedule.
      operationId: createScheduledWorkflow
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateScheduledWorkflowRequest'
            examples:
              Weekly schedule:
                summary: Create a weekly scheduled workflow that runs every Monday
                value:
                  workflowId: r4Alksc9a9WQMlOCj_VEjA
                  name: Weekly compliance review
                  startDate: '2026-07-04T08:12:52.764Z'
                  timeZone: America/New_York
                  duePeriod: P7D
                  rules:
                  - interval: 1
                    weekDay: Monday
                    frequency: Weekly
                  assigneeEmails:
                  - alice@example.com
              Daily schedule:
                summary: Create a daily scheduled workflow with no due period
                value:
                  workflowId: h6QoHWMxynGH3AgKNSNEpg
                  name: Daily standup checklist
                  startDate: '2026-07-04T08:12:52.764Z'
                  timeZone: Europe/London
                  rules:
                  - interval: 1
                    frequency: Daily
                  assigneeEmails: []
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiScheduledWorkflowResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /scheduled-workflows/{scheduledWorkflowId}:
    get:
      tags:
      - Scheduled Workflows
      summary: Get a scheduled workflow
      description: Returns a scheduled workflow by its ID.
      operationId: getScheduledWorkflow
      parameters:
      - name: scheduledWorkflowId
        in: path
        description: The ID of the scheduled workflow.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiScheduledWorkflowResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Scheduled Workflows
      summary: Update a scheduled workflow
      description: 'Updates a scheduled workflow. PUT semantics: all mutable fields
        must be provided. Rules and assignees are fully replaced.'
      operationId: updateScheduledWorkflow
      parameters:
      - name: scheduledWorkflowId
        in: path
        description: The ID of the scheduled workflow.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateScheduledWorkflowRequest'
            examples:
              Weekly schedule:
                summary: Create a weekly scheduled workflow that runs every Monday
                value:
                  workflowId: ouQDmyC4hSTRlk-Sb5lGtA
                  name: Weekly compliance review
                  startDate: '2026-07-04T08:12:52.764Z'
                  timeZone: America/New_York
                  duePeriod: P7D
                  rules:
                  - interval: 1
                    weekDay: Monday
                    frequency: Weekly
                  assigneeEmails:
                  - alice@example.com
              Daily schedule:
                summary: Create a daily scheduled workflow with no due period
                value:
                  workflowId: lVqW2gx4mB8865wS8etH_A
                  name: Daily standup checklist
                  startDate: '2026-07-04T08:12:52.764Z'
                  timeZone: Europe/London
                  rules:
                  - interval: 1
                    frequency: Daily
                  assigneeEmails: []
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiScheduledWorkflowResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    delete:
      tags:
      - Scheduled Workflows
      summary: Delete a scheduled workflow
      description: Deletes a scheduled workflow and unschedules all future runs.
      operationId: deleteScheduledWorkflow
      parameters:
      - name: scheduledWorkflowId
        in: path
        description: The ID of the scheduled workflow.
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /users:
    get:
      tags:
      - Users
      summary: List all users
      description: |-
        Returns a list of users.
        The users are returned 20 at a time, sorted by name.
        You must use the links section to get the next 20 results.
      operationId: listUsers
      parameters:
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListUsersResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /webhooks:
    get:
      tags:
      - Webhooks
      summary: List webhooks
      description: Returns webhook subscriptions for the authenticated organization,
        paginated.
      operationId: listWebhooks
      parameters:
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWebhookListResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    post:
      tags:
      - Webhooks
      summary: Create a webhook
      description: Creates a webhook subscription for a specified event.
      operationId: createWebhook
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWebhookRequest'
            examples:
              Task Checked/Unchecked Webhook:
                value:
                  url: https://example.com/api
                  triggers:
                  - TaskCheckedUnchecked
              Task Checked and Workflow Run Completed Webhook:
                value:
                  url: https://example.com/api
                  triggers:
                  - TaskChecked
                  - WorkflowRunCompleted
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /webhooks/{webhookId}:
    get:
      tags:
      - Webhooks
      summary: Get a webhook
      description: Returns a webhook subscription by its ID.
      operationId: getWebhook
      parameters:
      - name: webhookId
        in: path
        description: The ID of the Webhook
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWebhookResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    put:
      tags:
      - Webhooks
      summary: Update a webhook
      description: 'Updates a webhook subscription. PUT semantics: all fields must
        be provided. Returns the updated webhook.'
      operationId: updateWebhook
      parameters:
      - name: webhookId
        in: path
        description: The ID of the Webhook
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWebhookRequest'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiWebhookResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    delete:
      tags:
      - Webhooks
      summary: Delete a webhook
      description: Deletes a webhook subscription by its ID.
      operationId: deleteWebhook
      parameters:
      - name: webhookId
        in: path
        description: The ID of the Webhook
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /testAuth:
    get:
      tags:
      - Utilities
      summary: Test authentication
      description: |2

        Returns the API key's label.
      operationId: testAuth
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestAuthResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /work/items:
    get:
      tags:
      - My Work
      summary: List My Work items
      description: |-
        Returns a paginated list of work items assigned to the authenticated user.
        Use `assigneeEmail` to filter by a specific user, or omit to default to the authenticated user.
      operationId: listMyWorkItems
      parameters:
      - name: assigneeEmail
        in: query
        description: Filter by assignee email. Defaults to the authenticated user.
        required: false
        schema:
          type: string
      - name: type
        in: query
        description: |
          Filter by item type.

          - `Checklist` — a workflow run assigned to the user.
          - `StandardTask` — a regular task within a workflow run.
          - `ApprovalTask` — an approval task awaiting the user's review.
          - `OneOffTask` — a standalone one-off task.
          - `Acknowledgment` — a revision-acknowledgment request after a workflow update.
        required: false
        schema:
          $ref: '#/components/schemas/InboxItemType'
      - name: workflowId
        in: query
        description: Filter to a specific workflow. If the workflow does not exist
          or is inaccessible, the response is an empty page rather than an error.
        required: false
        schema:
          type: string
      - name: dueDateFrom
        in: query
        description: Due date range start (ISO-8601, e.g. 2024-01-15).
        required: false
        schema:
          type: string
      - name: dueDateTo
        in: query
        description: Due date range end (ISO-8601, e.g. 2024-01-31).
        required: false
        schema:
          type: string
      - name: snoozeStatus
        in: query
        description: |
          Filter by snooze status.

          - `Active` — non-snoozed items only.
          - `Snoozed` — items currently snoozed.

          Omit this filter to include both.
        required: false
        schema:
          $ref: '#/components/schemas/SnoozeStatus'
      - name: includeCompleted
        in: query
        description: Include completed items. Defaults to false.
        required: false
        schema:
          type: boolean
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiMyWorkItemListResponse'
        '400':
          description: 'Invalid value for: query parameter type, Invalid value for:
            query parameter snoozeStatus, Invalid value for: query parameter includeCompleted'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /work/items/search:
    post:
      tags:
      - My Work
      summary: Search My Work items
      description: |-
        Searches work items with complex filtering.
        Supports multi-value filters for assignees, types, and workflows, plus free-text search and sorting.
      operationId: searchMyWorkItems
      parameters:
      - name: _
        in: query
        description: |-
          Opaque pagination cursor. Take this value from the previous response's `links[]` entry whose `name`
          is `"next"` (typically just follow that link's `href` instead of reading this value).
          Omit on the first page. If the previous response had no `next` link, there are no more pages.
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchMyWorkItemsRequest'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiMyWorkItemListResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /work/items/{itemId}/snooze:
    post:
      tags:
      - My Work
      summary: Snooze a My Work item
      description: Snoozes the My Work item until the specified date. If already snoozed,
        updates the snooze date.
      operationId: snoozeMyWorkItem
      parameters:
      - name: itemId
        in: path
        description: The ID of the My Work item to snooze.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SnoozeMyWorkItemRequest'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiSnoozedAssignmentResponse'
        '400':
          description: 'Invalid value for: body'
          content:
            text/plain:
              schema:
                type: string
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
    delete:
      tags:
      - My Work
      summary: Unsnooze a My Work item
      description: Removes the snooze from the My Work item.
      operationId: unsnoozeMyWorkItem
      parameters:
      - name: itemId
        in: path
        description: The ID of the My Work item to unsnooze.
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
  /work/stats:
    get:
      tags:
      - My Work
      summary: Get My Work stats
      description: |-
        Returns total, upcoming, and overdue counts of work items assigned to the authenticated user.
        Use `assigneeEmail` to filter by a specific user, or omit to default to the authenticated user.
      operationId: getMyWorkStats
      parameters:
      - name: assigneeEmail
        in: query
        description: Filter by assignee email. Defaults to the authenticated user.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiMyWorkStatsResponse'
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      security:
      - apiKeyAuth: []
      - httpAuth: []
components:
  schemas:
    AndGroup:
      title: AndGroup
      type: object
      properties:
        and:
          description: List of conditions that must all match (AND combined within
            a group).
          type: array
          items:
            title: LeafCondition
            type: object
            required:
            - widgetId
            - operator
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              operator:
                description: Comparison operator (e.g. `Is`, `IsNot`, `Contains`,
                  `IsEmpty`).
                type: string
              value:
                description: The option's stored value.
                type: string
    AuditInfo:
      title: AuditInfo
      type: object
      required:
      - createdDate
      - createdById
      - updatedDate
      - updatedById
      properties:
        createdDate:
          description: When the resource was first created. ISO-8601 UTC.
          type: string
          format: date-time
        createdById:
          title: EntityID
          description: ID of the user who created the resource.
          type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedById:
          title: EntityID
          description: ID of the user who last modified the resource.
          type: string
    BusinessDaysHandlingMode:
      title: BusinessDaysHandlingMode
      description: How non-business days are handled when calculating the due date.
        `AllDays` counts every day. `BusinessDaysOnly` counts only Monday–Friday.
        `ShiftToNextBusinessDay` calculates using all days then moves a Saturday/Sunday
        result to the next Monday.
      type: string
      enum:
      - AllDays
      - BusinessDaysOnly
      - ShiftToNextBusinessDay
    ChangeType:
      title: ChangeType
      description: Whether the changes in this revision are significant. `Material`
        — substantial changes; bumps the major version (e.g. `1.3` → `2.0`). `NonMaterial`
        — minor edits like wording or typo fixes; bumps the minor version (e.g. `1.3`
        → `1.4`).
      type: string
      enum:
      - Material
      - NonMaterial
    ColumnType:
      title: ColumnType
      description: |
        Data type of the column.

        - `Text` — free-form string.
        - `Number` — numeric value.
        - `DateTime` — ISO-8601 date-time.
      type: string
      enum:
      - Text
      - DateTime
      - Number
    CreateCommentRequest:
      title: CreateCommentRequest
      type: object
      required:
      - workflowRunId
      - taskId
      - text
      properties:
        workflowRunId:
          description: The ID of the Workflow Run
          examples:
          - gvCtu9PlFKiJhY3YRJNIgA
          type: string
        taskId:
          description: The ID of the Task
          examples:
          - gvCtu9PlFKiJhY3YRJNIgA
          type: string
        text:
          type: string
          minLength: 1
    CreateDataSetFieldRequest:
      title: CreateDataSetFieldRequest
      type: object
      required:
      - name
      - fieldType
      properties:
        name:
          description: Display name.
          type: string
          minLength: 1
        fieldType:
          title: ColumnType
          description: |
            Data type of the column.

            - `Text` — free-form string.
            - `Number` — numeric value.
            - `DateTime` — ISO-8601 date-time.
          type: string
          enum:
          - Text
          - DateTime
          - Number
    CreateDataSetIncomingWebhookRequest:
      title: CreateDataSetIncomingWebhookRequest
      type: object
      required:
      - name
      - automationApp
      - config
      properties:
        name:
          description: Display name.
          type: string
        automationApp:
          type: string
        config:
          title: DataSetIncomingWebhookConfigRequest
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          required:
          - columns
          properties:
            columns:
              description: Cell values keyed by column ID.
              type: object
              additionalProperties:
                type: string
            keyColumn:
              description: Name of the column used as the unique key when reconciling
                rows on upsert.
              type: string
    CreateDataSetRequest:
      title: CreateDataSetRequest
      type: object
      required:
      - name
      properties:
        name:
          description: Display name.
          type: string
          minLength: 1
        fields:
          description: Form field definitions or column definitions, depending on
            context.
          type: array
          minItems: 1
          items:
            title: CreateDataSetFieldRequest
            type: object
            required:
            - name
            - fieldType
            properties:
              name:
                description: Display name.
                type: string
                minLength: 1
              fieldType:
                title: ColumnType
                description: |
                  Data type of the column.

                  - `Text` — free-form string.
                  - `Number` — numeric value.
                  - `DateTime` — ISO-8601 date-time.
                type: string
                enum:
                - Text
                - DateTime
                - Number
    CreateDataSetRowRequest:
      title: CreateDataSetRowRequest
      type: object
      properties:
        cells:
          type: array
          items:
            title: SimplifiedCell
            type: object
            required:
            - fieldId
            - value
            properties:
              fieldId:
                title: EntityID
                description: The ID of the form field.
                type: string
              value:
                description: The option's stored value.
                oneOf:
                - type: 'null'
                - type: number
                - type: string
    CreateDataSetRowResponse:
      title: CreateDataSetRowResponse
      type: object
      required:
      - id
      properties:
        id:
          description: The ID of the Data Set Record
          examples:
          - p1AG7nmSFwWG9Bpibv9F7Q
          type: string
    CreateDateFormFieldRequest:
      title: CreateDateFormFieldRequest
      type: object
      required:
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        config:
          title: PublicApiDateFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            defaultValue:
              description: Default value pre-filled when a new workflow run is created.
              type: string
            timeOption:
              description: |
                How time-of-day is handled on this Date field.

                - `Included` — the field always captures both date and time.
                - `Excluded` — date only; time is never captured.
                - `Optional` — the user picks whether to include a time.
              type: string
              enum:
              - Included
              - Excluded
              - Optional
        constraints:
          title: PublicApiDateFormFieldConstraints
          description: Field-specific validation constraints. Shape depends on `fieldType`.
          type: object
          properties:
            afterDate:
              description: Earliest accepted date (inclusive). Pair with `afterDateSourceType`.
              type: string
              format: date-time
            beforeDate:
              description: Latest accepted date (inclusive). Pair with `beforeDateSourceType`.
              type: string
              format: date-time
            afterDateFormFieldWidgetGroupId:
              title: EntityID
              description: When `afterDateSourceType=FormField`, the ID of the Date
                form field whose value is the lower bound.
              type: string
            beforeDateFormFieldWidgetGroupId:
              title: EntityID
              description: When `beforeDateSourceType=FormField`, the ID of the Date
                form field whose value is the upper bound.
              type: string
            afterDateSourceType:
              description: |
                How the before/after constraint date is derived.

                - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
                - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
                - `TaskDueDate` — relative to the containing task's due date.
                - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
              type: string
              enum:
              - SpecificDate
              - FormFieldValue
              - TaskDueDate
              - ChecklistStartDate
              - ChecklistDueDate
            beforeDateSourceType:
              description: |
                How the before/after constraint date is derived.

                - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
                - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
                - `TaskDueDate` — relative to the containing task's due date.
                - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
              type: string
              enum:
              - SpecificDate
              - FormFieldValue
              - TaskDueDate
              - ChecklistStartDate
              - ChecklistDueDate
            afterDateOffset:
              description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
              type: string
            beforeDateOffset:
              description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
              type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Date
    CreateDocumentFormFieldRequest:
      title: CreateDocumentFormFieldRequest
      type: object
      required:
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        config:
          title: PublicApiDocumentFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          required:
          - reviewRequest
          properties:
            reviewRequest:
              description: When `true`, the email requires explicit user review/send
                rather than auto-send.
              type: boolean
            defaultValue:
              description: Default value pre-filled when a new workflow run is created.
              type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Document
    CreateEmailFormFieldRequest:
      title: CreateEmailFormFieldRequest
      type: object
      required:
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        config:
          title: PublicApiEmailFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            placeholder:
              description: Placeholder hint shown in the input when no value has been
                entered.
              type: string
            defaultValue:
              description: Default value pre-filled when a new workflow run is created.
              type: string
        constraints:
          title: PublicApiEmailFormFieldConstraints
          description: Field-specific validation constraints. Shape depends on `fieldType`.
          type: object
          properties:
            domains:
              description: Allowed (or blocked, depending on `restriction`) email
                domains for this field.
              type: array
              items:
                type: string
            restriction:
              description: |
                How the `domains` list filters allowed email addresses.

                - `Allow` — only emails whose domain is in the list are accepted.
                - `Block` — emails whose domain is in the list are rejected; all others accepted.
              type: string
              enum:
              - Allow
              - Block
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Email
    CreateFileUploadRequest:
      title: CreateFileUploadRequest
      type: object
      required:
      - filename
      - contentType
      - sizeBytes
      properties:
        filename:
          description: The original file name, including its extension.
          type: string
          maxLength: 255
          minLength: 1
        contentType:
          description: The MIME type of the file (e.g. `application/pdf`). You must
            send this exact value as the `Content-Type` header when uploading to `uploadUrl`.
          type: string
          minLength: 1
        sizeBytes:
          description: The size of the file in bytes.
          type: integer
          format: int64
          minimum: 1
    CreateFolderRequest:
      title: CreateFolderRequest
      type: object
      required:
      - name
      properties:
        name:
          description: Display name.
          type: string
          minLength: 1
        parentFolderId:
          title: EntityID
          type: string
    CreateFormFieldWidgetRequest:
      title: CreateFormFieldWidgetRequest
      description: A form field widget. The `fieldType` discriminator selects the
        variant — see `fieldType` for what each value collects.
      oneOf:
      - title: CreateDateFormFieldRequest
        type: object
        required:
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          config:
            title: PublicApiDateFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
              timeOption:
                description: |
                  How time-of-day is handled on this Date field.

                  - `Included` — the field always captures both date and time.
                  - `Excluded` — date only; time is never captured.
                  - `Optional` — the user picks whether to include a time.
                type: string
                enum:
                - Included
                - Excluded
                - Optional
          constraints:
            title: PublicApiDateFormFieldConstraints
            description: Field-specific validation constraints. Shape depends on `fieldType`.
            type: object
            properties:
              afterDate:
                description: Earliest accepted date (inclusive). Pair with `afterDateSourceType`.
                type: string
                format: date-time
              beforeDate:
                description: Latest accepted date (inclusive). Pair with `beforeDateSourceType`.
                type: string
                format: date-time
              afterDateFormFieldWidgetGroupId:
                title: EntityID
                description: When `afterDateSourceType=FormField`, the ID of the Date
                  form field whose value is the lower bound.
                type: string
              beforeDateFormFieldWidgetGroupId:
                title: EntityID
                description: When `beforeDateSourceType=FormField`, the ID of the
                  Date form field whose value is the upper bound.
                type: string
              afterDateSourceType:
                description: |
                  How the before/after constraint date is derived.

                  - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
                  - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
                  - `TaskDueDate` — relative to the containing task's due date.
                  - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
                type: string
                enum:
                - SpecificDate
                - FormFieldValue
                - TaskDueDate
                - ChecklistStartDate
                - ChecklistDueDate
              beforeDateSourceType:
                description: |
                  How the before/after constraint date is derived.

                  - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
                  - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
                  - `TaskDueDate` — relative to the containing task's due date.
                  - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
                type: string
                enum:
                - SpecificDate
                - FormFieldValue
                - TaskDueDate
                - ChecklistStartDate
                - ChecklistDueDate
              afterDateOffset:
                description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
                type: string
              beforeDateOffset:
                description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
                type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Date
      - title: CreateDocumentFormFieldRequest
        type: object
        required:
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          config:
            title: PublicApiDocumentFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            required:
            - reviewRequest
            properties:
              reviewRequest:
                description: When `true`, the email requires explicit user review/send
                  rather than auto-send.
                type: boolean
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Document
      - title: CreateEmailFormFieldRequest
        type: object
        required:
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          config:
            title: PublicApiEmailFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              placeholder:
                description: Placeholder hint shown in the input when no value has
                  been entered.
                type: string
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
          constraints:
            title: PublicApiEmailFormFieldConstraints
            description: Field-specific validation constraints. Shape depends on `fieldType`.
            type: object
            properties:
              domains:
                description: Allowed (or blocked, depending on `restriction`) email
                  domains for this field.
                type: array
                items:
                  type: string
              restriction:
                description: |
                  How the `domains` list filters allowed email addresses.

                  - `Allow` — only emails whose domain is in the list are accepted.
                  - `Block` — emails whose domain is in the list are rejected; all others accepted.
                type: string
                enum:
                - Allow
                - Block
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Email
      - title: CreateHiddenFormFieldRequest
        type: object
        required:
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          config:
            title: PublicApiHiddenFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Hidden
      - title: CreateMembersFormFieldRequest
        type: object
        required:
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          config:
            title: PublicApiMembersFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
              groupId:
                title: EntityID
                description: The ID of an organization group.
                type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Members
      - title: CreateMultiChoiceFormFieldRequest
        type: object
        required:
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          config:
            title: PublicApiMultiChoiceFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              items:
                description: Available options for selection-style form fields.
                type: array
                items:
                  title: PublicApiFormFieldItem
                  type: object
                  required:
                  - name
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    name:
                      description: Display name.
                      type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: MultiChoice
      - title: CreateMultiFileFormFieldRequest
        type: object
        required:
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          config:
            title: PublicApiMultiFileFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              placeholder:
                description: Placeholder hint shown in the input when no value has
                  been entered.
                type: string
              extractTextContent:
                description: When `true`, server extracts text from uploaded documents
                  for use in merge tags.
                type: boolean
          constraints:
            title: PublicApiMultiFileFormFieldConstraints
            description: Field-specific validation constraints. Shape depends on `fieldType`.
            type: object
            properties:
              extensions:
                description: Allowed file extensions, including the leading dot (e.g.
                  `.pdf`, `.docx`).
                type: array
                items:
                  type: string
              mode:
                description: |
                  Whether the field accepts a single file or multiple files.

                  - `Single` — only one file may be uploaded.
                  - `Multiple` — multiple files may be uploaded.
                type: string
                enum:
                - Multiple
                - Single
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: MultiFile
      - title: CreateMultiSelectFormFieldRequest
        type: object
        required:
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          config:
            title: PublicApiMultiSelectFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              items:
                description: Available options for selection-style form fields.
                type: array
                items:
                  title: PublicApiFormFieldItem
                  type: object
                  required:
                  - name
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    name:
                      description: Display name.
                      type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: MultiSelect
      - title: CreateNumberFormFieldRequest
        type: object
        required:
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          config:
            title: PublicApiNumberFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              placeholder:
                description: Placeholder hint shown in the input when no value has
                  been entered.
                type: string
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
              unit:
                description: Unit label rendered next to the numeric value (e.g. `kg`,
                  `$`, `%`).
                type: string
              unitLocation:
                description: |
                  Where the unit symbol appears relative to the number.

                  - `prefix` — before the number (e.g. `$100`).
                  - `suffix` — after the number (e.g. `100 USD`).
                type: string
                enum:
                - prefix
                - suffix
          constraints:
            title: PublicApiNumberFormFieldConstraints
            description: Field-specific validation constraints. Shape depends on `fieldType`.
            type: object
            properties:
              minDigits:
                description: Minimum number of digits.
                type: integer
                format: int32
              maxDigits:
                description: Maximum number of digits.
                type: integer
                format: int32
              minValue:
                description: Minimum numeric value.
                type: integer
                format: int32
              maxValue:
                description: Maximum numeric value.
                type: integer
                format: int32
              decimalPlaces:
                description: Number of decimal places to accept (0 means integers
                  only).
                type: integer
                format: int32
              allowNegative:
                description: When `true`, negative numbers are accepted.
                type: boolean
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Number
      - title: CreateSelectFormFieldRequest
        type: object
        required:
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          config:
            title: PublicApiSelectFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              items:
                description: Available options for selection-style form fields.
                type: array
                items:
                  title: PublicApiFormFieldItem
                  type: object
                  required:
                  - name
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    name:
                      description: Display name.
                      type: string
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Select
      - title: CreateSendRichEmailFormFieldRequest
        type: object
        required:
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          config:
            title: PublicApiSendRichEmailFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            required:
            - bodyEditor
            properties:
              to:
                description: Default recipient list (To). Comma-separated email addresses
                  or merge tags.
                type: array
                items:
                  type: string
              cc:
                description: Default CC list. Comma-separated email addresses or merge
                  tags.
                type: array
                items:
                  type: string
              bcc:
                description: Default BCC list. Comma-separated email addresses or
                  merge tags.
                type: array
                items:
                  type: string
              replyTo:
                description: Default Reply-To address. An email address or merge tag.
                type: array
                items:
                  type: string
              subject:
                description: Default email subject. May contain merge tags.
                type: string
              body:
                description: Default email body. May contain merge tags.
                type: string
              bodyEditor:
                description: |
                  Editor used to author the email body.

                  - `RichText` — rich-text editor with formatting.
                  - `HTML` — raw HTML editor.
                  - `PlainText` — plain text editor.
                type: string
                enum:
                - RichText
                - HTML
                - PlainText
              editAllowed:
                description: When `true`, users running the workflow can edit the
                  email before sending.
                type: boolean
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: SendRichEmail
      - title: CreateSnippetFormFieldRequest
        type: object
        required:
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          config:
            title: PublicApiSnippetFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              value:
                description: The option's stored value.
                type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Snippet
      - title: CreateTableFormFieldRequest
        type: object
        required:
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          config:
            title: PublicApiTableFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              columnDefs:
                description: Data set column definitions (name + type per column).
                type: array
                items:
                  title: PublicApiTableFormFieldColumn
                  type: object
                  required:
                  - id
                  - name
                  - columnType
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    name:
                      description: Display name.
                      type: string
                    columnType:
                      description: |
                        Data type a Table column accepts.

                        - `Text` — free-form short text.
                      type: string
                      enum:
                      - Text
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Table
      - title: CreateTextFormFieldRequest
        type: object
        required:
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          config:
            title: PublicApiTextFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              placeholder:
                description: Placeholder hint shown in the input when no value has
                  been entered.
                type: string
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
          constraints:
            title: PublicApiTextFormFieldConstraints
            description: Field-specific validation constraints. Shape depends on `fieldType`.
            type: object
            properties:
              min:
                description: Inclusive lower bound.
                type: integer
                format: int32
              max:
                description: Inclusive upper bound.
                type: integer
                format: int32
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Text
      - title: CreateTextareaFormFieldRequest
        type: object
        required:
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          config:
            title: PublicApiTextareaFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              placeholder:
                description: Placeholder hint shown in the input when no value has
                  been entered.
                type: string
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
              format:
                description: |
                  Editor style for this Textarea field.

                  - `PlainText` — plain text.
                  - `RichText` — rich-text editor with formatting (bold, lists, links, etc.).
                type: string
                enum:
                - PlainText
                - RichText
          constraints:
            title: PublicApiTextareaFormFieldConstraints
            description: Field-specific validation constraints. Shape depends on `fieldType`.
            type: object
            properties:
              min:
                description: Inclusive lower bound.
                type: integer
                format: int32
              max:
                description: Inclusive upper bound.
                type: integer
                format: int32
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Textarea
      - title: CreateUrlFormFieldRequest
        type: object
        required:
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          config:
            title: PublicApiUrlFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Url
      discriminator:
        propertyName: fieldType
        mapping:
          Date: '#/components/schemas/CreateDateFormFieldRequest'
          Document: '#/components/schemas/CreateDocumentFormFieldRequest'
          Email: '#/components/schemas/CreateEmailFormFieldRequest'
          Hidden: '#/components/schemas/CreateHiddenFormFieldRequest'
          Members: '#/components/schemas/CreateMembersFormFieldRequest'
          MultiChoice: '#/components/schemas/CreateMultiChoiceFormFieldRequest'
          MultiFile: '#/components/schemas/CreateMultiFileFormFieldRequest'
          MultiSelect: '#/components/schemas/CreateMultiSelectFormFieldRequest'
          Number: '#/components/schemas/CreateNumberFormFieldRequest'
          Select: '#/components/schemas/CreateSelectFormFieldRequest'
          SendRichEmail: '#/components/schemas/CreateSendRichEmailFormFieldRequest'
          Snippet: '#/components/schemas/CreateSnippetFormFieldRequest'
          Table: '#/components/schemas/CreateTableFormFieldRequest'
          Text: '#/components/schemas/CreateTextFormFieldRequest'
          Textarea: '#/components/schemas/CreateTextareaFormFieldRequest'
          Url: '#/components/schemas/CreateUrlFormFieldRequest'
    CreateHiddenFormFieldRequest:
      title: CreateHiddenFormFieldRequest
      type: object
      required:
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        config:
          title: PublicApiHiddenFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            defaultValue:
              description: Default value pre-filled when a new workflow run is created.
              type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Hidden
    CreateMembersFormFieldRequest:
      title: CreateMembersFormFieldRequest
      type: object
      required:
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        config:
          title: PublicApiMembersFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            defaultValue:
              description: Default value pre-filled when a new workflow run is created.
              type: string
            groupId:
              title: EntityID
              description: The ID of an organization group.
              type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Members
    CreateMultiChoiceFormFieldRequest:
      title: CreateMultiChoiceFormFieldRequest
      type: object
      required:
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        config:
          title: PublicApiMultiChoiceFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            items:
              description: Available options for selection-style form fields.
              type: array
              items:
                title: PublicApiFormFieldItem
                type: object
                required:
                - name
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  name:
                    description: Display name.
                    type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: MultiChoice
    CreateMultiFileFormFieldRequest:
      title: CreateMultiFileFormFieldRequest
      type: object
      required:
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        config:
          title: PublicApiMultiFileFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            placeholder:
              description: Placeholder hint shown in the input when no value has been
                entered.
              type: string
            extractTextContent:
              description: When `true`, server extracts text from uploaded documents
                for use in merge tags.
              type: boolean
        constraints:
          title: PublicApiMultiFileFormFieldConstraints
          description: Field-specific validation constraints. Shape depends on `fieldType`.
          type: object
          properties:
            extensions:
              description: Allowed file extensions, including the leading dot (e.g.
                `.pdf`, `.docx`).
              type: array
              items:
                type: string
            mode:
              description: |
                Whether the field accepts a single file or multiple files.

                - `Single` — only one file may be uploaded.
                - `Multiple` — multiple files may be uploaded.
              type: string
              enum:
              - Multiple
              - Single
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: MultiFile
    CreateMultiSelectFormFieldRequest:
      title: CreateMultiSelectFormFieldRequest
      type: object
      required:
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        config:
          title: PublicApiMultiSelectFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            items:
              description: Available options for selection-style form fields.
              type: array
              items:
                title: PublicApiFormFieldItem
                type: object
                required:
                - name
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  name:
                    description: Display name.
                    type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: MultiSelect
    CreateNumberFormFieldRequest:
      title: CreateNumberFormFieldRequest
      type: object
      required:
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        config:
          title: PublicApiNumberFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            placeholder:
              description: Placeholder hint shown in the input when no value has been
                entered.
              type: string
            defaultValue:
              description: Default value pre-filled when a new workflow run is created.
              type: string
            unit:
              description: Unit label rendered next to the numeric value (e.g. `kg`,
                `$`, `%`).
              type: string
            unitLocation:
              description: |
                Where the unit symbol appears relative to the number.

                - `prefix` — before the number (e.g. `$100`).
                - `suffix` — after the number (e.g. `100 USD`).
              type: string
              enum:
              - prefix
              - suffix
        constraints:
          title: PublicApiNumberFormFieldConstraints
          description: Field-specific validation constraints. Shape depends on `fieldType`.
          type: object
          properties:
            minDigits:
              description: Minimum number of digits.
              type: integer
              format: int32
            maxDigits:
              description: Maximum number of digits.
              type: integer
              format: int32
            minValue:
              description: Minimum numeric value.
              type: integer
              format: int32
            maxValue:
              description: Maximum numeric value.
              type: integer
              format: int32
            decimalPlaces:
              description: Number of decimal places to accept (0 means integers only).
              type: integer
              format: int32
            allowNegative:
              description: When `true`, negative numbers are accepted.
              type: boolean
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Number
    CreateOneOffTaskRequest:
      title: CreateOneOffTaskRequest
      type: object
      required:
      - name
      - required
      properties:
        name:
          description: Display name.
          type: string
          minLength: 1
        description:
          description: Optional long-form description.
          type: string
        dueDate:
          description: Due date. ISO-8601 UTC.
          type: string
          format: date-time
        required:
          description: When `true`, the form field must have a value before its task
            can be completed.
          type: boolean
        linkedWorkflowRunId:
          title: EntityID
          type: string
        assigneeEmails:
          type: array
          minItems: 1
          items:
            type: string
        subtasks:
          type: array
          items:
            title: CreateSubtaskRequest
            type: object
            required:
            - name
            properties:
              name:
                description: Display name.
                type: string
                minLength: 1
    CreatePageCrossLinkWidgetRequest:
      title: CreatePageCrossLinkWidgetRequest
      type: object
      required:
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        linkedTemplateId:
          title: EntityID
          description: The ID of the linked workflow or page that this CrossLink widget
            points to.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: CrossLink
    CreatePageEmbedWidgetRequest:
      title: CreatePageEmbedWidgetRequest
      type: object
      required:
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        url:
          description: Target URL.
          type: string
          maxLength: 4000
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: Embed
    CreatePageFileWidgetRequest:
      title: CreatePageFileWidgetRequest
      type: object
      required:
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        description:
          description: Optional long-form description.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: File
    CreatePageImageWidgetRequest:
      title: CreatePageImageWidgetRequest
      type: object
      required:
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        caption:
          description: Caption text rendered with the image.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: Image
    CreatePageRequest:
      title: CreatePageRequest
      type: object
      required:
      - name
      - folderId
      properties:
        name:
          description: Display name.
          type: string
          maxLength: 255
          minLength: 1
        description:
          description: Optional free-form description of the page.
          type: string
          maxLength: 255
        folderId:
          title: EntityID
          description: The ID of the Folder.
          type: string
        shareLevel:
          description: Controls who can view this page. `None` — only organization
            members can view this page. `View` — anyone with the link can view this
            page.
          type: string
          enum:
          - None
          - View
        referenceId:
          description: Version prefix used when version control is enabled on this
            page. Combined with the version number to form the full version identifier.
          type: string
    CreatePageTextWidgetRequest:
      title: CreatePageTextWidgetRequest
      type: object
      required:
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        content:
          description: Rich text content. May contain merge tags.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: Text
    CreatePageVideoWidgetRequest:
      title: CreatePageVideoWidgetRequest
      type: object
      required:
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        description:
          description: Optional long-form description.
          type: string
        url:
          description: Target URL.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: Video
    CreatePageWidgetRequest:
      title: CreatePageWidgetRequest
      description: A widget on a page. The `type` discriminator selects the widget
        kind — `Text`, `Image`, `File`, `Video`, `Embed`, or `CrossLink`. Pages do
        not support form-field widgets.
      oneOf:
      - title: CreatePageCrossLinkWidgetRequest
        type: object
        required:
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          linkedTemplateId:
            title: EntityID
            description: The ID of the linked workflow or page that this CrossLink
              widget points to.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: CrossLink
      - title: CreatePageEmbedWidgetRequest
        type: object
        required:
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          url:
            description: Target URL.
            type: string
            maxLength: 4000
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: Embed
      - title: CreatePageFileWidgetRequest
        type: object
        required:
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          description:
            description: Optional long-form description.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: File
      - title: CreatePageImageWidgetRequest
        type: object
        required:
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          caption:
            description: Caption text rendered with the image.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: Image
      - title: CreatePageTextWidgetRequest
        type: object
        required:
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          content:
            description: Rich text content. May contain merge tags.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: Text
      - title: CreatePageVideoWidgetRequest
        type: object
        required:
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          description:
            description: Optional long-form description.
            type: string
          url:
            description: Target URL.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: Video
      discriminator:
        propertyName: type
        mapping:
          CrossLink: '#/components/schemas/CreatePageCrossLinkWidgetRequest'
          Embed: '#/components/schemas/CreatePageEmbedWidgetRequest'
          File: '#/components/schemas/CreatePageFileWidgetRequest'
          Image: '#/components/schemas/CreatePageImageWidgetRequest'
          Text: '#/components/schemas/CreatePageTextWidgetRequest'
          Video: '#/components/schemas/CreatePageVideoWidgetRequest'
    CreateScheduledWorkflowRequest:
      title: CreateScheduledWorkflowRequest
      type: object
      required:
      - workflowId
      - startDate
      - timeZone
      properties:
        workflowId:
          description: The ID of the Workflow
          examples:
          - r6JY2Dw_eC4czFS1mTlGYA
          type: string
        name:
          description: Display name.
          type: string
        startDate:
          type: string
          format: date-time
        timeZone:
          type: string
        duePeriod:
          type: string
        rules:
          type: array
          items:
            title: PublicApiScheduledWorkflowRule
            oneOf:
            - title: Daily
              type: object
              required:
              - interval
              - frequency
              properties:
                interval:
                  description: Recurrence interval. For a Weekly schedule with `interval=2`,
                    fires every other week.
                  type: integer
                  format: int32
                frequency:
                  description: |-
                    How often the workflow runs. The other fields on the rule depend on this value:
                    `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
                  type: string
                  enum:
                  - Daily
                  - Weekly
                  - Monthly
                  - Yearly
                  const: Daily
            - title: Monthly
              type: object
              required:
              - interval
              - by
              - frequency
              properties:
                interval:
                  description: Recurrence interval. For a Weekly schedule with `interval=2`,
                    fires every other week.
                  type: integer
                  format: int32
                by:
                  description: |-
                    How a `Monthly` rule recurs:
                    `DayOfMonth` repeats on the same calendar date each month (e.g. the 15th);
                    `DayOfWeek` repeats on the same weekday-of-month pattern (e.g. the second Tuesday).
                  type: string
                  enum:
                  - DayOfMonth
                  - DayOfWeek
                frequency:
                  description: |-
                    How often the workflow runs. The other fields on the rule depend on this value:
                    `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
                  type: string
                  enum:
                  - Daily
                  - Weekly
                  - Monthly
                  - Yearly
                  const: Monthly
            - title: Weekly
              type: object
              required:
              - interval
              - weekDay
              - frequency
              properties:
                interval:
                  description: Recurrence interval. For a Weekly schedule with `interval=2`,
                    fires every other week.
                  type: integer
                  format: int32
                weekDay:
                  description: Day of the week the workflow runs on. Only used by
                    `Weekly` rules.
                  type: string
                  enum:
                  - Sunday
                  - Monday
                  - Tuesday
                  - Wednesday
                  - Thursday
                  - Friday
                  - Saturday
                frequency:
                  description: |-
                    How often the workflow runs. The other fields on the rule depend on this value:
                    `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
                  type: string
                  enum:
                  - Daily
                  - Weekly
                  - Monthly
                  - Yearly
                  const: Weekly
            - title: Yearly
              type: object
              required:
              - interval
              - frequency
              properties:
                interval:
                  description: Recurrence interval. For a Weekly schedule with `interval=2`,
                    fires every other week.
                  type: integer
                  format: int32
                frequency:
                  description: |-
                    How often the workflow runs. The other fields on the rule depend on this value:
                    `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
                  type: string
                  enum:
                  - Daily
                  - Weekly
                  - Monthly
                  - Yearly
                  const: Yearly
            discriminator:
              propertyName: frequency
              mapping:
                Daily: '#/components/schemas/Daily'
                Monthly: '#/components/schemas/Monthly'
                Weekly: '#/components/schemas/Weekly'
                Yearly: '#/components/schemas/Yearly'
        assigneeEmails:
          type: array
          items:
            type: string
    CreateSelectFormFieldRequest:
      title: CreateSelectFormFieldRequest
      type: object
      required:
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        config:
          title: PublicApiSelectFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            items:
              description: Available options for selection-style form fields.
              type: array
              items:
                title: PublicApiFormFieldItem
                type: object
                required:
                - name
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  name:
                    description: Display name.
                    type: string
            defaultValue:
              description: Default value pre-filled when a new workflow run is created.
              type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Select
    CreateSendRichEmailFormFieldRequest:
      title: CreateSendRichEmailFormFieldRequest
      type: object
      required:
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        config:
          title: PublicApiSendRichEmailFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          required:
          - bodyEditor
          properties:
            to:
              description: Default recipient list (To). Comma-separated email addresses
                or merge tags.
              type: array
              items:
                type: string
            cc:
              description: Default CC list. Comma-separated email addresses or merge
                tags.
              type: array
              items:
                type: string
            bcc:
              description: Default BCC list. Comma-separated email addresses or merge
                tags.
              type: array
              items:
                type: string
            replyTo:
              description: Default Reply-To address. An email address or merge tag.
              type: array
              items:
                type: string
            subject:
              description: Default email subject. May contain merge tags.
              type: string
            body:
              description: Default email body. May contain merge tags.
              type: string
            bodyEditor:
              description: |
                Editor used to author the email body.

                - `RichText` — rich-text editor with formatting.
                - `HTML` — raw HTML editor.
                - `PlainText` — plain text editor.
              type: string
              enum:
              - RichText
              - HTML
              - PlainText
            editAllowed:
              description: When `true`, users running the workflow can edit the email
                before sending.
              type: boolean
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: SendRichEmail
    CreateSnippetFormFieldRequest:
      title: CreateSnippetFormFieldRequest
      type: object
      required:
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        config:
          title: PublicApiSnippetFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            value:
              description: The option's stored value.
              type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Snippet
    CreateSubtaskRequest:
      title: CreateSubtaskRequest
      type: object
      required:
      - name
      properties:
        name:
          description: Display name.
          type: string
          minLength: 1
    CreateTableFormFieldRequest:
      title: CreateTableFormFieldRequest
      type: object
      required:
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        config:
          title: PublicApiTableFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            columnDefs:
              description: Data set column definitions (name + type per column).
              type: array
              items:
                title: PublicApiTableFormFieldColumn
                type: object
                required:
                - id
                - name
                - columnType
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  name:
                    description: Display name.
                    type: string
                  columnType:
                    description: |
                      Data type a Table column accepts.

                      - `Text` — free-form short text.
                    type: string
                    enum:
                    - Text
            defaultValue:
              description: Default value pre-filled when a new workflow run is created.
              type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Table
    CreateTextFormFieldRequest:
      title: CreateTextFormFieldRequest
      type: object
      required:
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        config:
          title: PublicApiTextFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            placeholder:
              description: Placeholder hint shown in the input when no value has been
                entered.
              type: string
            defaultValue:
              description: Default value pre-filled when a new workflow run is created.
              type: string
        constraints:
          title: PublicApiTextFormFieldConstraints
          description: Field-specific validation constraints. Shape depends on `fieldType`.
          type: object
          properties:
            min:
              description: Inclusive lower bound.
              type: integer
              format: int32
            max:
              description: Inclusive upper bound.
              type: integer
              format: int32
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Text
    CreateTextareaFormFieldRequest:
      title: CreateTextareaFormFieldRequest
      type: object
      required:
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        config:
          title: PublicApiTextareaFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            placeholder:
              description: Placeholder hint shown in the input when no value has been
                entered.
              type: string
            defaultValue:
              description: Default value pre-filled when a new workflow run is created.
              type: string
            format:
              description: |
                Editor style for this Textarea field.

                - `PlainText` — plain text.
                - `RichText` — rich-text editor with formatting (bold, lists, links, etc.).
              type: string
              enum:
              - PlainText
              - RichText
        constraints:
          title: PublicApiTextareaFormFieldConstraints
          description: Field-specific validation constraints. Shape depends on `fieldType`.
          type: object
          properties:
            min:
              description: Inclusive lower bound.
              type: integer
              format: int32
            max:
              description: Inclusive upper bound.
              type: integer
              format: int32
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Textarea
    CreateUrlFormFieldRequest:
      title: CreateUrlFormFieldRequest
      type: object
      required:
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        config:
          title: PublicApiUrlFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            defaultValue:
              description: Default value pre-filled when a new workflow run is created.
              type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Url
    CreateWebhookRequest:
      title: CreateWebhookRequest
      type: object
      required:
      - url
      properties:
        url:
          description: Target URL.
          type: string
        triggers:
          type: array
          uniqueItems: true
          items:
            description: Event that fires this webhook. `TaskChecked` — a task was
              checked off. `TaskUnchecked` — a previously checked task was unchecked.
              `TaskCheckedUnchecked` — either of the above. `TaskReady` — a task became
              ready to be worked on (no longer hidden or blocked by an earlier stop).
              `WorkflowRunCreated` — a new workflow run was created. `WorkflowRunCompleted`
              — a workflow run was marked complete.
            type: string
            enum:
            - TaskChecked
            - TaskUnchecked
            - TaskCheckedUnchecked
            - TaskReady
            - WorkflowRunCreated
            - WorkflowRunCompleted
        workflowId:
          title: EntityID
          description: The ID of the Workflow.
          type: string
        taskId:
          title: EntityID
          description: The ID of the Task.
          type: string
    CreateWorkflowCrossLinkWidgetRequest:
      title: CreateWorkflowCrossLinkWidgetRequest
      type: object
      required:
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        linkedTemplateId:
          title: EntityID
          description: The ID of the linked workflow or page that this CrossLink widget
            points to.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - FormField
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: CrossLink
    CreateWorkflowEmbedWidgetRequest:
      title: CreateWorkflowEmbedWidgetRequest
      type: object
      required:
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        url:
          description: Target URL.
          type: string
          maxLength: 4000
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - FormField
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: Embed
    CreateWorkflowFileWidgetRequest:
      title: CreateWorkflowFileWidgetRequest
      type: object
      required:
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        description:
          description: Optional long-form description.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - FormField
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: File
    CreateWorkflowImageWidgetRequest:
      title: CreateWorkflowImageWidgetRequest
      type: object
      required:
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        caption:
          description: Caption text rendered with the image.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - FormField
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: Image
    CreateWorkflowIncomingWebhookConfigRequest:
      title: CreateWorkflowIncomingWebhookConfigRequest
      type: object
      properties:
        properties:
          description: Mapping from workflow-run property names (e.g. `Name`, `DueDate`,
            `Assignees`) to JSONPath expressions in the incoming payload.
          type: object
          additionalProperties:
            type: string
        formFields:
          description: Mapping from form-field IDs to JSONPath expressions in the
            incoming payload.
          type: object
          additionalProperties:
            type: string
    CreateWorkflowIncomingWebhookRequest:
      title: CreateWorkflowIncomingWebhookRequest
      type: object
      required:
      - name
      - automationApp
      - config
      properties:
        name:
          description: Display name.
          type: string
        automationApp:
          type: string
        config:
          title: CreateWorkflowIncomingWebhookConfigRequest
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            properties:
              description: Mapping from workflow-run property names (e.g. `Name`,
                `DueDate`, `Assignees`) to JSONPath expressions in the incoming payload.
              type: object
              additionalProperties:
                type: string
            formFields:
              description: Mapping from form-field IDs to JSONPath expressions in
                the incoming payload.
              type: object
              additionalProperties:
                type: string
    CreateWorkflowLogicRuleRequest:
      title: CreateWorkflowLogicRuleRequest
      type: object
      required:
      - condition
      - action
      - targets
      properties:
        condition:
          title: OrCondition
          type: object
          properties:
            or:
              description: List of AND-groups; the OR-condition matches if any group
                matches.
              type: array
              items:
                title: AndGroup
                type: object
                properties:
                  and:
                    description: List of conditions that must all match (AND combined
                      within a group).
                    type: array
                    items:
                      title: LeafCondition
                      type: object
                      required:
                      - widgetId
                      - operator
                      properties:
                        widgetId:
                          title: EntityID
                          description: The ID of the widget.
                          type: string
                        operator:
                          description: Comparison operator (e.g. `Is`, `IsNot`, `Contains`,
                            `IsEmpty`).
                          type: string
                        value:
                          description: The option's stored value.
                          type: string
        action:
          title: WorkflowLogicRuleAction
          description: What the rule does to its targets when conditions match. `Show`
            reveals tasks/widgets that are hidden by default. `Hide` conceals tasks/widgets
            that are visible by default.
          type: string
          enum:
          - Show
          - Hide
        targets:
          title: PublicApiTargets
          type: object
          properties:
            taskIds:
              description: IDs of the tasks this rule applies to.
              type: array
              items:
                title: EntityID
                type: string
            widgetIds:
              description: IDs of the widgets (form fields) this rule applies to.
              type: array
              items:
                title: EntityID
                type: string
        position:
          title: RulePosition
          description: Where to place this logic rule in the workflow revision. `Top`
            — before all existing rules. `Bottom` — after all existing rules (default
            when `position` is omitted). `After` — immediately after the rule identified
            by `ruleId`.
          oneOf:
          - title: RulePositionAfter
            type: object
            required:
            - ruleId
            - type
            properties:
              ruleId:
                title: EntityID
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: RulePositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: RulePositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/RulePositionAfter'
              Bottom: '#/components/schemas/RulePositionBottom'
              Top: '#/components/schemas/RulePositionTop'
        description:
          description: Optional long-form description.
          type: string
          maxLength: 255
    CreateWorkflowRequest:
      title: CreateWorkflowRequest
      type: object
      required:
      - name
      - folderId
      - shareLevel
      - runLinkShareLevel
      - allowComments
      - sharedRunsByDefault
      properties:
        name:
          description: Display name.
          type: string
          maxLength: 255
          minLength: 1
        description:
          description: Optional free-form description of the workflow.
          type: string
          maxLength: 255
        folderId:
          description: The ID of the Folder
          examples:
          - p8IlHo0KyMzFjh8J5ilJKg
          type: string
        shareLevel:
          description: Controls who can access this workflow. `None` — only organization
            members can view and run this workflow (when permitted). `Overview` —
            used only for Forms; viewers see the form name and background image but
            not the content. `View` — anyone with the link can view this workflow.
            `Run` — anyone with the link can view and run this workflow.
          type: string
          enum:
          - None
          - Overview
          - View
          - Run
        runLinkShareLevel:
          description: Controls who can run this workflow via a run link. `Organization`
            — only authenticated organization members with run permission can use
            the run link. `Public` — anyone with the link can run the workflow without
            a Process Street account; all runs created from a public link are automatically
            shared.
          type: string
          enum:
          - Organization
          - Public
        allowComments:
          description: When `true`, comments are enabled on workflow runs created
            from this workflow.
          type: boolean
        sharedRunsByDefault:
          description: When `true`, new workflow runs created from this workflow have
            their share link enabled by default. Recipients of the share link can
            fill in form fields and complete tasks without a Process Street account.
          type: boolean
        referenceId:
          description: Version prefix used when version control is enabled on this
            workflow. Combined with the version number to form the full version identifier.
          type: string
          maxLength: 100
    CreateWorkflowRunRequest:
      title: CreateWorkflowRunRequest
      type: object
      maxLength: 1024
      required:
      - workflowId
      properties:
        workflowId:
          description: The ID of the Workflow
          examples:
          - owYeKF_7YGcFaWyuqi9HDw
          type: string
        name:
          description: The name of the new Workflow Run
          type: string
        dueDate:
          description: The due date of the new Workflow Run (Optional)
          type: string
          format: date-time
        shared:
          type: boolean
    CreateWorkflowRunResponse:
      title: CreateWorkflowRunResponse
      type: object
      required:
      - id
      properties:
        id:
          description: The ID of the Workflow Run
          examples:
          - jbWjaQVRggfdMNtGYflLTw
          type: string
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    CreateWorkflowTaskRequest:
      title: CreateWorkflowTaskRequest
      type: object
      properties:
        name:
          description: Display name.
          type: string
          maxLength: 255
        taskType:
          title: TaskType
          description: |
            What the task does.

            - `Standard` — a regular task that a user manually checks off when done.
            - `Approval` — an approval task; a reviewer approves or rejects it, gating subsequent tasks.
            - `AI` — an automated task that runs an AI prompt to populate form field values.
            - `Code` — an automated task that runs a custom code snippet.
          type: string
          enum:
          - Standard
          - Approval
          - AI
          - Code
        stop:
          type: boolean
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        dueOffset:
          type: string
        position:
          title: TaskPosition
          description: Where to place this task in the workflow revision. `Top` —
            before all existing tasks. `Bottom` — after all existing tasks (default
            when `position` is omitted). `After` — immediately after the task identified
            by `taskId`.
          oneOf:
          - title: TaskPositionAfter
            type: object
            required:
            - taskId
            - type
            properties:
              taskId:
                title: EntityID
                description: The ID of the Task.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: TaskPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: TaskPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/TaskPositionAfter'
              Bottom: '#/components/schemas/TaskPositionBottom'
              Top: '#/components/schemas/TaskPositionTop'
    CreateWorkflowTextWidgetRequest:
      title: CreateWorkflowTextWidgetRequest
      type: object
      required:
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        content:
          description: Rich text content. May contain merge tags.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - FormField
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: Text
    CreateWorkflowVideoWidgetRequest:
      title: CreateWorkflowVideoWidgetRequest
      type: object
      required:
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        description:
          description: Optional long-form description.
          type: string
        url:
          description: Target URL.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - FormField
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: Video
    CreateWorkflowWidgetRequest:
      title: CreateWorkflowWidgetRequest
      description: A widget on a workflow task. The `type` discriminator selects the
        widget kind — `FormField` (collects user input — further discriminated by
        `fieldType`), `Text`, `Image`, `File`, `Video`, `Embed`, or `CrossLink`.
      oneOf:
      - title: CreateFormFieldWidgetRequest
        description: A form field widget. The `fieldType` discriminator selects the
          variant — see `fieldType` for what each value collects.
        oneOf:
        - title: CreateDateFormFieldRequest
          type: object
          required:
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            config:
              title: PublicApiDateFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
                timeOption:
                  description: |
                    How time-of-day is handled on this Date field.

                    - `Included` — the field always captures both date and time.
                    - `Excluded` — date only; time is never captured.
                    - `Optional` — the user picks whether to include a time.
                  type: string
                  enum:
                  - Included
                  - Excluded
                  - Optional
            constraints:
              title: PublicApiDateFormFieldConstraints
              description: Field-specific validation constraints. Shape depends on
                `fieldType`.
              type: object
              properties:
                afterDate:
                  description: Earliest accepted date (inclusive). Pair with `afterDateSourceType`.
                  type: string
                  format: date-time
                beforeDate:
                  description: Latest accepted date (inclusive). Pair with `beforeDateSourceType`.
                  type: string
                  format: date-time
                afterDateFormFieldWidgetGroupId:
                  title: EntityID
                  description: When `afterDateSourceType=FormField`, the ID of the
                    Date form field whose value is the lower bound.
                  type: string
                beforeDateFormFieldWidgetGroupId:
                  title: EntityID
                  description: When `beforeDateSourceType=FormField`, the ID of the
                    Date form field whose value is the upper bound.
                  type: string
                afterDateSourceType:
                  description: |
                    How the before/after constraint date is derived.

                    - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
                    - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
                    - `TaskDueDate` — relative to the containing task's due date.
                    - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
                  type: string
                  enum:
                  - SpecificDate
                  - FormFieldValue
                  - TaskDueDate
                  - ChecklistStartDate
                  - ChecklistDueDate
                beforeDateSourceType:
                  description: |
                    How the before/after constraint date is derived.

                    - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
                    - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
                    - `TaskDueDate` — relative to the containing task's due date.
                    - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
                  type: string
                  enum:
                  - SpecificDate
                  - FormFieldValue
                  - TaskDueDate
                  - ChecklistStartDate
                  - ChecklistDueDate
                afterDateOffset:
                  description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
                  type: string
                beforeDateOffset:
                  description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
                  type: string
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Date
        - title: CreateDocumentFormFieldRequest
          type: object
          required:
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            config:
              title: PublicApiDocumentFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              required:
              - reviewRequest
              properties:
                reviewRequest:
                  description: When `true`, the email requires explicit user review/send
                    rather than auto-send.
                  type: boolean
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Document
        - title: CreateEmailFormFieldRequest
          type: object
          required:
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            config:
              title: PublicApiEmailFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                placeholder:
                  description: Placeholder hint shown in the input when no value has
                    been entered.
                  type: string
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
            constraints:
              title: PublicApiEmailFormFieldConstraints
              description: Field-specific validation constraints. Shape depends on
                `fieldType`.
              type: object
              properties:
                domains:
                  description: Allowed (or blocked, depending on `restriction`) email
                    domains for this field.
                  type: array
                  items:
                    type: string
                restriction:
                  description: |
                    How the `domains` list filters allowed email addresses.

                    - `Allow` — only emails whose domain is in the list are accepted.
                    - `Block` — emails whose domain is in the list are rejected; all others accepted.
                  type: string
                  enum:
                  - Allow
                  - Block
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Email
        - title: CreateHiddenFormFieldRequest
          type: object
          required:
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            config:
              title: PublicApiHiddenFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Hidden
        - title: CreateMembersFormFieldRequest
          type: object
          required:
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            config:
              title: PublicApiMembersFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
                groupId:
                  title: EntityID
                  description: The ID of an organization group.
                  type: string
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Members
        - title: CreateMultiChoiceFormFieldRequest
          type: object
          required:
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            config:
              title: PublicApiMultiChoiceFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                items:
                  description: Available options for selection-style form fields.
                  type: array
                  items:
                    title: PublicApiFormFieldItem
                    type: object
                    required:
                    - name
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      name:
                        description: Display name.
                        type: string
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: MultiChoice
        - title: CreateMultiFileFormFieldRequest
          type: object
          required:
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            config:
              title: PublicApiMultiFileFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                placeholder:
                  description: Placeholder hint shown in the input when no value has
                    been entered.
                  type: string
                extractTextContent:
                  description: When `true`, server extracts text from uploaded documents
                    for use in merge tags.
                  type: boolean
            constraints:
              title: PublicApiMultiFileFormFieldConstraints
              description: Field-specific validation constraints. Shape depends on
                `fieldType`.
              type: object
              properties:
                extensions:
                  description: Allowed file extensions, including the leading dot
                    (e.g. `.pdf`, `.docx`).
                  type: array
                  items:
                    type: string
                mode:
                  description: |
                    Whether the field accepts a single file or multiple files.

                    - `Single` — only one file may be uploaded.
                    - `Multiple` — multiple files may be uploaded.
                  type: string
                  enum:
                  - Multiple
                  - Single
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: MultiFile
        - title: CreateMultiSelectFormFieldRequest
          type: object
          required:
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            config:
              title: PublicApiMultiSelectFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                items:
                  description: Available options for selection-style form fields.
                  type: array
                  items:
                    title: PublicApiFormFieldItem
                    type: object
                    required:
                    - name
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      name:
                        description: Display name.
                        type: string
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: MultiSelect
        - title: CreateNumberFormFieldRequest
          type: object
          required:
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            config:
              title: PublicApiNumberFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                placeholder:
                  description: Placeholder hint shown in the input when no value has
                    been entered.
                  type: string
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
                unit:
                  description: Unit label rendered next to the numeric value (e.g.
                    `kg`, `$`, `%`).
                  type: string
                unitLocation:
                  description: |
                    Where the unit symbol appears relative to the number.

                    - `prefix` — before the number (e.g. `$100`).
                    - `suffix` — after the number (e.g. `100 USD`).
                  type: string
                  enum:
                  - prefix
                  - suffix
            constraints:
              title: PublicApiNumberFormFieldConstraints
              description: Field-specific validation constraints. Shape depends on
                `fieldType`.
              type: object
              properties:
                minDigits:
                  description: Minimum number of digits.
                  type: integer
                  format: int32
                maxDigits:
                  description: Maximum number of digits.
                  type: integer
                  format: int32
                minValue:
                  description: Minimum numeric value.
                  type: integer
                  format: int32
                maxValue:
                  description: Maximum numeric value.
                  type: integer
                  format: int32
                decimalPlaces:
                  description: Number of decimal places to accept (0 means integers
                    only).
                  type: integer
                  format: int32
                allowNegative:
                  description: When `true`, negative numbers are accepted.
                  type: boolean
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Number
        - title: CreateSelectFormFieldRequest
          type: object
          required:
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            config:
              title: PublicApiSelectFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                items:
                  description: Available options for selection-style form fields.
                  type: array
                  items:
                    title: PublicApiFormFieldItem
                    type: object
                    required:
                    - name
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      name:
                        description: Display name.
                        type: string
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Select
        - title: CreateSendRichEmailFormFieldRequest
          type: object
          required:
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            config:
              title: PublicApiSendRichEmailFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              required:
              - bodyEditor
              properties:
                to:
                  description: Default recipient list (To). Comma-separated email
                    addresses or merge tags.
                  type: array
                  items:
                    type: string
                cc:
                  description: Default CC list. Comma-separated email addresses or
                    merge tags.
                  type: array
                  items:
                    type: string
                bcc:
                  description: Default BCC list. Comma-separated email addresses or
                    merge tags.
                  type: array
                  items:
                    type: string
                replyTo:
                  description: Default Reply-To address. An email address or merge
                    tag.
                  type: array
                  items:
                    type: string
                subject:
                  description: Default email subject. May contain merge tags.
                  type: string
                body:
                  description: Default email body. May contain merge tags.
                  type: string
                bodyEditor:
                  description: |
                    Editor used to author the email body.

                    - `RichText` — rich-text editor with formatting.
                    - `HTML` — raw HTML editor.
                    - `PlainText` — plain text editor.
                  type: string
                  enum:
                  - RichText
                  - HTML
                  - PlainText
                editAllowed:
                  description: When `true`, users running the workflow can edit the
                    email before sending.
                  type: boolean
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: SendRichEmail
        - title: CreateSnippetFormFieldRequest
          type: object
          required:
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            config:
              title: PublicApiSnippetFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                value:
                  description: The option's stored value.
                  type: string
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Snippet
        - title: CreateTableFormFieldRequest
          type: object
          required:
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            config:
              title: PublicApiTableFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                columnDefs:
                  description: Data set column definitions (name + type per column).
                  type: array
                  items:
                    title: PublicApiTableFormFieldColumn
                    type: object
                    required:
                    - id
                    - name
                    - columnType
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      name:
                        description: Display name.
                        type: string
                      columnType:
                        description: |
                          Data type a Table column accepts.

                          - `Text` — free-form short text.
                        type: string
                        enum:
                        - Text
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Table
        - title: CreateTextFormFieldRequest
          type: object
          required:
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            config:
              title: PublicApiTextFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                placeholder:
                  description: Placeholder hint shown in the input when no value has
                    been entered.
                  type: string
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
            constraints:
              title: PublicApiTextFormFieldConstraints
              description: Field-specific validation constraints. Shape depends on
                `fieldType`.
              type: object
              properties:
                min:
                  description: Inclusive lower bound.
                  type: integer
                  format: int32
                max:
                  description: Inclusive upper bound.
                  type: integer
                  format: int32
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Text
        - title: CreateTextareaFormFieldRequest
          type: object
          required:
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            config:
              title: PublicApiTextareaFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                placeholder:
                  description: Placeholder hint shown in the input when no value has
                    been entered.
                  type: string
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
                format:
                  description: |
                    Editor style for this Textarea field.

                    - `PlainText` — plain text.
                    - `RichText` — rich-text editor with formatting (bold, lists, links, etc.).
                  type: string
                  enum:
                  - PlainText
                  - RichText
            constraints:
              title: PublicApiTextareaFormFieldConstraints
              description: Field-specific validation constraints. Shape depends on
                `fieldType`.
              type: object
              properties:
                min:
                  description: Inclusive lower bound.
                  type: integer
                  format: int32
                max:
                  description: Inclusive upper bound.
                  type: integer
                  format: int32
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Textarea
        - title: CreateUrlFormFieldRequest
          type: object
          required:
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            config:
              title: PublicApiUrlFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Url
        discriminator:
          propertyName: fieldType
          mapping:
            Date: '#/components/schemas/CreateDateFormFieldRequest'
            Document: '#/components/schemas/CreateDocumentFormFieldRequest'
            Email: '#/components/schemas/CreateEmailFormFieldRequest'
            Hidden: '#/components/schemas/CreateHiddenFormFieldRequest'
            Members: '#/components/schemas/CreateMembersFormFieldRequest'
            MultiChoice: '#/components/schemas/CreateMultiChoiceFormFieldRequest'
            MultiFile: '#/components/schemas/CreateMultiFileFormFieldRequest'
            MultiSelect: '#/components/schemas/CreateMultiSelectFormFieldRequest'
            Number: '#/components/schemas/CreateNumberFormFieldRequest'
            Select: '#/components/schemas/CreateSelectFormFieldRequest'
            SendRichEmail: '#/components/schemas/CreateSendRichEmailFormFieldRequest'
            Snippet: '#/components/schemas/CreateSnippetFormFieldRequest'
            Table: '#/components/schemas/CreateTableFormFieldRequest'
            Text: '#/components/schemas/CreateTextFormFieldRequest'
            Textarea: '#/components/schemas/CreateTextareaFormFieldRequest'
            Url: '#/components/schemas/CreateUrlFormFieldRequest'
      - title: CreateWorkflowCrossLinkWidgetRequest
        type: object
        required:
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          linkedTemplateId:
            title: EntityID
            description: The ID of the linked workflow or page that this CrossLink
              widget points to.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - FormField
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: CrossLink
      - title: CreateWorkflowEmbedWidgetRequest
        type: object
        required:
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          url:
            description: Target URL.
            type: string
            maxLength: 4000
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - FormField
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: Embed
      - title: CreateWorkflowFileWidgetRequest
        type: object
        required:
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          description:
            description: Optional long-form description.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - FormField
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: File
      - title: CreateWorkflowImageWidgetRequest
        type: object
        required:
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          caption:
            description: Caption text rendered with the image.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - FormField
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: Image
      - title: CreateWorkflowTextWidgetRequest
        type: object
        required:
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          content:
            description: Rich text content. May contain merge tags.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - FormField
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: Text
      - title: CreateWorkflowVideoWidgetRequest
        type: object
        required:
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          description:
            description: Optional long-form description.
            type: string
          url:
            description: Target URL.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - FormField
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: Video
      discriminator:
        propertyName: type
        mapping:
          CrossLink: '#/components/schemas/CreateWorkflowCrossLinkWidgetRequest'
          Embed: '#/components/schemas/CreateWorkflowEmbedWidgetRequest'
          File: '#/components/schemas/CreateWorkflowFileWidgetRequest'
          FormField: '#/components/schemas/CreateFormFieldWidgetRequest'
          Image: '#/components/schemas/CreateWorkflowImageWidgetRequest'
          Text: '#/components/schemas/CreateWorkflowTextWidgetRequest'
          Video: '#/components/schemas/CreateWorkflowVideoWidgetRequest'
    Daily:
      title: Daily
      type: object
      required:
      - interval
      - frequency
      properties:
        interval:
          description: Recurrence interval. For a Weekly schedule with `interval=2`,
            fires every other week.
          type: integer
          format: int32
        frequency:
          description: |-
            How often the workflow runs. The other fields on the rule depend on this value:
            `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
          type: string
          enum:
          - Daily
          - Weekly
          - Monthly
          - Yearly
          const: Daily
    DataSetField:
      title: DataSetField
      type: object
      required:
      - id
      - audit
      - name
      - fieldType
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        audit:
          title: PublicApiAudit
          description: Creation and last-modification metadata.
          type: object
          required:
          - createdDate
          - createdBy
          - updatedDate
          - updatedBy
          properties:
            createdDate:
              description: When the resource was first created. ISO-8601 UTC.
              type: string
              format: date-time
            createdBy:
              title: PublicApiUser
              description: User who created the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            updatedDate:
              description: When the resource was last modified. ISO-8601 UTC.
              type: string
              format: date-time
            updatedBy:
              title: PublicApiUser
              description: User who last modified the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
        name:
          description: Display name.
          type: string
        fieldType:
          title: ColumnType
          description: |
            Data type of the column.

            - `Text` — free-form string.
            - `Number` — numeric value.
            - `DateTime` — ISO-8601 date-time.
          type: string
          enum:
          - Text
          - DateTime
          - Number
    DataSetIncomingWebhookConfigRequest:
      title: DataSetIncomingWebhookConfigRequest
      type: object
      required:
      - columns
      properties:
        columns:
          description: Cell values keyed by column ID.
          type: object
          additionalProperties:
            type: string
        keyColumn:
          description: Name of the column used as the unique key when reconciling
            rows on upsert.
          type: string
    DueDateRuleBody:
      title: DueDateRuleBody
      description: The rule to set; omit or send `null` to clear the existing rule.
      type: object
      required:
      - sourceType
      - offsetDirection
      - dueOffset
      - businessDaysHandlingMode
      properties:
        sourceType:
          description: How the workflow run's due date is derived. `ChecklistStartDate`
            bases the due date on the workflow run's start date. `FormFieldValue`
            bases it on a Date form field value (requires `sourceWidgetId`).
          type: string
          enum:
          - FormFieldValue
          - ChecklistStartDate
        sourceWidgetId:
          title: EntityID
          description: 'For `sourceType=FormField`: the ID of the Members form field
            whose value drives the rule''s assignees at runtime. Absent for `sourceType=ChecklistInitiator`.'
          type: string
        offsetDirection:
          description: Whether the offset applies before or after the source date.
          type: string
          enum:
          - Before
          - After
        dueOffset:
          description: ISO-8601 duration (e.g. `P7D`, `PT4H30M`).
          type: string
        businessDaysHandlingMode:
          title: BusinessDaysHandlingMode
          description: How non-business days are handled when calculating the due
            date. `AllDays` counts every day. `BusinessDaysOnly` counts only Monday–Friday.
            `ShiftToNextBusinessDay` calculates using all days then moves a Saturday/Sunday
            result to the next Monday.
          type: string
          enum:
          - AllDays
          - BusinessDaysOnly
          - ShiftToNextBusinessDay
    DuplicatePageRequest:
      title: DuplicatePageRequest
      type: object
      properties:
        revisionId:
          title: EntityID
          type: string
        name:
          description: Display name.
          type: string
        folderId:
          title: EntityID
          description: The ID of the Folder.
          type: string
    DuplicateWorkflowRequest:
      title: DuplicateWorkflowRequest
      type: object
      properties:
        revisionId:
          title: EntityID
          type: string
        name:
          description: Display name.
          type: string
          maxLength: 255
        folderId:
          title: EntityID
          description: The ID of the Folder.
          type: string
    DynamicAssignmentRule:
      title: DynamicAssignmentRule
      type: object
      required:
      - sourceType
      - type
      properties:
        sourceType:
          description: How assignees are derived. `ChecklistInitiator` assigns the
            user who started the workflow run; `FormField` pulls assignees from a
            Members or Email form field (requires `sourceWidgetId`); `DocumentOwner`
            and `DocumentAuthor` pull from the source document.
          type: string
          enum:
          - ChecklistInitiator
          - FormField
          - DocumentOwner
          - DocumentAuthor
        sourceWidgetId:
          title: EntityID
          description: 'For `sourceType=FormField`: the ID of the Members form field
            whose value drives the rule''s assignees at runtime. Absent for `sourceType=ChecklistInitiator`.'
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          const: Dynamic
    DynamicAssignmentRuleRequest:
      title: DynamicAssignmentRuleRequest
      type: object
      required:
      - sourceType
      - type
      properties:
        sourceType:
          description: How assignees are derived. `ChecklistInitiator` assigns the
            user who started the workflow run; `FormField` pulls assignees from a
            Members or Email form field (requires `sourceWidgetId`); `DocumentOwner`
            and `DocumentAuthor` pull from the source document.
          type: string
          enum:
          - ChecklistInitiator
          - FormField
          - DocumentOwner
          - DocumentAuthor
        sourceWidgetId:
          title: EntityID
          description: 'For `sourceType=FormField`: the ID of the Members form field
            whose value drives the rule''s assignees at runtime. Absent for `sourceType=ChecklistInitiator`.'
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          const: Dynamic
    DynamicPermissionRule:
      title: DynamicPermissionRule
      type: object
      required:
      - sourceType
      - taskRead
      - taskUpdate
      - type
      properties:
        sourceType:
          title: SourceType
          description: |
            Where the user(s) that get task access are pulled from at runtime.

            - `ChecklistInitiator` — grants access to the user who started the workflow run.
            - `FormField` — grants access to users referenced by a form field on the run (`sourceWidgetId`
              identifies which Members form field).
          type: string
          enum:
          - ChecklistInitiator
          - FormField
        sourceWidgetId:
          title: EntityID
          description: 'For `sourceType=FormField`: the ID of the Members form field
            whose value drives the rule''s assignees at runtime. Absent for `sourceType=ChecklistInitiator`.'
          type: string
        taskRead:
          description: When `true`, the rule grants read access to the task.
          type: boolean
        taskUpdate:
          description: When `true`, the rule grants update access to the task (check
            off, edit form fields).
          type: boolean
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          const: Dynamic
    DynamicPermissionRuleRequest:
      title: DynamicPermissionRuleRequest
      type: object
      required:
      - sourceType
      - taskRead
      - taskUpdate
      - type
      properties:
        sourceType:
          title: SourceType
          description: |
            Where the user(s) that get task access are pulled from at runtime.

            - `ChecklistInitiator` — grants access to the user who started the workflow run.
            - `FormField` — grants access to users referenced by a form field on the run (`sourceWidgetId`
              identifies which Members form field).
          type: string
          enum:
          - ChecklistInitiator
          - FormField
        sourceWidgetId:
          title: EntityID
          description: 'For `sourceType=FormField`: the ID of the Members form field
            whose value drives the rule''s assignees at runtime. Absent for `sourceType=ChecklistInitiator`.'
          type: string
        taskRead:
          description: When `true`, the rule grants read access to the task.
          type: boolean
        taskUpdate:
          description: When `true`, the rule grants update access to the task (check
            off, edit form fields).
          type: boolean
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          const: Dynamic
    EntityID:
      title: EntityID
      type: string
    ErrorCode:
      title: ErrorCode
      description: |-
        Machine-parsable classification of the error. Always set on responses generated by the global
        exception handler. Branch your own error handling on this (not the message text).
      type: string
      enum:
      - BadRequest
      - Unauthorized
      - PaymentRequired
      - Forbidden
      - NotFound
      - MethodNotAllowed
      - Conflict
      - PayloadTooLarge
      - Validation
      - RateLimited
      - InternalError
    ErrorDetails:
      description: |-
        Optional structured context. Shape depends on the error: for `Validation` errors the keys are field
        paths; for `PaymentRequired` the keys describe the limit that was hit.
      type: object
      additionalProperties:
        type: string
    ErrorInfo:
      title: ErrorInfo
      type: object
      required:
      - error
      properties:
        error:
          description: |-
            Human-readable error message. Suitable for logs or for surfacing to end users; do not parse it
            programmatically — use `errorCode` for that.
          type: string
        details:
          description: |-
            Optional structured context. Shape depends on the error: for `Validation` errors the keys are field
            paths; for `PaymentRequired` the keys describe the limit that was hit.
          type: object
          additionalProperties:
            type: string
        errorCode:
          title: ErrorCode
          description: |-
            Machine-parsable classification of the error. Always set on responses generated by the global
            exception handler. Branch your own error handling on this (not the message text).
          type: string
          enum:
          - BadRequest
          - Unauthorized
          - PaymentRequired
          - Forbidden
          - NotFound
          - MethodNotAllowed
          - Conflict
          - PayloadTooLarge
          - Validation
          - RateLimited
          - InternalError
        requestId:
          description: Per-request correlation ID. Include this when contacting support
            so we can find the request in our logs.
          type: string
    FileBase64:
      title: FileBase64
      type: object
      required:
      - content
      - filename
      properties:
        content:
          description: Rich text content. May contain merge tags.
          type: string
        filename:
          type: string
    FolderPermissionEntry:
      title: FolderPermissionEntry
      type: object
      required:
      - email
      - accessLevel
      properties:
        email:
          description: Email address.
          type: string
        accessLevel:
          description: |
            Access level granted to a user on this folder. The level cascades to every workflow, page,
            and run inside the folder.

            - `Edit` — full edit on the folder and all its contents; can run workflows and view all runs.
            - `EditViewOwn` — edit folder contents and run workflows, but only see runs assigned to them
              (available on some plans).
            - `ViewAll` — view the folder, all its contents, and all runs; can run workflows but cannot
              edit.
            - `Run` — view the folder and run its workflows; only sees runs assigned to them.
            - `View` — view the folder and its contents; cannot run workflows.
          type: string
          enum:
          - Edit
          - EditViewOwn
          - ViewAll
          - Run
          - View
    FormFieldOption:
      title: FormFieldOption
      type: object
      required:
      - value
      - label
      properties:
        value:
          description: The option's stored value.
          type: string
        label:
          description: Display label shown to the end user.
          type: string
        dataSetRowId:
          title: EntityID
          type: string
    GetChecklistDueDateRuleResponse:
      title: GetChecklistDueDateRuleResponse
      description: The resource returned by this request.
      type: object
      properties:
        rule:
          title: PublicApiChecklistDueDateRule
          description: The checklist due date rule, or `null` if none is set.
          type: object
          required:
          - sourceType
          - offsetDirection
          - dueOffset
          - businessDaysHandlingMode
          properties:
            sourceType:
              description: How the workflow run's due date is derived. `ChecklistStartDate`
                bases the due date on the workflow run's start date. `FormFieldValue`
                bases it on a Date form field value (requires `sourceWidgetId`).
              type: string
              enum:
              - FormFieldValue
              - ChecklistStartDate
            sourceWidgetId:
              title: EntityID
              description: 'For `sourceType=FormField`: the ID of the Members form
                field whose value drives the rule''s assignees at runtime. Absent
                for `sourceType=ChecklistInitiator`.'
              type: string
            offsetDirection:
              description: Whether the offset applies before or after the source date.
              type: string
              enum:
              - Before
              - After
            dueOffset:
              description: ISO-8601 duration (e.g. `P7D`, `PT4H30M`).
              type: string
            businessDaysHandlingMode:
              title: BusinessDaysHandlingMode
              description: How non-business days are handled when calculating the
                due date. `AllDays` counts every day. `BusinessDaysOnly` counts only
                Monday–Friday. `ShiftToNextBusinessDay` calculates using all days
                then moves a Saturday/Sunday result to the next Monday.
              type: string
              enum:
              - AllDays
              - BusinessDaysOnly
              - ShiftToNextBusinessDay
    GetChecklistDueDateRuleResponseResponse:
      title: GetChecklistDueDateRuleResponseResponse
      type: object
      required:
      - data
      properties:
        data:
          title: GetChecklistDueDateRuleResponse
          description: The resource returned by this request.
          type: object
          properties:
            rule:
              title: PublicApiChecklistDueDateRule
              description: The checklist due date rule, or `null` if none is set.
              type: object
              required:
              - sourceType
              - offsetDirection
              - dueOffset
              - businessDaysHandlingMode
              properties:
                sourceType:
                  description: How the workflow run's due date is derived. `ChecklistStartDate`
                    bases the due date on the workflow run's start date. `FormFieldValue`
                    bases it on a Date form field value (requires `sourceWidgetId`).
                  type: string
                  enum:
                  - FormFieldValue
                  - ChecklistStartDate
                sourceWidgetId:
                  title: EntityID
                  description: 'For `sourceType=FormField`: the ID of the Members
                    form field whose value drives the rule''s assignees at runtime.
                    Absent for `sourceType=ChecklistInitiator`.'
                  type: string
                offsetDirection:
                  description: Whether the offset applies before or after the source
                    date.
                  type: string
                  enum:
                  - Before
                  - After
                dueOffset:
                  description: ISO-8601 duration (e.g. `P7D`, `PT4H30M`).
                  type: string
                businessDaysHandlingMode:
                  title: BusinessDaysHandlingMode
                  description: How non-business days are handled when calculating
                    the due date. `AllDays` counts every day. `BusinessDaysOnly` counts
                    only Monday–Friday. `ShiftToNextBusinessDay` calculates using
                    all days then moves a Saturday/Sunday result to the next Monday.
                  type: string
                  enum:
                  - AllDays
                  - BusinessDaysOnly
                  - ShiftToNextBusinessDay
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    GetTaskDueDateRuleResponse:
      title: GetTaskDueDateRuleResponse
      description: The resource returned by this request.
      type: object
      properties:
        rule:
          title: PublicApiTaskDueDateRule
          description: The task's due date rule, or `null` if none is set.
          type: object
          required:
          - sourceType
          - offsetDirection
          - dueOffset
          - businessDaysHandlingMode
          properties:
            sourceType:
              description: How the task's due date is derived. `ChecklistStartDate`
                / `ChecklistDueDate` — relative to the workflow run's start or due
                date. `TaskCompletedDate` / `TaskDueDate` — relative to a specific
                source task (requires `sourceTaskId`). `PreviousTaskCompletedDate`
                — relative to the task immediately before this one. `FormFieldValue`
                — relative to a Date form field value (requires `sourceWidgetId`).
              type: string
              enum:
              - FormFieldValue
              - TaskCompletedDate
              - PreviousTaskCompletedDate
              - TaskDueDate
              - ChecklistStartDate
              - ChecklistDueDate
            sourceWidgetId:
              title: EntityID
              description: 'For `sourceType=FormField`: the ID of the Members form
                field whose value drives the rule''s assignees at runtime. Absent
                for `sourceType=ChecklistInitiator`.'
              type: string
            sourceTaskId:
              title: EntityID
              type: string
            offsetDirection:
              description: Whether the offset applies before or after the source date.
              type: string
              enum:
              - Before
              - After
            dueOffset:
              description: ISO-8601 duration (e.g. `P7D`, `PT4H30M`).
              type: string
            businessDaysHandlingMode:
              title: BusinessDaysHandlingMode
              description: How non-business days are handled when calculating the
                due date. `AllDays` counts every day. `BusinessDaysOnly` counts only
                Monday–Friday. `ShiftToNextBusinessDay` calculates using all days
                then moves a Saturday/Sunday result to the next Monday.
              type: string
              enum:
              - AllDays
              - BusinessDaysOnly
              - ShiftToNextBusinessDay
    GetTaskDueDateRuleResponseResponse:
      title: GetTaskDueDateRuleResponseResponse
      type: object
      required:
      - data
      properties:
        data:
          title: GetTaskDueDateRuleResponse
          description: The resource returned by this request.
          type: object
          properties:
            rule:
              title: PublicApiTaskDueDateRule
              description: The task's due date rule, or `null` if none is set.
              type: object
              required:
              - sourceType
              - offsetDirection
              - dueOffset
              - businessDaysHandlingMode
              properties:
                sourceType:
                  description: How the task's due date is derived. `ChecklistStartDate`
                    / `ChecklistDueDate` — relative to the workflow run's start or
                    due date. `TaskCompletedDate` / `TaskDueDate` — relative to a
                    specific source task (requires `sourceTaskId`). `PreviousTaskCompletedDate`
                    — relative to the task immediately before this one. `FormFieldValue`
                    — relative to a Date form field value (requires `sourceWidgetId`).
                  type: string
                  enum:
                  - FormFieldValue
                  - TaskCompletedDate
                  - PreviousTaskCompletedDate
                  - TaskDueDate
                  - ChecklistStartDate
                  - ChecklistDueDate
                sourceWidgetId:
                  title: EntityID
                  description: 'For `sourceType=FormField`: the ID of the Members
                    form field whose value drives the rule''s assignees at runtime.
                    Absent for `sourceType=ChecklistInitiator`.'
                  type: string
                sourceTaskId:
                  title: EntityID
                  type: string
                offsetDirection:
                  description: Whether the offset applies before or after the source
                    date.
                  type: string
                  enum:
                  - Before
                  - After
                dueOffset:
                  description: ISO-8601 duration (e.g. `P7D`, `PT4H30M`).
                  type: string
                businessDaysHandlingMode:
                  title: BusinessDaysHandlingMode
                  description: How non-business days are handled when calculating
                    the due date. `AllDays` counts every day. `BusinessDaysOnly` counts
                    only Monday–Friday. `ShiftToNextBusinessDay` calculates using
                    all days then moves a Saturday/Sunday result to the next Monday.
                  type: string
                  enum:
                  - AllDays
                  - BusinessDaysOnly
                  - ShiftToNextBusinessDay
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    GetTaskResponse:
      title: GetTaskResponse
      type: object
      required:
      - id
      - updatedDate
      - updatedBy
      - workflowRunId
      - status
      - name
      - hidden
      - stopped
      properties:
        id:
          description: The ID of the Task
          examples:
          - hxTB-JMkjWy2CmEDXftB7g
          type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          title: PublicApiUser
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        completedDate:
          type: string
          format: date-time
        completedBy:
          title: PublicApiUser
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        workflowRunId:
          description: The ID of the Workflow Run
          examples:
          - hxTB-JMkjWy2CmEDXftB7g
          type: string
        status:
          title: Status
          type: string
          enum:
          - NotCompleted
          - Completed
        dueDate:
          description: Due date. ISO-8601 UTC.
          type: string
          format: date-time
        name:
          description: Display name.
          type: string
        hidden:
          description: Whether the task is hidden by Conditional Logic.
          type: boolean
        stopped:
          description: Whether the task is blocked (stopped) by an incomplete prior
            stop task.
          type: boolean
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    GetWorkflowRunResponse:
      title: GetWorkflowRunResponse
      type: object
      required:
      - id
      - audit
      - status
      - workflowId
      - shared
      - migrationStatus
      properties:
        id:
          description: The ID of the Workflow Run
          examples:
          - pMbIXVwJ9rDhJZT13HZBuQ
          type: string
        audit:
          title: AuditInfo
          description: Creation and last-modification metadata.
          type: object
          required:
          - createdDate
          - createdById
          - updatedDate
          - updatedById
          properties:
            createdDate:
              description: When the resource was first created. ISO-8601 UTC.
              type: string
              format: date-time
            createdById:
              title: EntityID
              description: ID of the user who created the resource.
              type: string
            updatedDate:
              description: When the resource was last modified. ISO-8601 UTC.
              type: string
              format: date-time
            updatedById:
              title: EntityID
              description: ID of the user who last modified the resource.
              type: string
        name:
          description: Display name.
          type: string
        status:
          description: |
            Lifecycle status of a workflow run.

            - `Active` — the run is in progress.
            - `Completed` — all tasks were completed and the run was finalised.
            - `Archived` — the run was archived from the active list (no further task progress is recorded but the run stays queryable).
            - `Deleted` — the run was soft-deleted.

            List endpoints return only `Active` runs unless otherwise indicated.
          type: string
          enum:
          - Active
          - Completed
          - Archived
          - Deleted
        workflowId:
          description: The ID of the Workflow
          examples:
          - pMbIXVwJ9rDhJZT13HZBuQ
          type: string
        shared:
          type: boolean
        dueDate:
          description: Due date. ISO-8601 UTC.
          type: string
          format: date-time
        migrationStatus:
          description: |
            Whether this run is currently being migrated to a newer workflow revision.

            - `Inactive` — not in a migration; this is the normal state.
            - `Scheduled` — a migration to a newer revision has been requested and is queued.
            - `Migrating` — migration is in progress; some fields may change shortly.
          type: string
          enum:
          - Inactive
          - Scheduled
          - Migrating
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    ImportDataSetRowsRequest:
      title: ImportDataSetRowsRequest
      type: object
      required:
      - strategy
      - file
      properties:
        strategy:
          description: |
            How rows in the uploaded CSV are reconciled with the existing data set.

            - `Append` — every uploaded row is inserted as a new row (no `key` required;
              nothing is updated or deleted).
            - `Upsert` — rows whose `key` column matches an existing row are updated in
              place; new keys are inserted; rows absent from the upload are left untouched.
            - `Sync` — like `Upsert`, but rows in the data set whose key is absent from
              the upload are deleted, leaving the data set fully in sync with the file.
          type: string
          enum:
          - Append
          - Upsert
          - Sync
        file:
          description: Uploaded file reference. Use the upload endpoint to attach
            content.
          type: string
          format: binary
        key:
          description: Unique key used to identify this row across imports — matches
            the data set column referenced by the webhook's `keyColumn`.
          type: string
    ImportDataSetRowsResponse:
      title: ImportDataSetRowsResponse
      type: object
      required:
      - id
      - created
      - updated
      - deleted
      properties:
        id:
          description: The ID of the Data Set
          examples:
          - vURoqAUCT9-dZPcBsa5L-Q
          type: string
        created:
          type: integer
          format: int64
        updated:
          type: integer
          format: int64
        deleted:
          type: integer
          format: int64
    InboxItemType:
      title: InboxItemType
      type: string
      enum:
      - Checklist
      - StandardTask
      - ApprovalTask
      - OneOffTask
      - Acknowledgment
    InboxItemType1:
      title: InboxItemType
      description: |
        Kind of My Work item.

        - `Checklist` — a workflow run assigned to the user.
        - `StandardTask` — a regular task within a workflow run.
        - `ApprovalTask` — an approval task awaiting the user's review.
        - `OneOffTask` — a standalone one-off task.
        - `Acknowledgment` — a revision-acknowledgment request after a workflow update.
      type: string
      enum:
      - Checklist
      - StandardTask
      - ApprovalTask
      - OneOffTask
      - Acknowledgment
    LeafCondition:
      title: LeafCondition
      type: object
      required:
      - widgetId
      - operator
      properties:
        widgetId:
          title: EntityID
          description: The ID of the widget.
          type: string
        operator:
          description: Comparison operator (e.g. `Is`, `IsNot`, `Contains`, `IsEmpty`).
          type: string
        value:
          description: The option's stored value.
          type: string
    Link:
      title: Link
      description: A HATEOAS link to a related resource. Use these to navigate between
        resources without constructing URLs by hand.
      type: object
      required:
      - name
      - href
      - type
      properties:
        name:
          description: Standard link relation name (RFC 5988) indicating this link's
            role. Common values include `self`, `edit`, `related`, `previous`, `next`.
          type: string
        href:
          title: Uri
          description: URL of the linked resource.
          examples:
          - https://api.process.st/api/v1.1/resource/XXX
          type: string
        rel:
          description: Optional. The kind of resource this link points to (e.g. `Workflow`,
            `Task`, `Comment`).
          type: string
          enum:
          - Approval Task
          - Approvals
          - Assignees
          - Comment
          - Data Set Records
          - Data Sets
          - Form Field Values
          - Subject Task
          - Task
          - Tasks
          - Users
          - Webhook
          - Workflow
          - Workflow Run
        type:
          description: Whether this link targets an API endpoint or a Process Street
            app URL. `Api` — a callable API endpoint you can fetch directly. `App`
            — a browser-facing URL in the Process Street UI.
          type: string
          enum:
          - Api
          - App
    ListApprovalsResponse:
      title: ListApprovalsResponse
      type: object
      properties:
        approvals:
          type: array
          items:
            title: SimplifiedApproval
            type: object
            required:
            - id
            - audit
            - organizationId
            - workflowRunId
            - approvalTaskId
            - subjectTaskId
            - status
            - reviewedBy
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              audit:
                title: PublicApiAudit
                description: Creation and last-modification metadata.
                type: object
                required:
                - createdDate
                - createdBy
                - updatedDate
                - updatedBy
                properties:
                  createdDate:
                    description: When the resource was first created. ISO-8601 UTC.
                    type: string
                    format: date-time
                  createdBy:
                    title: PublicApiUser
                    description: User who created the resource.
                    examples:
                    - id: lZBrdUpCPxKLORVf_RBMQA
                      email: jane.doe@example.com
                      username: Jane Doe
                    type: object
                    required:
                    - id
                    - email
                    - username
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      email:
                        description: The user's email address (also their login identifier).
                        type: string
                      username:
                        description: The user's display name (e.g. `Jane Doe`).
                        type: string
                  updatedDate:
                    description: When the resource was last modified. ISO-8601 UTC.
                    type: string
                    format: date-time
                  updatedBy:
                    title: PublicApiUser
                    description: User who last modified the resource.
                    examples:
                    - id: lZBrdUpCPxKLORVf_RBMQA
                      email: jane.doe@example.com
                      username: Jane Doe
                    type: object
                    required:
                    - id
                    - email
                    - username
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      email:
                        description: The user's email address (also their login identifier).
                        type: string
                      username:
                        description: The user's display name (e.g. `Jane Doe`).
                        type: string
              organizationId:
                title: EntityID
                description: The ID of the organization this resource belongs to.
                type: string
              workflowRunId:
                title: EntityID
                description: The ID of the Workflow Run.
                type: string
              approvalTaskId:
                title: EntityID
                type: string
              subjectTaskId:
                title: EntityID
                type: string
              status:
                description: |
                  Outcome of an approval task review.

                  - `Approved` — the reviewer accepted the subject task(s).
                  - `Rejected` — the reviewer rejected; subject tasks return to the assignee for rework.
                type: string
                enum:
                - Approved
                - Rejected
              reviewedBy:
                title: PublicApiUser
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              comment:
                type: string
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api`
                  or `App`).
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    ListChecklistAssigneesResponse:
      title: ListChecklistAssigneesResponse
      type: object
      properties:
        assignees:
          type: array
          items:
            title: PublicApiUser
            examples:
            - id: lZBrdUpCPxKLORVf_RBMQA
              email: jane.doe@example.com
              username: Jane Doe
            type: object
            required:
            - id
            - email
            - username
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              email:
                description: The user's email address (also their login identifier).
                type: string
              username:
                description: The user's display name (e.g. `Jane Doe`).
                type: string
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    ListDataSetRowsResponse:
      title: ListDataSetRowsResponse
      type: object
      properties:
        records:
          type: array
          items:
            title: SimplifiedRow
            type: object
            required:
            - id
            - audit
            - organizationId
            - dataSetId
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              audit:
                title: PublicApiAudit
                description: Creation and last-modification metadata.
                type: object
                required:
                - createdDate
                - createdBy
                - updatedDate
                - updatedBy
                properties:
                  createdDate:
                    description: When the resource was first created. ISO-8601 UTC.
                    type: string
                    format: date-time
                  createdBy:
                    title: PublicApiUser
                    description: User who created the resource.
                    examples:
                    - id: lZBrdUpCPxKLORVf_RBMQA
                      email: jane.doe@example.com
                      username: Jane Doe
                    type: object
                    required:
                    - id
                    - email
                    - username
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      email:
                        description: The user's email address (also their login identifier).
                        type: string
                      username:
                        description: The user's display name (e.g. `Jane Doe`).
                        type: string
                  updatedDate:
                    description: When the resource was last modified. ISO-8601 UTC.
                    type: string
                    format: date-time
                  updatedBy:
                    title: PublicApiUser
                    description: User who last modified the resource.
                    examples:
                    - id: lZBrdUpCPxKLORVf_RBMQA
                      email: jane.doe@example.com
                      username: Jane Doe
                    type: object
                    required:
                    - id
                    - email
                    - username
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      email:
                        description: The user's email address (also their login identifier).
                        type: string
                      username:
                        description: The user's display name (e.g. `Jane Doe`).
                        type: string
              organizationId:
                title: EntityID
                description: The ID of the organization this resource belongs to.
                type: string
              dataSetId:
                title: EntityID
                type: string
              cells:
                type: array
                items:
                  title: SimplifiedCell
                  type: object
                  required:
                  - fieldId
                  - value
                  properties:
                    fieldId:
                      title: EntityID
                      description: The ID of the form field.
                      type: string
                    value:
                      description: The option's stored value.
                      oneOf:
                      - type: 'null'
                      - type: number
                      - type: string
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    ListDataSetsResponse:
      title: ListDataSetsResponse
      type: object
      properties:
        dataSets:
          type: array
          items:
            title: SimplifiedDataSet
            type: object
            required:
            - id
            - audit
            - organizationId
            - name
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              audit:
                title: PublicApiAudit
                description: Creation and last-modification metadata.
                type: object
                required:
                - createdDate
                - createdBy
                - updatedDate
                - updatedBy
                properties:
                  createdDate:
                    description: When the resource was first created. ISO-8601 UTC.
                    type: string
                    format: date-time
                  createdBy:
                    title: PublicApiUser
                    description: User who created the resource.
                    examples:
                    - id: lZBrdUpCPxKLORVf_RBMQA
                      email: jane.doe@example.com
                      username: Jane Doe
                    type: object
                    required:
                    - id
                    - email
                    - username
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      email:
                        description: The user's email address (also their login identifier).
                        type: string
                      username:
                        description: The user's display name (e.g. `Jane Doe`).
                        type: string
                  updatedDate:
                    description: When the resource was last modified. ISO-8601 UTC.
                    type: string
                    format: date-time
                  updatedBy:
                    title: PublicApiUser
                    description: User who last modified the resource.
                    examples:
                    - id: lZBrdUpCPxKLORVf_RBMQA
                      email: jane.doe@example.com
                      username: Jane Doe
                    type: object
                    required:
                    - id
                    - email
                    - username
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      email:
                        description: The user's email address (also their login identifier).
                        type: string
                      username:
                        description: The user's display name (e.g. `Jane Doe`).
                        type: string
              deletedDate:
                type: string
                format: date-time
              deletedBy:
                title: PublicApiUser
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              organizationId:
                title: EntityID
                description: The ID of the organization this resource belongs to.
                type: string
              name:
                description: Display name.
                type: string
              fields:
                description: Form field definitions or column definitions, depending
                  on context.
                type: array
                items:
                  title: DataSetField
                  type: object
                  required:
                  - id
                  - audit
                  - name
                  - fieldType
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    audit:
                      title: PublicApiAudit
                      description: Creation and last-modification metadata.
                      type: object
                      required:
                      - createdDate
                      - createdBy
                      - updatedDate
                      - updatedBy
                      properties:
                        createdDate:
                          description: When the resource was first created. ISO-8601
                            UTC.
                          type: string
                          format: date-time
                        createdBy:
                          title: PublicApiUser
                          description: User who created the resource.
                          examples:
                          - id: lZBrdUpCPxKLORVf_RBMQA
                            email: jane.doe@example.com
                            username: Jane Doe
                          type: object
                          required:
                          - id
                          - email
                          - username
                          properties:
                            id:
                              title: EntityID
                              description: The resource's ID.
                              type: string
                            email:
                              description: The user's email address (also their login
                                identifier).
                              type: string
                            username:
                              description: The user's display name (e.g. `Jane Doe`).
                              type: string
                        updatedDate:
                          description: When the resource was last modified. ISO-8601
                            UTC.
                          type: string
                          format: date-time
                        updatedBy:
                          title: PublicApiUser
                          description: User who last modified the resource.
                          examples:
                          - id: lZBrdUpCPxKLORVf_RBMQA
                            email: jane.doe@example.com
                            username: Jane Doe
                          type: object
                          required:
                          - id
                          - email
                          - username
                          properties:
                            id:
                              title: EntityID
                              description: The resource's ID.
                              type: string
                            email:
                              description: The user's email address (also their login
                                identifier).
                              type: string
                            username:
                              description: The user's display name (e.g. `Jane Doe`).
                              type: string
                    name:
                      description: Display name.
                      type: string
                    fieldType:
                      title: ColumnType
                      description: |
                        Data type of the column.

                        - `Text` — free-form string.
                        - `Number` — numeric value.
                        - `DateTime` — ISO-8601 date-time.
                      type: string
                      enum:
                      - Text
                      - DateTime
                      - Number
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    ListFormFieldOptionsResponse:
      title: ListFormFieldOptionsResponse
      type: object
      properties:
        options:
          type: array
          items:
            title: FormFieldOption
            type: object
            required:
            - value
            - label
            properties:
              value:
                description: The option's stored value.
                type: string
              label:
                description: Display label shown to the end user.
                type: string
              dataSetRowId:
                title: EntityID
                type: string
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    ListFormFieldValuesResponse:
      title: ListFormFieldValuesResponse
      type: object
      properties:
        fields:
          description: Form field definitions or column definitions, depending on
            context.
          type: array
          items:
            title: SimplifiedFormFieldValue
            type: object
            required:
            - id
            - workflowRunId
            - taskId
            - key
            - data
            - fieldType
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              updatedDate:
                description: When the resource was last modified. ISO-8601 UTC.
                type: string
                format: date-time
              updatedBy:
                title: PublicApiUser
                description: User who last modified the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              workflowRunId:
                title: EntityID
                description: The ID of the Workflow Run.
                type: string
              taskId:
                title: EntityID
                description: The ID of the Task.
                type: string
              key:
                description: Unique key based on the label. This is used when referencing
                  the form field as a [variable](https://www.process.st/help/docs/variables/)
                type: string
              label:
                description: User defined label
                type: string
              data:
                description: The form field's value, encoded as JSON. Shape depends
                  on `fieldType` — e.g. a string for `Text`, a number for `Number`,
                  an array of selected option keys for `MultiChoice`.
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
              dataSetLinked:
                description: When `true`, this field is bound to a data set row; its
                  value is synchronised from the linked record.
                type: boolean
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api`
                  or `App`).
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    ListFormFieldsResponse:
      title: ListFormFieldsResponse
      type: object
      properties:
        fields:
          description: Form field definitions or column definitions, depending on
            context.
          type: array
          items:
            title: SimplifiedFormField
            type: object
            required:
            - id
            - audit
            - taskId
            - fieldType
            - key
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              audit:
                title: PublicApiAudit
                description: Creation and last-modification metadata.
                type: object
                required:
                - createdDate
                - createdBy
                - updatedDate
                - updatedBy
                properties:
                  createdDate:
                    description: When the resource was first created. ISO-8601 UTC.
                    type: string
                    format: date-time
                  createdBy:
                    title: PublicApiUser
                    description: User who created the resource.
                    examples:
                    - id: lZBrdUpCPxKLORVf_RBMQA
                      email: jane.doe@example.com
                      username: Jane Doe
                    type: object
                    required:
                    - id
                    - email
                    - username
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      email:
                        description: The user's email address (also their login identifier).
                        type: string
                      username:
                        description: The user's display name (e.g. `Jane Doe`).
                        type: string
                  updatedDate:
                    description: When the resource was last modified. ISO-8601 UTC.
                    type: string
                    format: date-time
                  updatedBy:
                    title: PublicApiUser
                    description: User who last modified the resource.
                    examples:
                    - id: lZBrdUpCPxKLORVf_RBMQA
                      email: jane.doe@example.com
                      username: Jane Doe
                    type: object
                    required:
                    - id
                    - email
                    - username
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      email:
                        description: The user's email address (also their login identifier).
                        type: string
                      username:
                        description: The user's display name (e.g. `Jane Doe`).
                        type: string
              taskId:
                title: EntityID
                description: The ID of the Task.
                type: string
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
              key:
                description: Unique key based on the label. This is used when referencing
                  the form field as a [variable](https://www.process.st/help/docs/variables/)
                type: string
              label:
                description: User defined label
                type: string
              dataSetLinked:
                type: boolean
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    ListTaskAssigneesResponse:
      title: ListTaskAssigneesResponse
      type: object
      properties:
        assignees:
          type: array
          items:
            title: PublicApiUser
            examples:
            - id: lZBrdUpCPxKLORVf_RBMQA
              email: jane.doe@example.com
              username: Jane Doe
            type: object
            required:
            - id
            - email
            - username
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              email:
                description: The user's email address (also their login identifier).
                type: string
              username:
                description: The user's display name (e.g. `Jane Doe`).
                type: string
    ListTaskTemplatesResponse:
      title: ListTaskTemplatesResponse
      type: object
      properties:
        tasks:
          type: array
          items:
            title: PublicApiTaskTemplate
            type: object
            required:
            - id
            - audit
            - workflowId
            - orderTree
            - stopTask
            - hiddenByDefault
            - taskType
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              audit:
                title: PublicApiAudit
                description: Creation and last-modification metadata.
                type: object
                required:
                - createdDate
                - createdBy
                - updatedDate
                - updatedBy
                properties:
                  createdDate:
                    description: When the resource was first created. ISO-8601 UTC.
                    type: string
                    format: date-time
                  createdBy:
                    title: PublicApiUser
                    description: User who created the resource.
                    examples:
                    - id: lZBrdUpCPxKLORVf_RBMQA
                      email: jane.doe@example.com
                      username: Jane Doe
                    type: object
                    required:
                    - id
                    - email
                    - username
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      email:
                        description: The user's email address (also their login identifier).
                        type: string
                      username:
                        description: The user's display name (e.g. `Jane Doe`).
                        type: string
                  updatedDate:
                    description: When the resource was last modified. ISO-8601 UTC.
                    type: string
                    format: date-time
                  updatedBy:
                    title: PublicApiUser
                    description: User who last modified the resource.
                    examples:
                    - id: lZBrdUpCPxKLORVf_RBMQA
                      email: jane.doe@example.com
                      username: Jane Doe
                    type: object
                    required:
                    - id
                    - email
                    - username
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      email:
                        description: The user's email address (also their login identifier).
                        type: string
                      username:
                        description: The user's display name (e.g. `Jane Doe`).
                        type: string
              workflowId:
                title: EntityID
                description: The ID of the Workflow.
                type: string
              name:
                description: Display name of the task template.
                type: string
              orderTree:
                description: Opaque ordering token; task templates sort lexicographically
                  by this value within a revision.
                type: string
              stopTask:
                description: When `true`, this task acts as a stop — subsequent tasks
                  within the revision are blocked until it's completed at runtime.
                type: boolean
              hiddenByDefault:
                description: When `true`, the widget is hidden by default; conditional
                  logic rules can reveal it at runtime. Defaults to `false`.
                type: boolean
              taskType:
                title: TaskType
                description: |
                  What the task does.

                  - `Standard` — a regular task that a user manually checks off when done.
                  - `Approval` — an approval task; a reviewer approves or rejects it, gating subsequent tasks.
                  - `AI` — an automated task that runs an AI prompt to populate form field values.
                  - `Code` — an automated task that runs a custom code snippet.
                type: string
                enum:
                - Standard
                - Approval
                - AI
                - Code
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                  an `href` URL, and a `type` (`Api` for callable endpoints, `App`
                  for browser-facing URLs). Prefer following these `href` values over
                  constructing URLs by hand.
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    ListTasksResponse:
      title: ListTasksResponse
      type: object
      properties:
        tasks:
          type: array
          items:
            title: PublicApiTask
            type: object
            required:
            - id
            - updatedDate
            - updatedBy
            - workflowRunId
            - status
            - name
            - hidden
            - stopped
            - taskType
            properties:
              id:
                description: The ID of the Task
                examples:
                - jtcHaR4Co9dBB0YxDpxFaQ
                type: string
              updatedDate:
                description: When the resource was last modified. ISO-8601 UTC.
                type: string
                format: date-time
              updatedBy:
                title: PublicApiUser
                description: User who last modified the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              completedDate:
                description: When the task was marked complete, if it is. ISO-8601
                  UTC.
                type: string
                format: date-time
              completedBy:
                title: PublicApiUser
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              workflowRunId:
                description: The ID of the Workflow Run
                examples:
                - jtcHaR4Co9dBB0YxDpxFaQ
                type: string
              status:
                title: Status
                type: string
                enum:
                - NotCompleted
                - Completed
              dueDate:
                description: Optional task-level due date. ISO-8601 UTC.
                type: string
                format: date-time
              name:
                description: Display name of the task.
                type: string
              hidden:
                description: Whether the task is hidden by Conditional Logic.
                type: boolean
              stopped:
                description: Whether the task is blocked (stopped) by an incomplete
                  prior stop task.
                type: boolean
              taskType:
                title: TaskType
                description: |
                  What the task does.

                  - `Standard` — a regular task that a user manually checks off when done.
                  - `Approval` — an approval task; a reviewer approves or rejects it, gating subsequent tasks.
                  - `AI` — an automated task that runs an AI prompt to populate form field values.
                  - `Code` — an automated task that runs a custom code snippet.
                type: string
                enum:
                - Standard
                - Approval
                - AI
                - Code
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                  an `href` URL, and a `type` (`Api` for callable endpoints, `App`
                  for browser-facing URLs). Prefer following these `href` values over
                  constructing URLs by hand.
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    ListUsersResponse:
      title: ListUsersResponse
      type: object
      properties:
        users:
          type: array
          items:
            title: PublicApiUser
            examples:
            - id: lZBrdUpCPxKLORVf_RBMQA
              email: jane.doe@example.com
              username: Jane Doe
            type: object
            required:
            - id
            - email
            - username
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              email:
                description: The user's email address (also their login identifier).
                type: string
              username:
                description: The user's display name (e.g. `Jane Doe`).
                type: string
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    ListWorkflowRunsResponse:
      title: ListWorkflowRunsResponse
      type: object
      properties:
        workflowRuns:
          type: array
          items:
            title: PublicApiWorkflowRun
            type: object
            required:
            - id
            - audit
            - status
            - workflowId
            - shared
            - migrationStatus
            properties:
              id:
                description: The ID of the Workflow Run
                examples:
                - t-Du98Rwi7eo3qpO-85Nzw
                type: string
              audit:
                title: AuditInfo
                description: Creation and last-modification metadata.
                type: object
                required:
                - createdDate
                - createdById
                - updatedDate
                - updatedById
                properties:
                  createdDate:
                    description: When the resource was first created. ISO-8601 UTC.
                    type: string
                    format: date-time
                  createdById:
                    title: EntityID
                    description: ID of the user who created the resource.
                    type: string
                  updatedDate:
                    description: When the resource was last modified. ISO-8601 UTC.
                    type: string
                    format: date-time
                  updatedById:
                    title: EntityID
                    description: ID of the user who last modified the resource.
                    type: string
              name:
                description: Display name of the workflow run (often interpolated
                  from a name template).
                type: string
              status:
                description: |
                  Lifecycle status of a workflow run.

                  - `Active` — the run is in progress.
                  - `Completed` — all tasks were completed and the run was finalised.
                  - `Archived` — the run was archived from the active list (no further task progress is recorded but the run stays queryable).
                  - `Deleted` — the run was soft-deleted.

                  List endpoints return only `Active` runs unless otherwise indicated.
                type: string
                enum:
                - Active
                - Completed
                - Archived
                - Deleted
              workflowId:
                description: The ID of the Workflow
                examples:
                - t-Du98Rwi7eo3qpO-85Nzw
                type: string
              shared:
                description: When `true`, this run is visible via its share link.
                type: boolean
              dueDate:
                description: Optional workflow-level due date. ISO-8601 UTC.
                type: string
                format: date-time
              migrationStatus:
                description: |
                  Whether this run is currently being migrated to a newer workflow revision.

                  - `Inactive` — not in a migration; this is the normal state.
                  - `Scheduled` — a migration to a newer revision has been requested and is queued.
                  - `Migrating` — migration is in progress; some fields may change shortly.
                type: string
                enum:
                - Inactive
                - Scheduled
                - Migrating
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                  an `href` URL, and a `type` (`Api` for callable endpoints, `App`
                  for browser-facing URLs). Prefer following these `href` values over
                  constructing URLs by hand.
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
    ListWorkflowsResponse:
      title: ListWorkflowsResponse
      type: object
      properties:
        workflows:
          type: array
          items:
            title: PublicApiWorkflow
            type: object
            required:
            - id
            - audit
            - name
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              audit:
                title: PublicApiAudit
                description: Creation and last-modification metadata.
                type: object
                required:
                - createdDate
                - createdBy
                - updatedDate
                - updatedBy
                properties:
                  createdDate:
                    description: When the resource was first created. ISO-8601 UTC.
                    type: string
                    format: date-time
                  createdBy:
                    title: PublicApiUser
                    description: User who created the resource.
                    examples:
                    - id: lZBrdUpCPxKLORVf_RBMQA
                      email: jane.doe@example.com
                      username: Jane Doe
                    type: object
                    required:
                    - id
                    - email
                    - username
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      email:
                        description: The user's email address (also their login identifier).
                        type: string
                      username:
                        description: The user's display name (e.g. `Jane Doe`).
                        type: string
                  updatedDate:
                    description: When the resource was last modified. ISO-8601 UTC.
                    type: string
                    format: date-time
                  updatedBy:
                    title: PublicApiUser
                    description: User who last modified the resource.
                    examples:
                    - id: lZBrdUpCPxKLORVf_RBMQA
                      email: jane.doe@example.com
                      username: Jane Doe
                    type: object
                    required:
                    - id
                    - email
                    - username
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      email:
                        description: The user's email address (also their login identifier).
                        type: string
                      username:
                        description: The user's display name (e.g. `Jane Doe`).
                        type: string
              name:
                description: The workflow's name.
                type: string
              description:
                description: Optional long-form description of the workflow.
                type: string
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                  an `href` URL, and a `type` (`Api` for callable endpoints, `App`
                  for browser-facing URLs). Prefer following these `href` values over
                  constructing URLs by hand.
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    Map_Muid:
      type: object
      additionalProperties:
        title: EntityID
        type: string
    Map_Option_String:
      description: |-
        Optional structured context. Shape depends on the error: for `Validation` errors the keys are field
        paths; for `PaymentRequired` the keys describe the limit that was hit.
      type: object
      additionalProperties:
        type: string
    Map_String:
      type: object
      additionalProperties:
        type: string
    Monthly:
      title: Monthly
      type: object
      required:
      - interval
      - by
      - frequency
      properties:
        interval:
          description: Recurrence interval. For a Weekly schedule with `interval=2`,
            fires every other week.
          type: integer
          format: int32
        by:
          description: |-
            How a `Monthly` rule recurs:
            `DayOfMonth` repeats on the same calendar date each month (e.g. the 15th);
            `DayOfWeek` repeats on the same weekday-of-month pattern (e.g. the second Tuesday).
          type: string
          enum:
          - DayOfMonth
          - DayOfWeek
        frequency:
          description: |-
            How often the workflow runs. The other fields on the rule depend on this value:
            `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
          type: string
          enum:
          - Daily
          - Weekly
          - Monthly
          - Yearly
          const: Monthly
    MyWorkSortBy:
      title: MyWorkSortBy
      description: |
        Sort key.

        - `DueDate` — sort by assignment due date.
        - `Name` — sort by task name (falls back to workflow run name if the task has no name).
      type: string
      enum:
      - DueDate
      - Name
    MyWorkSortOrder:
      title: MyWorkSortOrder
      description: |
        Sort direction.

        - `Asc` — ascending.
        - `Desc` — descending.
      type: string
      enum:
      - Asc
      - Desc
    OrCondition:
      title: OrCondition
      type: object
      properties:
        or:
          description: List of AND-groups; the OR-condition matches if any group matches.
          type: array
          items:
            title: AndGroup
            type: object
            properties:
              and:
                description: List of conditions that must all match (AND combined
                  within a group).
                type: array
                items:
                  title: LeafCondition
                  type: object
                  required:
                  - widgetId
                  - operator
                  properties:
                    widgetId:
                      title: EntityID
                      description: The ID of the widget.
                      type: string
                    operator:
                      description: Comparison operator (e.g. `Is`, `IsNot`, `Contains`,
                        `IsEmpty`).
                      type: string
                    value:
                      description: The option's stored value.
                      type: string
    PagePermissionEntry:
      title: PagePermissionEntry
      type: object
      required:
      - email
      - accessLevel
      properties:
        email:
          description: Email address.
          type: string
        accessLevel:
          description: |
            Access level granted to a user on this page.

            - `Edit` — view, edit, and delete the page.
            - `View` — view the page (read-only).
          type: string
          enum:
          - Edit
          - View
    PublicApiAiTaskConfig:
      title: PublicApiAiTaskConfig
      type: object
      required:
      - prompt
      - type
      properties:
        prompt:
          description: AI prompt template. May contain merge tags referencing form
            field values.
          type: string
        systemPrompt:
          description: Optional system message prepended to the AI prompt to set its
            behaviour.
          type: string
        outputMapping:
          description: Mapping from prompt/code output keys to form field IDs that
            receive the values.
          type: object
          additionalProperties:
            title: EntityID
            type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          const: Ai
    PublicApiApprovalTaskConfig:
      title: PublicApiApprovalTaskConfig
      type: object
      required:
      - type
      properties:
        subjectTaskIds:
          description: IDs of the tasks reviewed by an approval task.
          type: array
          items:
            title: EntityID
            type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          const: Approval
    PublicApiAssignmentRule:
      title: PublicApiAssignmentRule
      description: 'An assignment rule. The `type` discriminator field selects the
        variant: `Static` — assigns a specific named user (requires `email`). `Dynamic`
        — derives the assignee at runtime from a source like the workflow run initiator
        or a form field (requires `sourceType`).'
      oneOf:
      - title: DynamicAssignmentRule
        type: object
        required:
        - sourceType
        - type
        properties:
          sourceType:
            description: How assignees are derived. `ChecklistInitiator` assigns the
              user who started the workflow run; `FormField` pulls assignees from
              a Members or Email form field (requires `sourceWidgetId`); `DocumentOwner`
              and `DocumentAuthor` pull from the source document.
            type: string
            enum:
            - ChecklistInitiator
            - FormField
            - DocumentOwner
            - DocumentAuthor
          sourceWidgetId:
            title: EntityID
            description: 'For `sourceType=FormField`: the ID of the Members form field
              whose value drives the rule''s assignees at runtime. Absent for `sourceType=ChecklistInitiator`.'
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            const: Dynamic
      - title: StaticAssignmentRule
        type: object
        required:
        - email
        - type
        properties:
          email:
            description: Email address.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            const: Static
      discriminator:
        propertyName: type
        mapping:
          Dynamic: '#/components/schemas/DynamicAssignmentRule'
          Static: '#/components/schemas/StaticAssignmentRule'
    PublicApiAssignmentRuleListResponse:
      title: PublicApiAssignmentRuleListResponse
      type: object
      properties:
        data:
          description: The list of resources returned by this request.
          type: array
          items:
            title: PublicApiAssignmentRule
            description: 'An assignment rule. The `type` discriminator field selects
              the variant: `Static` — assigns a specific named user (requires `email`).
              `Dynamic` — derives the assignee at runtime from a source like the workflow
              run initiator or a form field (requires `sourceType`).'
            oneOf:
            - title: DynamicAssignmentRule
              type: object
              required:
              - sourceType
              - type
              properties:
                sourceType:
                  description: How assignees are derived. `ChecklistInitiator` assigns
                    the user who started the workflow run; `FormField` pulls assignees
                    from a Members or Email form field (requires `sourceWidgetId`);
                    `DocumentOwner` and `DocumentAuthor` pull from the source document.
                  type: string
                  enum:
                  - ChecklistInitiator
                  - FormField
                  - DocumentOwner
                  - DocumentAuthor
                sourceWidgetId:
                  title: EntityID
                  description: 'For `sourceType=FormField`: the ID of the Members
                    form field whose value drives the rule''s assignees at runtime.
                    Absent for `sourceType=ChecklistInitiator`.'
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Dynamic
            - title: StaticAssignmentRule
              type: object
              required:
              - email
              - type
              properties:
                email:
                  description: Email address.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Static
            discriminator:
              propertyName: type
              mapping:
                Dynamic: '#/components/schemas/DynamicAssignmentRule'
                Static: '#/components/schemas/StaticAssignmentRule'
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiAttachment:
      title: PublicApiAttachment
      type: object
      required:
      - id
      - createdDate
      - createdBy
      - taskId
      - workflowRunId
      - workflowId
      - fileName
      - mimeType
      - size
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        createdDate:
          description: When the resource was first created. ISO-8601 UTC.
          type: string
          format: date-time
        createdBy:
          description: User who created the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        taskId:
          description: The ID of the Task
          examples:
          - t3yRN529W9feU9nEGphKlw
          type: string
        workflowRunId:
          description: The ID of the Workflow Run
          examples:
          - t3yRN529W9feU9nEGphKlw
          type: string
        workflowId:
          description: The ID of the Workflow
          examples:
          - t3yRN529W9feU9nEGphKlw
          type: string
        fileName:
          description: Original filename as uploaded.
          type: string
        mimeType:
          description: MIME type detected at upload time (e.g. `image/png`, `application/pdf`).
          type: string
        size:
          description: File size in bytes.
          type: integer
          format: int64
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 link relation like `self`, `edit`, `related`), an `href`
            URL, and a `type` (`Api` for callable endpoints, `App` for browser-facing
            URLs). Prefer following these `href` values over constructing URLs by
            hand.
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiAttachmentListResponse:
      title: PublicApiAttachmentListResponse
      type: object
      properties:
        data:
          description: The list of resources returned by this request.
          type: array
          items:
            title: PublicApiAttachment
            type: object
            required:
            - id
            - createdDate
            - createdBy
            - taskId
            - workflowRunId
            - workflowId
            - fileName
            - mimeType
            - size
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              createdDate:
                description: When the resource was first created. ISO-8601 UTC.
                type: string
                format: date-time
              createdBy:
                description: User who created the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              taskId:
                description: The ID of the Task
                examples:
                - t3yRN529W9feU9nEGphKlw
                type: string
              workflowRunId:
                description: The ID of the Workflow Run
                examples:
                - t3yRN529W9feU9nEGphKlw
                type: string
              workflowId:
                description: The ID of the Workflow
                examples:
                - t3yRN529W9feU9nEGphKlw
                type: string
              fileName:
                description: Original filename as uploaded.
                type: string
              mimeType:
                description: MIME type detected at upload time (e.g. `image/png`,
                  `application/pdf`).
                type: string
              size:
                description: File size in bytes.
                type: integer
                format: int64
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                  an `href` URL, and a `type` (`Api` for callable endpoints, `App`
                  for browser-facing URLs). Prefer following these `href` values over
                  constructing URLs by hand.
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiAttachmentResponse:
      title: PublicApiAttachmentResponse
      type: object
      required:
      - data
      properties:
        data:
          title: PublicApiAttachment
          type: object
          required:
          - id
          - createdDate
          - createdBy
          - taskId
          - workflowRunId
          - workflowId
          - fileName
          - mimeType
          - size
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            createdDate:
              description: When the resource was first created. ISO-8601 UTC.
              type: string
              format: date-time
            createdBy:
              description: User who created the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            taskId:
              description: The ID of the Task
              examples:
              - t3yRN529W9feU9nEGphKlw
              type: string
            workflowRunId:
              description: The ID of the Workflow Run
              examples:
              - t3yRN529W9feU9nEGphKlw
              type: string
            workflowId:
              description: The ID of the Workflow
              examples:
              - t3yRN529W9feU9nEGphKlw
              type: string
            fileName:
              description: Original filename as uploaded.
              type: string
            mimeType:
              description: MIME type detected at upload time (e.g. `image/png`, `application/pdf`).
              type: string
            size:
              description: File size in bytes.
              type: integer
              format: int64
            links:
              description: Navigable HATEOAS links to related resources. Each entry
                has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                an `href` URL, and a `type` (`Api` for callable endpoints, `App` for
                browser-facing URLs). Prefer following these `href` values over constructing
                URLs by hand.
              type: array
              items:
                title: Link
                description: A HATEOAS link to a related resource. Use these to navigate
                  between resources without constructing URLs by hand.
                type: object
                required:
                - name
                - href
                - type
                properties:
                  name:
                    description: Standard link relation name (RFC 5988) indicating
                      this link's role. Common values include `self`, `edit`, `related`,
                      `previous`, `next`.
                    type: string
                  href:
                    title: Uri
                    description: URL of the linked resource.
                    examples:
                    - https://api.process.st/api/v1.1/resource/XXX
                    type: string
                  rel:
                    description: Optional. The kind of resource this link points to
                      (e.g. `Workflow`, `Task`, `Comment`).
                    type: string
                    enum:
                    - Approval Task
                    - Approvals
                    - Assignees
                    - Comment
                    - Data Set Records
                    - Data Sets
                    - Form Field Values
                    - Subject Task
                    - Task
                    - Tasks
                    - Users
                    - Webhook
                    - Workflow
                    - Workflow Run
                  type:
                    description: Whether this link targets an API endpoint or a Process
                      Street app URL. `Api` — a callable API endpoint you can fetch
                      directly. `App` — a browser-facing URL in the Process Street
                      UI.
                    type: string
                    enum:
                    - Api
                    - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiAudit:
      title: PublicApiAudit
      type: object
      required:
      - createdDate
      - createdBy
      - updatedDate
      - updatedBy
      properties:
        createdDate:
          description: When the resource was first created. ISO-8601 UTC.
          type: string
          format: date-time
        createdBy:
          title: PublicApiUser
          description: User who created the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          title: PublicApiUser
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
    PublicApiChecklistDueDateRule:
      title: PublicApiChecklistDueDateRule
      description: The checklist due date rule, or `null` if none is set.
      type: object
      required:
      - sourceType
      - offsetDirection
      - dueOffset
      - businessDaysHandlingMode
      properties:
        sourceType:
          description: How the workflow run's due date is derived. `ChecklistStartDate`
            bases the due date on the workflow run's start date. `FormFieldValue`
            bases it on a Date form field value (requires `sourceWidgetId`).
          type: string
          enum:
          - FormFieldValue
          - ChecklistStartDate
        sourceWidgetId:
          title: EntityID
          description: 'For `sourceType=FormField`: the ID of the Members form field
            whose value drives the rule''s assignees at runtime. Absent for `sourceType=ChecklistInitiator`.'
          type: string
        offsetDirection:
          description: Whether the offset applies before or after the source date.
          type: string
          enum:
          - Before
          - After
        dueOffset:
          description: ISO-8601 duration (e.g. `P7D`, `PT4H30M`).
          type: string
        businessDaysHandlingMode:
          title: BusinessDaysHandlingMode
          description: How non-business days are handled when calculating the due
            date. `AllDays` counts every day. `BusinessDaysOnly` counts only Monday–Friday.
            `ShiftToNextBusinessDay` calculates using all days then moves a Saturday/Sunday
            result to the next Monday.
          type: string
          enum:
          - AllDays
          - BusinessDaysOnly
          - ShiftToNextBusinessDay
    PublicApiCodeTaskConfig:
      title: PublicApiCodeTaskConfig
      type: object
      required:
      - code
      - type
      properties:
        code:
          description: Code snippet executed by this Code task.
          type: string
        inputMapping:
          description: Mapping from prompt/code input keys to form field IDs whose
            values are passed in.
          type: object
          additionalProperties:
            title: EntityID
            type: string
        outputMapping:
          description: Mapping from prompt/code output keys to form field IDs that
            receive the values.
          type: object
          additionalProperties:
            title: EntityID
            type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          const: Code
    PublicApiComment:
      title: PublicApiComment
      type: object
      required:
      - id
      - createdDate
      - createdBy
      - updatedDate
      - updatedBy
      - workflowRunId
      - taskId
      - text
      properties:
        id:
          description: The ID of the Comment
          examples:
          - q8fZBOagV_JgXeZaaBBGBw
          type: string
        createdDate:
          description: When the resource was first created. ISO-8601 UTC.
          type: string
          format: date-time
        createdBy:
          description: User who created the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        workflowRunId:
          description: The ID of the Workflow Run
          examples:
          - q8fZBOagV_JgXeZaaBBGBw
          type: string
        taskId:
          description: The ID of the Task
          examples:
          - q8fZBOagV_JgXeZaaBBGBw
          type: string
        text:
          description: The comment body. Plain text; not interpreted as Markdown or
            HTML.
          type: string
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 link relation like `self`, `edit`, `related`), an `href`
            URL, and a `type` (`Api` for callable endpoints, `App` for browser-facing
            URLs). Prefer following these `href` values over constructing URLs by
            hand.
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiCommentListResponse:
      title: PublicApiCommentListResponse
      type: object
      properties:
        data:
          description: The list of resources returned by this request.
          type: array
          items:
            title: PublicApiComment
            type: object
            required:
            - id
            - createdDate
            - createdBy
            - updatedDate
            - updatedBy
            - workflowRunId
            - taskId
            - text
            properties:
              id:
                description: The ID of the Comment
                examples:
                - q8fZBOagV_JgXeZaaBBGBw
                type: string
              createdDate:
                description: When the resource was first created. ISO-8601 UTC.
                type: string
                format: date-time
              createdBy:
                description: User who created the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              updatedDate:
                description: When the resource was last modified. ISO-8601 UTC.
                type: string
                format: date-time
              updatedBy:
                description: User who last modified the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              workflowRunId:
                description: The ID of the Workflow Run
                examples:
                - q8fZBOagV_JgXeZaaBBGBw
                type: string
              taskId:
                description: The ID of the Task
                examples:
                - q8fZBOagV_JgXeZaaBBGBw
                type: string
              text:
                description: The comment body. Plain text; not interpreted as Markdown
                  or HTML.
                type: string
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                  an `href` URL, and a `type` (`Api` for callable endpoints, `App`
                  for browser-facing URLs). Prefer following these `href` values over
                  constructing URLs by hand.
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiCommentResponse:
      title: PublicApiCommentResponse
      type: object
      required:
      - data
      properties:
        data:
          title: PublicApiComment
          type: object
          required:
          - id
          - createdDate
          - createdBy
          - updatedDate
          - updatedBy
          - workflowRunId
          - taskId
          - text
          properties:
            id:
              description: The ID of the Comment
              examples:
              - q8fZBOagV_JgXeZaaBBGBw
              type: string
            createdDate:
              description: When the resource was first created. ISO-8601 UTC.
              type: string
              format: date-time
            createdBy:
              description: User who created the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            updatedDate:
              description: When the resource was last modified. ISO-8601 UTC.
              type: string
              format: date-time
            updatedBy:
              description: User who last modified the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            workflowRunId:
              description: The ID of the Workflow Run
              examples:
              - q8fZBOagV_JgXeZaaBBGBw
              type: string
            taskId:
              description: The ID of the Task
              examples:
              - q8fZBOagV_JgXeZaaBBGBw
              type: string
            text:
              description: The comment body. Plain text; not interpreted as Markdown
                or HTML.
              type: string
            links:
              description: Navigable HATEOAS links to related resources. Each entry
                has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                an `href` URL, and a `type` (`Api` for callable endpoints, `App` for
                browser-facing URLs). Prefer following these `href` values over constructing
                URLs by hand.
              type: array
              items:
                title: Link
                description: A HATEOAS link to a related resource. Use these to navigate
                  between resources without constructing URLs by hand.
                type: object
                required:
                - name
                - href
                - type
                properties:
                  name:
                    description: Standard link relation name (RFC 5988) indicating
                      this link's role. Common values include `self`, `edit`, `related`,
                      `previous`, `next`.
                    type: string
                  href:
                    title: Uri
                    description: URL of the linked resource.
                    examples:
                    - https://api.process.st/api/v1.1/resource/XXX
                    type: string
                  rel:
                    description: Optional. The kind of resource this link points to
                      (e.g. `Workflow`, `Task`, `Comment`).
                    type: string
                    enum:
                    - Approval Task
                    - Approvals
                    - Assignees
                    - Comment
                    - Data Set Records
                    - Data Sets
                    - Form Field Values
                    - Subject Task
                    - Task
                    - Tasks
                    - Users
                    - Webhook
                    - Workflow
                    - Workflow Run
                  type:
                    description: Whether this link targets an API endpoint or a Process
                      Street app URL. `Api` — a callable API endpoint you can fetch
                      directly. `App` — a browser-facing URL in the Process Street
                      UI.
                    type: string
                    enum:
                    - Api
                    - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiCrossLinkWidget:
      title: PublicApiCrossLinkWidget
      type: object
      required:
      - hiddenByDefault
      - id
      - taskId
      - createdDate
      - createdBy
      - updatedDate
      - updatedBy
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        id:
          description: The ID of the Widget
          examples:
          - qMfuk4tmEFd7C-e1CGNH-g
          type: string
        taskId:
          description: The ID of the Task
          examples:
          - qMfuk4tmEFd7C-e1CGNH-g
          type: string
        createdDate:
          description: When the resource was first created. ISO-8601 UTC.
          type: string
          format: date-time
        createdBy:
          description: User who created the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        linkedTemplateId:
          title: EntityID
          description: The ID of the linked workflow or page that this CrossLink widget
            points to.
          type: string
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
        type:
          title: WidgetType
          description: |
            Widget kind discriminator.

            - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
            - `Text` — rich text content displayed on the task.
            - `Image` — image content displayed on the task.
            - `File` — downloadable file attached to the task.
            - `Video` — video content (uploaded or linked from a hosting service).
            - `Embed` — embedded external content via URL.
            - `CrossLink` — link to another workflow or page.
          type: string
          enum:
          - FormField
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
    PublicApiDataSet:
      title: PublicApiDataSet
      description: The resource returned by this request.
      type: object
      required:
      - id
      - createdDate
      - createdBy
      - updatedDate
      - updatedBy
      - organizationId
      - name
      properties:
        id:
          description: The ID of the Data Set
          examples:
          - mubwx4gKoTuTBk-pMN9J4g
          type: string
        createdDate:
          description: When the resource was first created. ISO-8601 UTC.
          type: string
          format: date-time
        createdBy:
          description: User who created the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        organizationId:
          title: EntityID
          description: The ID of the organization this resource belongs to.
          type: string
        name:
          description: The data set's display name.
          type: string
        fields:
          description: Column definitions for this data set (name + type per column).
          type: array
          items:
            title: PublicApiDataSetField
            type: object
            required:
            - id
            - createdDate
            - createdBy
            - updatedDate
            - updatedBy
            - name
            - fieldType
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              createdDate:
                description: When the resource was first created. ISO-8601 UTC.
                type: string
                format: date-time
              createdBy:
                description: User who created the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              updatedDate:
                description: When the resource was last modified. ISO-8601 UTC.
                type: string
                format: date-time
              updatedBy:
                description: User who last modified the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              name:
                description: Display name.
                type: string
              fieldType:
                title: ColumnType
                description: |
                  Data type of the column.

                  - `Text` — free-form string.
                  - `Number` — numeric value.
                  - `DateTime` — ISO-8601 date-time.
                type: string
                enum:
                - Text
                - DateTime
                - Number
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 link relation like `self`, `edit`, `related`), an `href`
            URL, and a `type` (`Api` for callable endpoints, `App` for browser-facing
            URLs). Prefer following these `href` values over constructing URLs by
            hand.
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiDataSetField:
      title: PublicApiDataSetField
      type: object
      required:
      - id
      - createdDate
      - createdBy
      - updatedDate
      - updatedBy
      - name
      - fieldType
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        createdDate:
          description: When the resource was first created. ISO-8601 UTC.
          type: string
          format: date-time
        createdBy:
          description: User who created the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        name:
          description: Display name.
          type: string
        fieldType:
          title: ColumnType
          description: |
            Data type of the column.

            - `Text` — free-form string.
            - `Number` — numeric value.
            - `DateTime` — ISO-8601 date-time.
          type: string
          enum:
          - Text
          - DateTime
          - Number
    PublicApiDataSetIncomingWebhook:
      title: PublicApiDataSetIncomingWebhook
      type: object
      required:
      - id
      - createdDate
      - createdBy
      - updatedDate
      - updatedBy
      - dataSetId
      - name
      - automationApp
      - status
      - url
      - config
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        createdDate:
          description: When the resource was first created. ISO-8601 UTC.
          type: string
          format: date-time
        createdBy:
          description: User who created the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        dataSetId:
          description: The ID of the Data Set
          examples:
          - iFx5kPZTsl2EeHag9zVH1A
          type: string
        name:
          description: Human-readable label for the webhook.
          type: string
        automationApp:
          description: Label of the automation app or integration source (e.g. `Zapier`,
            `Custom`).
          type: string
        status:
          description: Whether the incoming webhook is currently accepting payloads.
            `Active` — incoming requests at the webhook URL create or update data
            set rows. `Disabled` — the webhook URL is configured but requests are
            ignored.
          type: string
          enum:
          - Active
          - Disabled
        url:
          description: Public URL to POST payloads to. Include this in the upstream
            system's webhook config.
          type: string
        config:
          title: PublicApiDataSetIncomingWebhookConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          required:
          - columns
          properties:
            columns:
              description: Cell values keyed by column ID.
              type: object
              additionalProperties:
                type: string
            keyColumn:
              description: Name of the column used as the unique key when reconciling
                rows on upsert.
              type: string
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 link relation like `self`, `edit`, `related`), an `href`
            URL, and a `type` (`Api` for callable endpoints, `App` for browser-facing
            URLs). Prefer following these `href` values over constructing URLs by
            hand.
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiDataSetIncomingWebhookConfig:
      title: PublicApiDataSetIncomingWebhookConfig
      type: object
      required:
      - columns
      properties:
        columns:
          description: Cell values keyed by column ID.
          type: object
          additionalProperties:
            type: string
        keyColumn:
          description: Name of the column used as the unique key when reconciling
            rows on upsert.
          type: string
    PublicApiDataSetIncomingWebhookListResponse:
      title: PublicApiDataSetIncomingWebhookListResponse
      type: object
      properties:
        data:
          description: The list of resources returned by this request.
          type: array
          items:
            title: PublicApiDataSetIncomingWebhook
            type: object
            required:
            - id
            - createdDate
            - createdBy
            - updatedDate
            - updatedBy
            - dataSetId
            - name
            - automationApp
            - status
            - url
            - config
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              createdDate:
                description: When the resource was first created. ISO-8601 UTC.
                type: string
                format: date-time
              createdBy:
                description: User who created the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              updatedDate:
                description: When the resource was last modified. ISO-8601 UTC.
                type: string
                format: date-time
              updatedBy:
                description: User who last modified the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              dataSetId:
                description: The ID of the Data Set
                examples:
                - iFx5kPZTsl2EeHag9zVH1A
                type: string
              name:
                description: Human-readable label for the webhook.
                type: string
              automationApp:
                description: Label of the automation app or integration source (e.g.
                  `Zapier`, `Custom`).
                type: string
              status:
                description: Whether the incoming webhook is currently accepting payloads.
                  `Active` — incoming requests at the webhook URL create or update
                  data set rows. `Disabled` — the webhook URL is configured but requests
                  are ignored.
                type: string
                enum:
                - Active
                - Disabled
              url:
                description: Public URL to POST payloads to. Include this in the upstream
                  system's webhook config.
                type: string
              config:
                title: PublicApiDataSetIncomingWebhookConfig
                description: Field-specific configuration. Shape depends on `fieldType`.
                type: object
                required:
                - columns
                properties:
                  columns:
                    description: Cell values keyed by column ID.
                    type: object
                    additionalProperties:
                      type: string
                  keyColumn:
                    description: Name of the column used as the unique key when reconciling
                      rows on upsert.
                    type: string
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                  an `href` URL, and a `type` (`Api` for callable endpoints, `App`
                  for browser-facing URLs). Prefer following these `href` values over
                  constructing URLs by hand.
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiDataSetIncomingWebhookResponse:
      title: PublicApiDataSetIncomingWebhookResponse
      type: object
      required:
      - data
      properties:
        data:
          title: PublicApiDataSetIncomingWebhook
          type: object
          required:
          - id
          - createdDate
          - createdBy
          - updatedDate
          - updatedBy
          - dataSetId
          - name
          - automationApp
          - status
          - url
          - config
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            createdDate:
              description: When the resource was first created. ISO-8601 UTC.
              type: string
              format: date-time
            createdBy:
              description: User who created the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            updatedDate:
              description: When the resource was last modified. ISO-8601 UTC.
              type: string
              format: date-time
            updatedBy:
              description: User who last modified the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            dataSetId:
              description: The ID of the Data Set
              examples:
              - iFx5kPZTsl2EeHag9zVH1A
              type: string
            name:
              description: Human-readable label for the webhook.
              type: string
            automationApp:
              description: Label of the automation app or integration source (e.g.
                `Zapier`, `Custom`).
              type: string
            status:
              description: Whether the incoming webhook is currently accepting payloads.
                `Active` — incoming requests at the webhook URL create or update data
                set rows. `Disabled` — the webhook URL is configured but requests
                are ignored.
              type: string
              enum:
              - Active
              - Disabled
            url:
              description: Public URL to POST payloads to. Include this in the upstream
                system's webhook config.
              type: string
            config:
              title: PublicApiDataSetIncomingWebhookConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              required:
              - columns
              properties:
                columns:
                  description: Cell values keyed by column ID.
                  type: object
                  additionalProperties:
                    type: string
                keyColumn:
                  description: Name of the column used as the unique key when reconciling
                    rows on upsert.
                  type: string
            links:
              description: Navigable HATEOAS links to related resources. Each entry
                has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                an `href` URL, and a `type` (`Api` for callable endpoints, `App` for
                browser-facing URLs). Prefer following these `href` values over constructing
                URLs by hand.
              type: array
              items:
                title: Link
                description: A HATEOAS link to a related resource. Use these to navigate
                  between resources without constructing URLs by hand.
                type: object
                required:
                - name
                - href
                - type
                properties:
                  name:
                    description: Standard link relation name (RFC 5988) indicating
                      this link's role. Common values include `self`, `edit`, `related`,
                      `previous`, `next`.
                    type: string
                  href:
                    title: Uri
                    description: URL of the linked resource.
                    examples:
                    - https://api.process.st/api/v1.1/resource/XXX
                    type: string
                  rel:
                    description: Optional. The kind of resource this link points to
                      (e.g. `Workflow`, `Task`, `Comment`).
                    type: string
                    enum:
                    - Approval Task
                    - Approvals
                    - Assignees
                    - Comment
                    - Data Set Records
                    - Data Sets
                    - Form Field Values
                    - Subject Task
                    - Task
                    - Tasks
                    - Users
                    - Webhook
                    - Workflow
                    - Workflow Run
                  type:
                    description: Whether this link targets an API endpoint or a Process
                      Street app URL. `Api` — a callable API endpoint you can fetch
                      directly. `App` — a browser-facing URL in the Process Street
                      UI.
                    type: string
                    enum:
                    - Api
                    - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiDataSetResponse:
      title: PublicApiDataSetResponse
      type: object
      required:
      - data
      properties:
        data:
          title: PublicApiDataSet
          description: The resource returned by this request.
          type: object
          required:
          - id
          - createdDate
          - createdBy
          - updatedDate
          - updatedBy
          - organizationId
          - name
          properties:
            id:
              description: The ID of the Data Set
              examples:
              - mubwx4gKoTuTBk-pMN9J4g
              type: string
            createdDate:
              description: When the resource was first created. ISO-8601 UTC.
              type: string
              format: date-time
            createdBy:
              description: User who created the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            updatedDate:
              description: When the resource was last modified. ISO-8601 UTC.
              type: string
              format: date-time
            updatedBy:
              description: User who last modified the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            organizationId:
              title: EntityID
              description: The ID of the organization this resource belongs to.
              type: string
            name:
              description: The data set's display name.
              type: string
            fields:
              description: Column definitions for this data set (name + type per column).
              type: array
              items:
                title: PublicApiDataSetField
                type: object
                required:
                - id
                - createdDate
                - createdBy
                - updatedDate
                - updatedBy
                - name
                - fieldType
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  createdDate:
                    description: When the resource was first created. ISO-8601 UTC.
                    type: string
                    format: date-time
                  createdBy:
                    description: User who created the resource.
                    examples:
                    - id: lZBrdUpCPxKLORVf_RBMQA
                      email: jane.doe@example.com
                      username: Jane Doe
                    type: object
                    required:
                    - id
                    - email
                    - username
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      email:
                        description: The user's email address (also their login identifier).
                        type: string
                      username:
                        description: The user's display name (e.g. `Jane Doe`).
                        type: string
                  updatedDate:
                    description: When the resource was last modified. ISO-8601 UTC.
                    type: string
                    format: date-time
                  updatedBy:
                    description: User who last modified the resource.
                    examples:
                    - id: lZBrdUpCPxKLORVf_RBMQA
                      email: jane.doe@example.com
                      username: Jane Doe
                    type: object
                    required:
                    - id
                    - email
                    - username
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      email:
                        description: The user's email address (also their login identifier).
                        type: string
                      username:
                        description: The user's display name (e.g. `Jane Doe`).
                        type: string
                  name:
                    description: Display name.
                    type: string
                  fieldType:
                    title: ColumnType
                    description: |
                      Data type of the column.

                      - `Text` — free-form string.
                      - `Number` — numeric value.
                      - `DateTime` — ISO-8601 date-time.
                    type: string
                    enum:
                    - Text
                    - DateTime
                    - Number
            links:
              description: Navigable HATEOAS links to related resources. Each entry
                has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                an `href` URL, and a `type` (`Api` for callable endpoints, `App` for
                browser-facing URLs). Prefer following these `href` values over constructing
                URLs by hand.
              type: array
              items:
                title: Link
                description: A HATEOAS link to a related resource. Use these to navigate
                  between resources without constructing URLs by hand.
                type: object
                required:
                - name
                - href
                - type
                properties:
                  name:
                    description: Standard link relation name (RFC 5988) indicating
                      this link's role. Common values include `self`, `edit`, `related`,
                      `previous`, `next`.
                    type: string
                  href:
                    title: Uri
                    description: URL of the linked resource.
                    examples:
                    - https://api.process.st/api/v1.1/resource/XXX
                    type: string
                  rel:
                    description: Optional. The kind of resource this link points to
                      (e.g. `Workflow`, `Task`, `Comment`).
                    type: string
                    enum:
                    - Approval Task
                    - Approvals
                    - Assignees
                    - Comment
                    - Data Set Records
                    - Data Sets
                    - Form Field Values
                    - Subject Task
                    - Task
                    - Tasks
                    - Users
                    - Webhook
                    - Workflow
                    - Workflow Run
                  type:
                    description: Whether this link targets an API endpoint or a Process
                      Street app URL. `Api` — a callable API endpoint you can fetch
                      directly. `App` — a browser-facing URL in the Process Street
                      UI.
                    type: string
                    enum:
                    - Api
                    - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiDateFormFieldConfig:
      title: PublicApiDateFormFieldConfig
      type: object
      required:
      - fieldType
      properties:
        defaultValue:
          description: Default value pre-filled when a new workflow run is created.
          type: string
        timeOption:
          description: |
            How time-of-day is handled on this Date field.

            - `Included` — the field always captures both date and time.
            - `Excluded` — date only; time is never captured.
            - `Optional` — the user picks whether to include a time.
          type: string
          enum:
          - Included
          - Excluded
          - Optional
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Date
    PublicApiDateFormFieldConfig1:
      title: PublicApiDateFormFieldConfig
      type: object
      properties:
        defaultValue:
          description: Default value pre-filled when a new workflow run is created.
          type: string
        timeOption:
          description: |
            How time-of-day is handled on this Date field.

            - `Included` — the field always captures both date and time.
            - `Excluded` — date only; time is never captured.
            - `Optional` — the user picks whether to include a time.
          type: string
          enum:
          - Included
          - Excluded
          - Optional
    PublicApiDateFormFieldConstraints:
      title: PublicApiDateFormFieldConstraints
      type: object
      required:
      - fieldType
      properties:
        afterDate:
          description: Earliest accepted date (inclusive). Pair with `afterDateSourceType`.
          type: string
          format: date-time
        beforeDate:
          description: Latest accepted date (inclusive). Pair with `beforeDateSourceType`.
          type: string
          format: date-time
        afterDateFormFieldWidgetGroupId:
          title: EntityID
          description: When `afterDateSourceType=FormField`, the ID of the Date form
            field whose value is the lower bound.
          type: string
        beforeDateFormFieldWidgetGroupId:
          title: EntityID
          description: When `beforeDateSourceType=FormField`, the ID of the Date form
            field whose value is the upper bound.
          type: string
        afterDateSourceType:
          description: |
            How the before/after constraint date is derived.

            - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
            - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
            - `TaskDueDate` — relative to the containing task's due date.
            - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
          type: string
          enum:
          - SpecificDate
          - FormFieldValue
          - TaskDueDate
          - ChecklistStartDate
          - ChecklistDueDate
        beforeDateSourceType:
          description: |
            How the before/after constraint date is derived.

            - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
            - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
            - `TaskDueDate` — relative to the containing task's due date.
            - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
          type: string
          enum:
          - SpecificDate
          - FormFieldValue
          - TaskDueDate
          - ChecklistStartDate
          - ChecklistDueDate
        afterDateOffset:
          description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
          type: string
        beforeDateOffset:
          description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
          type: string
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Date
    PublicApiDateFormFieldConstraints1:
      title: PublicApiDateFormFieldConstraints
      type: object
      properties:
        afterDate:
          description: Earliest accepted date (inclusive). Pair with `afterDateSourceType`.
          type: string
          format: date-time
        beforeDate:
          description: Latest accepted date (inclusive). Pair with `beforeDateSourceType`.
          type: string
          format: date-time
        afterDateFormFieldWidgetGroupId:
          title: EntityID
          description: When `afterDateSourceType=FormField`, the ID of the Date form
            field whose value is the lower bound.
          type: string
        beforeDateFormFieldWidgetGroupId:
          title: EntityID
          description: When `beforeDateSourceType=FormField`, the ID of the Date form
            field whose value is the upper bound.
          type: string
        afterDateSourceType:
          description: |
            How the before/after constraint date is derived.

            - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
            - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
            - `TaskDueDate` — relative to the containing task's due date.
            - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
          type: string
          enum:
          - SpecificDate
          - FormFieldValue
          - TaskDueDate
          - ChecklistStartDate
          - ChecklistDueDate
        beforeDateSourceType:
          description: |
            How the before/after constraint date is derived.

            - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
            - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
            - `TaskDueDate` — relative to the containing task's due date.
            - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
          type: string
          enum:
          - SpecificDate
          - FormFieldValue
          - TaskDueDate
          - ChecklistStartDate
          - ChecklistDueDate
        afterDateOffset:
          description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
          type: string
        beforeDateOffset:
          description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
          type: string
    PublicApiDocumentFormFieldConfig:
      title: PublicApiDocumentFormFieldConfig
      type: object
      required:
      - reviewRequest
      - fieldType
      properties:
        reviewRequest:
          description: When `true`, the email requires explicit user review/send rather
            than auto-send.
          type: boolean
        defaultValue:
          description: Default value pre-filled when a new workflow run is created.
          type: string
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Document
    PublicApiDocumentFormFieldConfig1:
      title: PublicApiDocumentFormFieldConfig
      type: object
      required:
      - reviewRequest
      properties:
        reviewRequest:
          description: When `true`, the email requires explicit user review/send rather
            than auto-send.
          type: boolean
        defaultValue:
          description: Default value pre-filled when a new workflow run is created.
          type: string
    PublicApiEmailFormFieldConfig:
      title: PublicApiEmailFormFieldConfig
      type: object
      required:
      - fieldType
      properties:
        placeholder:
          description: Placeholder hint shown in the input when no value has been
            entered.
          type: string
        defaultValue:
          description: Default value pre-filled when a new workflow run is created.
          type: string
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Email
    PublicApiEmailFormFieldConfig1:
      title: PublicApiEmailFormFieldConfig
      type: object
      properties:
        placeholder:
          description: Placeholder hint shown in the input when no value has been
            entered.
          type: string
        defaultValue:
          description: Default value pre-filled when a new workflow run is created.
          type: string
    PublicApiEmailFormFieldConstraints:
      title: PublicApiEmailFormFieldConstraints
      type: object
      required:
      - fieldType
      properties:
        domains:
          description: Allowed (or blocked, depending on `restriction`) email domains
            for this field.
          type: array
          items:
            type: string
        restriction:
          description: |
            How the `domains` list filters allowed email addresses.

            - `Allow` — only emails whose domain is in the list are accepted.
            - `Block` — emails whose domain is in the list are rejected; all others accepted.
          type: string
          enum:
          - Allow
          - Block
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Email
    PublicApiEmailFormFieldConstraints1:
      title: PublicApiEmailFormFieldConstraints
      type: object
      properties:
        domains:
          description: Allowed (or blocked, depending on `restriction`) email domains
            for this field.
          type: array
          items:
            type: string
        restriction:
          description: |
            How the `domains` list filters allowed email addresses.

            - `Allow` — only emails whose domain is in the list are accepted.
            - `Block` — emails whose domain is in the list are rejected; all others accepted.
          type: string
          enum:
          - Allow
          - Block
    PublicApiEmbedWidget:
      title: PublicApiEmbedWidget
      type: object
      required:
      - hiddenByDefault
      - id
      - taskId
      - createdDate
      - createdBy
      - updatedDate
      - updatedBy
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        id:
          description: The ID of the Widget
          examples:
          - qfh8qdTqlMEcQW0ssxdACA
          type: string
        taskId:
          description: The ID of the Task
          examples:
          - qfh8qdTqlMEcQW0ssxdACA
          type: string
        createdDate:
          description: When the resource was first created. ISO-8601 UTC.
          type: string
          format: date-time
        createdBy:
          description: User who created the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        url:
          description: Target URL.
          type: string
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
        type:
          title: WidgetType
          description: |
            Widget kind discriminator.

            - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
            - `Text` — rich text content displayed on the task.
            - `Image` — image content displayed on the task.
            - `File` — downloadable file attached to the task.
            - `Video` — video content (uploaded or linked from a hosting service).
            - `Embed` — embedded external content via URL.
            - `CrossLink` — link to another workflow or page.
          type: string
          enum:
          - FormField
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
    PublicApiFileFormFieldConfig:
      title: PublicApiFileFormFieldConfig
      type: object
      required:
      - fieldType
      properties:
        placeholder:
          description: Placeholder hint shown in the input when no value has been
            entered.
          type: string
        extractTextContent:
          description: When `true`, server extracts text from uploaded documents for
            use in merge tags.
          type: boolean
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: File
    PublicApiFileFormFieldConfig1:
      title: PublicApiFileFormFieldConfig
      type: object
      properties:
        placeholder:
          description: Placeholder hint shown in the input when no value has been
            entered.
          type: string
        extractTextContent:
          description: When `true`, server extracts text from uploaded documents for
            use in merge tags.
          type: boolean
    PublicApiFileFormFieldConstraints:
      title: PublicApiFileFormFieldConstraints
      type: object
      required:
      - fieldType
      properties:
        extensions:
          description: Allowed file extensions, including the leading dot (e.g. `.pdf`,
            `.docx`).
          type: array
          items:
            type: string
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: File
    PublicApiFileFormFieldConstraints1:
      title: PublicApiFileFormFieldConstraints
      type: object
      properties:
        extensions:
          description: Allowed file extensions, including the leading dot (e.g. `.pdf`,
            `.docx`).
          type: array
          items:
            type: string
    PublicApiFileUpload:
      title: PublicApiFileUpload
      description: The resource returned by this request.
      type: object
      required:
      - fileUploadId
      - uploadUrl
      - uploadMethod
      - uploadExpiresDate
      properties:
        fileUploadId:
          description: Opaque, single-use handle for this upload. Pass it to an `/upload`
            endpoint to attach the uploaded file to a target. Treat it as an opaque
            token.
          type: string
        uploadUrl:
          description: The URL to upload the file's bytes to, with a single `PUT`
            request.
          type: string
        uploadMethod:
          description: HTTP method to use when uploading to `uploadUrl`. Always `PUT`.
          type: string
        uploadExpiresDate:
          description: When `uploadUrl` expires. ISO-8601 UTC. Upload the bytes before
            this time.
          type: string
          format: date-time
    PublicApiFileUploadResponse:
      title: PublicApiFileUploadResponse
      type: object
      required:
      - data
      properties:
        data:
          title: PublicApiFileUpload
          description: The resource returned by this request.
          type: object
          required:
          - fileUploadId
          - uploadUrl
          - uploadMethod
          - uploadExpiresDate
          properties:
            fileUploadId:
              description: Opaque, single-use handle for this upload. Pass it to an
                `/upload` endpoint to attach the uploaded file to a target. Treat
                it as an opaque token.
              type: string
            uploadUrl:
              description: The URL to upload the file's bytes to, with a single `PUT`
                request.
              type: string
            uploadMethod:
              description: HTTP method to use when uploading to `uploadUrl`. Always
                `PUT`.
              type: string
            uploadExpiresDate:
              description: When `uploadUrl` expires. ISO-8601 UTC. Upload the bytes
                before this time.
              type: string
              format: date-time
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiFileWidget:
      title: PublicApiFileWidget
      type: object
      required:
      - hiddenByDefault
      - id
      - taskId
      - createdDate
      - createdBy
      - updatedDate
      - updatedBy
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        id:
          description: The ID of the Widget
          examples:
          - luiV_7ndsYJQ8_fGAmxAmw
          type: string
        taskId:
          description: The ID of the Task
          examples:
          - luiV_7ndsYJQ8_fGAmxAmw
          type: string
        createdDate:
          description: When the resource was first created. ISO-8601 UTC.
          type: string
          format: date-time
        createdBy:
          description: User who created the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        description:
          description: Optional long-form description.
          type: string
        file:
          title: PublicApiWidgetFile
          description: Uploaded file reference. Use the upload endpoint to attach
            content.
          type: object
          required:
          - id
          - name
          - mimeType
          - size
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            name:
              description: Display name.
              type: string
            mimeType:
              description: MIME type detected at upload time (e.g. `image/png`, `application/pdf`).
              type: string
            size:
              description: File size in bytes.
              type: integer
              format: int64
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
        type:
          title: WidgetType
          description: |
            Widget kind discriminator.

            - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
            - `Text` — rich text content displayed on the task.
            - `Image` — image content displayed on the task.
            - `File` — downloadable file attached to the task.
            - `Video` — video content (uploaded or linked from a hosting service).
            - `Embed` — embedded external content via URL.
            - `CrossLink` — link to another workflow or page.
          type: string
          enum:
          - FormField
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
    PublicApiFolder:
      title: PublicApiFolder
      type: object
      required:
      - id
      - createdDate
      - createdBy
      - updatedDate
      - updatedBy
      - name
      properties:
        id:
          description: The ID of the Folder
          examples:
          - rZcRSK0SiQV0QtJsbvRP-w
          type: string
        createdDate:
          description: When the resource was first created. ISO-8601 UTC.
          type: string
          format: date-time
        createdBy:
          description: User who created the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        parentFolderId:
          title: EntityID
          type: string
        name:
          description: The folder's display name.
          type: string
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 link relation like `self`, `edit`, `related`), an `href`
            URL, and a `type` (`Api` for callable endpoints, `App` for browser-facing
            URLs). Prefer following these `href` values over constructing URLs by
            hand.
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiFolderListResponse:
      title: PublicApiFolderListResponse
      type: object
      properties:
        data:
          description: The list of resources returned by this request.
          type: array
          items:
            title: PublicApiFolder
            type: object
            required:
            - id
            - createdDate
            - createdBy
            - updatedDate
            - updatedBy
            - name
            properties:
              id:
                description: The ID of the Folder
                examples:
                - rZcRSK0SiQV0QtJsbvRP-w
                type: string
              createdDate:
                description: When the resource was first created. ISO-8601 UTC.
                type: string
                format: date-time
              createdBy:
                description: User who created the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              updatedDate:
                description: When the resource was last modified. ISO-8601 UTC.
                type: string
                format: date-time
              updatedBy:
                description: User who last modified the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              parentFolderId:
                title: EntityID
                type: string
              name:
                description: The folder's display name.
                type: string
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                  an `href` URL, and a `type` (`Api` for callable endpoints, `App`
                  for browser-facing URLs). Prefer following these `href` values over
                  constructing URLs by hand.
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiFolderPermission:
      title: PublicApiFolderPermission
      type: object
      required:
      - user
      - accessLevel
      - permissions
      properties:
        user:
          description: User this entry refers to.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        accessLevel:
          description: Access level a user or group has on this folder. The level
            cascades to every workflow, page, and run inside the folder. `Edit` —
            full edit on the folder and all its contents; can run workflows and view
            all runs. `EditViewOwn` — edit folder contents and run workflows, but
            only see runs assigned to them (available on some plans). `ViewAll` —
            view the folder, all its contents, and all runs; can run workflows but
            cannot edit. `Run` — view the folder and run its workflows; only sees
            runs assigned to them. `View` — view the folder and its contents; cannot
            run workflows. `Custom` — the user's underlying permission atoms don't
            match any predefined level; inspect the `permissions` object on the same
            entry for the actual atoms.
          type: string
          enum:
          - Edit
          - EditViewOwn
          - ViewAll
          - Run
          - View
          - Custom
        permissions:
          title: PublicApiFolderPermissionAtoms
          description: Granular permission flags this user or group has on the folder
            and its contents.
          type: object
          required:
          - folderCreate
          - folderRead
          - folderUpdate
          - folderDelete
          - templateCreate
          - templateRead
          - templateUpdate
          - templateDelete
          - pageCreate
          - pageRead
          - pageUpdate
          - pageDelete
          - checklistCreate
          - checklistRead
          - checklistUpdate
          - checklistDelete
          - doodadCreate
          - doodadRead
          - doodadUpdate
          - doodadDelete
          properties:
            folderCreate:
              description: Can create subfolders inside this folder.
              type: boolean
            folderRead:
              description: Can view this folder.
              type: boolean
            folderUpdate:
              description: Can edit this folder (rename, move).
              type: boolean
            folderDelete:
              description: Can delete this folder.
              type: boolean
            templateCreate:
              description: Can create workflows inside this folder.
              type: boolean
            templateRead:
              description: Can view workflows inside this folder.
              type: boolean
            templateUpdate:
              description: Can edit workflows inside this folder.
              type: boolean
            templateDelete:
              description: Can delete workflows inside this folder.
              type: boolean
            pageCreate:
              description: Can create pages inside this folder.
              type: boolean
            pageRead:
              description: Can view pages inside this folder.
              type: boolean
            pageUpdate:
              description: Can edit pages inside this folder.
              type: boolean
            pageDelete:
              description: Can delete pages inside this folder.
              type: boolean
            checklistCreate:
              description: Can start workflow runs from workflows in this folder.
              type: boolean
            checklistRead:
              description: Can view workflow runs of workflows in this folder.
              type: boolean
            checklistUpdate:
              description: Can edit workflow runs (e.g. complete tasks, fill form
                fields, change due dates).
              type: boolean
            checklistDelete:
              description: Can delete workflow runs.
              type: boolean
            doodadCreate:
              description: Can add comments and attachments to workflow runs.
              type: boolean
            doodadRead:
              description: Can view comments and attachments on workflow runs.
              type: boolean
            doodadUpdate:
              description: Can edit comments and attachments on workflow runs.
              type: boolean
            doodadDelete:
              description: Can delete comments and attachments on workflow runs.
              type: boolean
    PublicApiFolderPermissionAtoms:
      title: PublicApiFolderPermissionAtoms
      description: Granular permission flags this user or group has on the folder
        and its contents.
      type: object
      required:
      - folderCreate
      - folderRead
      - folderUpdate
      - folderDelete
      - templateCreate
      - templateRead
      - templateUpdate
      - templateDelete
      - pageCreate
      - pageRead
      - pageUpdate
      - pageDelete
      - checklistCreate
      - checklistRead
      - checklistUpdate
      - checklistDelete
      - doodadCreate
      - doodadRead
      - doodadUpdate
      - doodadDelete
      properties:
        folderCreate:
          description: Can create subfolders inside this folder.
          type: boolean
        folderRead:
          description: Can view this folder.
          type: boolean
        folderUpdate:
          description: Can edit this folder (rename, move).
          type: boolean
        folderDelete:
          description: Can delete this folder.
          type: boolean
        templateCreate:
          description: Can create workflows inside this folder.
          type: boolean
        templateRead:
          description: Can view workflows inside this folder.
          type: boolean
        templateUpdate:
          description: Can edit workflows inside this folder.
          type: boolean
        templateDelete:
          description: Can delete workflows inside this folder.
          type: boolean
        pageCreate:
          description: Can create pages inside this folder.
          type: boolean
        pageRead:
          description: Can view pages inside this folder.
          type: boolean
        pageUpdate:
          description: Can edit pages inside this folder.
          type: boolean
        pageDelete:
          description: Can delete pages inside this folder.
          type: boolean
        checklistCreate:
          description: Can start workflow runs from workflows in this folder.
          type: boolean
        checklistRead:
          description: Can view workflow runs of workflows in this folder.
          type: boolean
        checklistUpdate:
          description: Can edit workflow runs (e.g. complete tasks, fill form fields,
            change due dates).
          type: boolean
        checklistDelete:
          description: Can delete workflow runs.
          type: boolean
        doodadCreate:
          description: Can add comments and attachments to workflow runs.
          type: boolean
        doodadRead:
          description: Can view comments and attachments on workflow runs.
          type: boolean
        doodadUpdate:
          description: Can edit comments and attachments on workflow runs.
          type: boolean
        doodadDelete:
          description: Can delete comments and attachments on workflow runs.
          type: boolean
    PublicApiFolderPermissionListResponse:
      title: PublicApiFolderPermissionListResponse
      type: object
      properties:
        data:
          description: The list of resources returned by this request.
          type: array
          items:
            title: PublicApiFolderPermission
            type: object
            required:
            - user
            - accessLevel
            - permissions
            properties:
              user:
                description: User this entry refers to.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              accessLevel:
                description: Access level a user or group has on this folder. The
                  level cascades to every workflow, page, and run inside the folder.
                  `Edit` — full edit on the folder and all its contents; can run workflows
                  and view all runs. `EditViewOwn` — edit folder contents and run
                  workflows, but only see runs assigned to them (available on some
                  plans). `ViewAll` — view the folder, all its contents, and all runs;
                  can run workflows but cannot edit. `Run` — view the folder and run
                  its workflows; only sees runs assigned to them. `View` — view the
                  folder and its contents; cannot run workflows. `Custom` — the user's
                  underlying permission atoms don't match any predefined level; inspect
                  the `permissions` object on the same entry for the actual atoms.
                type: string
                enum:
                - Edit
                - EditViewOwn
                - ViewAll
                - Run
                - View
                - Custom
              permissions:
                title: PublicApiFolderPermissionAtoms
                description: Granular permission flags this user or group has on the
                  folder and its contents.
                type: object
                required:
                - folderCreate
                - folderRead
                - folderUpdate
                - folderDelete
                - templateCreate
                - templateRead
                - templateUpdate
                - templateDelete
                - pageCreate
                - pageRead
                - pageUpdate
                - pageDelete
                - checklistCreate
                - checklistRead
                - checklistUpdate
                - checklistDelete
                - doodadCreate
                - doodadRead
                - doodadUpdate
                - doodadDelete
                properties:
                  folderCreate:
                    description: Can create subfolders inside this folder.
                    type: boolean
                  folderRead:
                    description: Can view this folder.
                    type: boolean
                  folderUpdate:
                    description: Can edit this folder (rename, move).
                    type: boolean
                  folderDelete:
                    description: Can delete this folder.
                    type: boolean
                  templateCreate:
                    description: Can create workflows inside this folder.
                    type: boolean
                  templateRead:
                    description: Can view workflows inside this folder.
                    type: boolean
                  templateUpdate:
                    description: Can edit workflows inside this folder.
                    type: boolean
                  templateDelete:
                    description: Can delete workflows inside this folder.
                    type: boolean
                  pageCreate:
                    description: Can create pages inside this folder.
                    type: boolean
                  pageRead:
                    description: Can view pages inside this folder.
                    type: boolean
                  pageUpdate:
                    description: Can edit pages inside this folder.
                    type: boolean
                  pageDelete:
                    description: Can delete pages inside this folder.
                    type: boolean
                  checklistCreate:
                    description: Can start workflow runs from workflows in this folder.
                    type: boolean
                  checklistRead:
                    description: Can view workflow runs of workflows in this folder.
                    type: boolean
                  checklistUpdate:
                    description: Can edit workflow runs (e.g. complete tasks, fill
                      form fields, change due dates).
                    type: boolean
                  checklistDelete:
                    description: Can delete workflow runs.
                    type: boolean
                  doodadCreate:
                    description: Can add comments and attachments to workflow runs.
                    type: boolean
                  doodadRead:
                    description: Can view comments and attachments on workflow runs.
                    type: boolean
                  doodadUpdate:
                    description: Can edit comments and attachments on workflow runs.
                    type: boolean
                  doodadDelete:
                    description: Can delete comments and attachments on workflow runs.
                    type: boolean
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiFolderResponse:
      title: PublicApiFolderResponse
      type: object
      required:
      - data
      properties:
        data:
          title: PublicApiFolder
          type: object
          required:
          - id
          - createdDate
          - createdBy
          - updatedDate
          - updatedBy
          - name
          properties:
            id:
              description: The ID of the Folder
              examples:
              - rZcRSK0SiQV0QtJsbvRP-w
              type: string
            createdDate:
              description: When the resource was first created. ISO-8601 UTC.
              type: string
              format: date-time
            createdBy:
              description: User who created the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            updatedDate:
              description: When the resource was last modified. ISO-8601 UTC.
              type: string
              format: date-time
            updatedBy:
              description: User who last modified the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            parentFolderId:
              title: EntityID
              type: string
            name:
              description: The folder's display name.
              type: string
            links:
              description: Navigable HATEOAS links to related resources. Each entry
                has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                an `href` URL, and a `type` (`Api` for callable endpoints, `App` for
                browser-facing URLs). Prefer following these `href` values over constructing
                URLs by hand.
              type: array
              items:
                title: Link
                description: A HATEOAS link to a related resource. Use these to navigate
                  between resources without constructing URLs by hand.
                type: object
                required:
                - name
                - href
                - type
                properties:
                  name:
                    description: Standard link relation name (RFC 5988) indicating
                      this link's role. Common values include `self`, `edit`, `related`,
                      `previous`, `next`.
                    type: string
                  href:
                    title: Uri
                    description: URL of the linked resource.
                    examples:
                    - https://api.process.st/api/v1.1/resource/XXX
                    type: string
                  rel:
                    description: Optional. The kind of resource this link points to
                      (e.g. `Workflow`, `Task`, `Comment`).
                    type: string
                    enum:
                    - Approval Task
                    - Approvals
                    - Assignees
                    - Comment
                    - Data Set Records
                    - Data Sets
                    - Form Field Values
                    - Subject Task
                    - Task
                    - Tasks
                    - Users
                    - Webhook
                    - Workflow
                    - Workflow Run
                  type:
                    description: Whether this link targets an API endpoint or a Process
                      Street app URL. `Api` — a callable API endpoint you can fetch
                      directly. `App` — a browser-facing URL in the Process Street
                      UI.
                    type: string
                    enum:
                    - Api
                    - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiFormFieldConfig:
      title: PublicApiFormFieldConfig
      oneOf:
      - title: PublicApiDateFormFieldConfig
        type: object
        required:
        - fieldType
        properties:
          defaultValue:
            description: Default value pre-filled when a new workflow run is created.
            type: string
          timeOption:
            description: |
              How time-of-day is handled on this Date field.

              - `Included` — the field always captures both date and time.
              - `Excluded` — date only; time is never captured.
              - `Optional` — the user picks whether to include a time.
            type: string
            enum:
            - Included
            - Excluded
            - Optional
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Date
      - title: PublicApiDocumentFormFieldConfig
        type: object
        required:
        - reviewRequest
        - fieldType
        properties:
          reviewRequest:
            description: When `true`, the email requires explicit user review/send
              rather than auto-send.
            type: boolean
          defaultValue:
            description: Default value pre-filled when a new workflow run is created.
            type: string
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Document
      - title: PublicApiEmailFormFieldConfig
        type: object
        required:
        - fieldType
        properties:
          placeholder:
            description: Placeholder hint shown in the input when no value has been
              entered.
            type: string
          defaultValue:
            description: Default value pre-filled when a new workflow run is created.
            type: string
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Email
      - title: PublicApiFileFormFieldConfig
        type: object
        required:
        - fieldType
        properties:
          placeholder:
            description: Placeholder hint shown in the input when no value has been
              entered.
            type: string
          extractTextContent:
            description: When `true`, server extracts text from uploaded documents
              for use in merge tags.
            type: boolean
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: File
      - title: PublicApiHiddenFormFieldConfig
        type: object
        required:
        - fieldType
        properties:
          defaultValue:
            description: Default value pre-filled when a new workflow run is created.
            type: string
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Hidden
      - title: PublicApiMembersFormFieldConfig
        type: object
        required:
        - fieldType
        properties:
          defaultValue:
            description: Default value pre-filled when a new workflow run is created.
            type: string
          groupId:
            title: EntityID
            description: The ID of an organization group.
            type: string
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Members
      - title: PublicApiMultiChoiceFormFieldConfig
        type: object
        required:
        - fieldType
        properties:
          items:
            description: Available options for selection-style form fields.
            type: array
            items:
              title: PublicApiFormFieldItem
              type: object
              required:
              - name
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                name:
                  description: Display name.
                  type: string
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: MultiChoice
      - title: PublicApiMultiFileFormFieldConfig
        type: object
        required:
        - fieldType
        properties:
          placeholder:
            description: Placeholder hint shown in the input when no value has been
              entered.
            type: string
          extractTextContent:
            description: When `true`, server extracts text from uploaded documents
              for use in merge tags.
            type: boolean
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: MultiFile
      - title: PublicApiMultiSelectFormFieldConfig
        type: object
        required:
        - fieldType
        properties:
          items:
            description: Available options for selection-style form fields.
            type: array
            items:
              title: PublicApiFormFieldItem
              type: object
              required:
              - name
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                name:
                  description: Display name.
                  type: string
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: MultiSelect
      - title: PublicApiNumberFormFieldConfig
        type: object
        required:
        - fieldType
        properties:
          placeholder:
            description: Placeholder hint shown in the input when no value has been
              entered.
            type: string
          defaultValue:
            description: Default value pre-filled when a new workflow run is created.
            type: string
          unit:
            description: Unit label rendered next to the numeric value (e.g. `kg`,
              `$`, `%`).
            type: string
          unitLocation:
            description: |
              Where the unit symbol appears relative to the number.

              - `prefix` — before the number (e.g. `$100`).
              - `suffix` — after the number (e.g. `100 USD`).
            type: string
            enum:
            - prefix
            - suffix
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Number
      - title: PublicApiSelectFormFieldConfig
        type: object
        required:
        - fieldType
        properties:
          items:
            description: Available options for selection-style form fields.
            type: array
            items:
              title: PublicApiFormFieldItem
              type: object
              required:
              - name
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                name:
                  description: Display name.
                  type: string
          defaultValue:
            description: Default value pre-filled when a new workflow run is created.
            type: string
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Select
      - title: PublicApiSendRichEmailFormFieldConfig
        type: object
        required:
        - bodyEditor
        - fieldType
        properties:
          to:
            description: Default recipient list (To). Comma-separated email addresses
              or merge tags.
            type: array
            items:
              type: string
          cc:
            description: Default CC list. Comma-separated email addresses or merge
              tags.
            type: array
            items:
              type: string
          bcc:
            description: Default BCC list. Comma-separated email addresses or merge
              tags.
            type: array
            items:
              type: string
          replyTo:
            description: Default Reply-To address. An email address or merge tag.
            type: array
            items:
              type: string
          subject:
            description: Default email subject. May contain merge tags.
            type: string
          body:
            description: Default email body. May contain merge tags.
            type: string
          bodyEditor:
            description: |
              Editor used to author the email body.

              - `RichText` — rich-text editor with formatting.
              - `HTML` — raw HTML editor.
              - `PlainText` — plain text editor.
            type: string
            enum:
            - RichText
            - HTML
            - PlainText
          editAllowed:
            description: When `true`, users running the workflow can edit the email
              before sending.
            type: boolean
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: SendRichEmail
      - title: PublicApiSnippetFormFieldConfig
        type: object
        required:
        - fieldType
        properties:
          value:
            description: The option's stored value.
            type: string
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Snippet
      - title: PublicApiTableFormFieldConfig
        type: object
        required:
        - fieldType
        properties:
          columnDefs:
            description: Data set column definitions (name + type per column).
            type: array
            items:
              title: PublicApiTableFormFieldColumn
              type: object
              required:
              - id
              - name
              - columnType
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                name:
                  description: Display name.
                  type: string
                columnType:
                  description: |
                    Data type a Table column accepts.

                    - `Text` — free-form short text.
                  type: string
                  enum:
                  - Text
          defaultValue:
            description: Default value pre-filled when a new workflow run is created.
            type: string
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Table
      - title: PublicApiTextFormFieldConfig
        type: object
        required:
        - fieldType
        properties:
          placeholder:
            description: Placeholder hint shown in the input when no value has been
              entered.
            type: string
          defaultValue:
            description: Default value pre-filled when a new workflow run is created.
            type: string
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Text
      - title: PublicApiTextareaFormFieldConfig
        type: object
        required:
        - fieldType
        properties:
          placeholder:
            description: Placeholder hint shown in the input when no value has been
              entered.
            type: string
          defaultValue:
            description: Default value pre-filled when a new workflow run is created.
            type: string
          format:
            description: |
              Editor style for this Textarea field.

              - `PlainText` — plain text.
              - `RichText` — rich-text editor with formatting (bold, lists, links, etc.).
            type: string
            enum:
            - PlainText
            - RichText
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Textarea
      - title: PublicApiUrlFormFieldConfig
        type: object
        required:
        - fieldType
        properties:
          defaultValue:
            description: Default value pre-filled when a new workflow run is created.
            type: string
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Url
      discriminator:
        propertyName: fieldType
        mapping:
          Date: '#/components/schemas/PublicApiDateFormFieldConfig'
          Document: '#/components/schemas/PublicApiDocumentFormFieldConfig'
          Email: '#/components/schemas/PublicApiEmailFormFieldConfig'
          File: '#/components/schemas/PublicApiFileFormFieldConfig'
          Hidden: '#/components/schemas/PublicApiHiddenFormFieldConfig'
          Members: '#/components/schemas/PublicApiMembersFormFieldConfig'
          MultiChoice: '#/components/schemas/PublicApiMultiChoiceFormFieldConfig'
          MultiFile: '#/components/schemas/PublicApiMultiFileFormFieldConfig'
          MultiSelect: '#/components/schemas/PublicApiMultiSelectFormFieldConfig'
          Number: '#/components/schemas/PublicApiNumberFormFieldConfig'
          Select: '#/components/schemas/PublicApiSelectFormFieldConfig'
          SendRichEmail: '#/components/schemas/PublicApiSendRichEmailFormFieldConfig'
          Snippet: '#/components/schemas/PublicApiSnippetFormFieldConfig'
          Table: '#/components/schemas/PublicApiTableFormFieldConfig'
          Text: '#/components/schemas/PublicApiTextFormFieldConfig'
          Textarea: '#/components/schemas/PublicApiTextareaFormFieldConfig'
          Url: '#/components/schemas/PublicApiUrlFormFieldConfig'
    PublicApiFormFieldConstraints:
      title: PublicApiFormFieldConstraints
      oneOf:
      - title: PublicApiDateFormFieldConstraints
        type: object
        required:
        - fieldType
        properties:
          afterDate:
            description: Earliest accepted date (inclusive). Pair with `afterDateSourceType`.
            type: string
            format: date-time
          beforeDate:
            description: Latest accepted date (inclusive). Pair with `beforeDateSourceType`.
            type: string
            format: date-time
          afterDateFormFieldWidgetGroupId:
            title: EntityID
            description: When `afterDateSourceType=FormField`, the ID of the Date
              form field whose value is the lower bound.
            type: string
          beforeDateFormFieldWidgetGroupId:
            title: EntityID
            description: When `beforeDateSourceType=FormField`, the ID of the Date
              form field whose value is the upper bound.
            type: string
          afterDateSourceType:
            description: |
              How the before/after constraint date is derived.

              - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
              - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
              - `TaskDueDate` — relative to the containing task's due date.
              - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
            type: string
            enum:
            - SpecificDate
            - FormFieldValue
            - TaskDueDate
            - ChecklistStartDate
            - ChecklistDueDate
          beforeDateSourceType:
            description: |
              How the before/after constraint date is derived.

              - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
              - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
              - `TaskDueDate` — relative to the containing task's due date.
              - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
            type: string
            enum:
            - SpecificDate
            - FormFieldValue
            - TaskDueDate
            - ChecklistStartDate
            - ChecklistDueDate
          afterDateOffset:
            description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
            type: string
          beforeDateOffset:
            description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
            type: string
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Date
      - title: PublicApiEmailFormFieldConstraints
        type: object
        required:
        - fieldType
        properties:
          domains:
            description: Allowed (or blocked, depending on `restriction`) email domains
              for this field.
            type: array
            items:
              type: string
          restriction:
            description: |
              How the `domains` list filters allowed email addresses.

              - `Allow` — only emails whose domain is in the list are accepted.
              - `Block` — emails whose domain is in the list are rejected; all others accepted.
            type: string
            enum:
            - Allow
            - Block
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Email
      - title: PublicApiFileFormFieldConstraints
        type: object
        required:
        - fieldType
        properties:
          extensions:
            description: Allowed file extensions, including the leading dot (e.g.
              `.pdf`, `.docx`).
            type: array
            items:
              type: string
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: File
      - title: PublicApiMultiFileFormFieldConstraints
        type: object
        required:
        - fieldType
        properties:
          extensions:
            description: Allowed file extensions, including the leading dot (e.g.
              `.pdf`, `.docx`).
            type: array
            items:
              type: string
          mode:
            description: |
              Whether the field accepts a single file or multiple files.

              - `Single` — only one file may be uploaded.
              - `Multiple` — multiple files may be uploaded.
            type: string
            enum:
            - Multiple
            - Single
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: MultiFile
      - title: PublicApiNumberFormFieldConstraints
        type: object
        required:
        - fieldType
        properties:
          minDigits:
            description: Minimum number of digits.
            type: integer
            format: int32
          maxDigits:
            description: Maximum number of digits.
            type: integer
            format: int32
          minValue:
            description: Minimum numeric value.
            type: integer
            format: int32
          maxValue:
            description: Maximum numeric value.
            type: integer
            format: int32
          decimalPlaces:
            description: Number of decimal places to accept (0 means integers only).
            type: integer
            format: int32
          allowNegative:
            description: When `true`, negative numbers are accepted.
            type: boolean
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Number
      - title: PublicApiTextFormFieldConstraints
        type: object
        required:
        - fieldType
        properties:
          min:
            description: Inclusive lower bound.
            type: integer
            format: int32
          max:
            description: Inclusive upper bound.
            type: integer
            format: int32
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Text
      - title: PublicApiTextareaFormFieldConstraints
        type: object
        required:
        - fieldType
        properties:
          min:
            description: Inclusive lower bound.
            type: integer
            format: int32
          max:
            description: Inclusive upper bound.
            type: integer
            format: int32
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Textarea
      discriminator:
        propertyName: fieldType
        mapping:
          Date: '#/components/schemas/PublicApiDateFormFieldConstraints'
          Email: '#/components/schemas/PublicApiEmailFormFieldConstraints'
          File: '#/components/schemas/PublicApiFileFormFieldConstraints'
          MultiFile: '#/components/schemas/PublicApiMultiFileFormFieldConstraints'
          Number: '#/components/schemas/PublicApiNumberFormFieldConstraints'
          Text: '#/components/schemas/PublicApiTextFormFieldConstraints'
          Textarea: '#/components/schemas/PublicApiTextareaFormFieldConstraints'
    PublicApiFormFieldItem:
      title: PublicApiFormFieldItem
      type: object
      required:
      - name
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        name:
          description: Display name.
          type: string
    PublicApiFormFieldWidget:
      title: PublicApiFormFieldWidget
      type: object
      required:
      - hiddenByDefault
      - id
      - taskId
      - createdDate
      - createdBy
      - updatedDate
      - updatedBy
      - fieldType
      - key
      - required
      - config
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        id:
          description: The ID of the Widget
          examples:
          - muMiIQjdUdiqkwVegyNJlA
          type: string
        taskId:
          description: The ID of the Task
          examples:
          - muMiIQjdUdiqkwVegyNJlA
          type: string
        createdDate:
          description: When the resource was first created. ISO-8601 UTC.
          type: string
          format: date-time
        createdBy:
          description: User who created the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
        key:
          description: Unique key used to identify this row across imports — matches
            the data set column referenced by the webhook's `keyColumn`.
          type: string
        label:
          description: Display label shown to the end user.
          type: string
        required:
          description: When `true`, the form field must have a value before its task
            can be completed.
          type: boolean
        config:
          title: PublicApiFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          oneOf:
          - title: PublicApiDateFormFieldConfig
            type: object
            required:
            - fieldType
            properties:
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
              timeOption:
                description: |
                  How time-of-day is handled on this Date field.

                  - `Included` — the field always captures both date and time.
                  - `Excluded` — date only; time is never captured.
                  - `Optional` — the user picks whether to include a time.
                type: string
                enum:
                - Included
                - Excluded
                - Optional
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: Date
          - title: PublicApiDocumentFormFieldConfig
            type: object
            required:
            - reviewRequest
            - fieldType
            properties:
              reviewRequest:
                description: When `true`, the email requires explicit user review/send
                  rather than auto-send.
                type: boolean
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: Document
          - title: PublicApiEmailFormFieldConfig
            type: object
            required:
            - fieldType
            properties:
              placeholder:
                description: Placeholder hint shown in the input when no value has
                  been entered.
                type: string
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: Email
          - title: PublicApiFileFormFieldConfig
            type: object
            required:
            - fieldType
            properties:
              placeholder:
                description: Placeholder hint shown in the input when no value has
                  been entered.
                type: string
              extractTextContent:
                description: When `true`, server extracts text from uploaded documents
                  for use in merge tags.
                type: boolean
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: File
          - title: PublicApiHiddenFormFieldConfig
            type: object
            required:
            - fieldType
            properties:
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: Hidden
          - title: PublicApiMembersFormFieldConfig
            type: object
            required:
            - fieldType
            properties:
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
              groupId:
                title: EntityID
                description: The ID of an organization group.
                type: string
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: Members
          - title: PublicApiMultiChoiceFormFieldConfig
            type: object
            required:
            - fieldType
            properties:
              items:
                description: Available options for selection-style form fields.
                type: array
                items:
                  title: PublicApiFormFieldItem
                  type: object
                  required:
                  - name
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    name:
                      description: Display name.
                      type: string
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: MultiChoice
          - title: PublicApiMultiFileFormFieldConfig
            type: object
            required:
            - fieldType
            properties:
              placeholder:
                description: Placeholder hint shown in the input when no value has
                  been entered.
                type: string
              extractTextContent:
                description: When `true`, server extracts text from uploaded documents
                  for use in merge tags.
                type: boolean
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: MultiFile
          - title: PublicApiMultiSelectFormFieldConfig
            type: object
            required:
            - fieldType
            properties:
              items:
                description: Available options for selection-style form fields.
                type: array
                items:
                  title: PublicApiFormFieldItem
                  type: object
                  required:
                  - name
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    name:
                      description: Display name.
                      type: string
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: MultiSelect
          - title: PublicApiNumberFormFieldConfig
            type: object
            required:
            - fieldType
            properties:
              placeholder:
                description: Placeholder hint shown in the input when no value has
                  been entered.
                type: string
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
              unit:
                description: Unit label rendered next to the numeric value (e.g. `kg`,
                  `$`, `%`).
                type: string
              unitLocation:
                description: |
                  Where the unit symbol appears relative to the number.

                  - `prefix` — before the number (e.g. `$100`).
                  - `suffix` — after the number (e.g. `100 USD`).
                type: string
                enum:
                - prefix
                - suffix
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: Number
          - title: PublicApiSelectFormFieldConfig
            type: object
            required:
            - fieldType
            properties:
              items:
                description: Available options for selection-style form fields.
                type: array
                items:
                  title: PublicApiFormFieldItem
                  type: object
                  required:
                  - name
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    name:
                      description: Display name.
                      type: string
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: Select
          - title: PublicApiSendRichEmailFormFieldConfig
            type: object
            required:
            - bodyEditor
            - fieldType
            properties:
              to:
                description: Default recipient list (To). Comma-separated email addresses
                  or merge tags.
                type: array
                items:
                  type: string
              cc:
                description: Default CC list. Comma-separated email addresses or merge
                  tags.
                type: array
                items:
                  type: string
              bcc:
                description: Default BCC list. Comma-separated email addresses or
                  merge tags.
                type: array
                items:
                  type: string
              replyTo:
                description: Default Reply-To address. An email address or merge tag.
                type: array
                items:
                  type: string
              subject:
                description: Default email subject. May contain merge tags.
                type: string
              body:
                description: Default email body. May contain merge tags.
                type: string
              bodyEditor:
                description: |
                  Editor used to author the email body.

                  - `RichText` — rich-text editor with formatting.
                  - `HTML` — raw HTML editor.
                  - `PlainText` — plain text editor.
                type: string
                enum:
                - RichText
                - HTML
                - PlainText
              editAllowed:
                description: When `true`, users running the workflow can edit the
                  email before sending.
                type: boolean
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: SendRichEmail
          - title: PublicApiSnippetFormFieldConfig
            type: object
            required:
            - fieldType
            properties:
              value:
                description: The option's stored value.
                type: string
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: Snippet
          - title: PublicApiTableFormFieldConfig
            type: object
            required:
            - fieldType
            properties:
              columnDefs:
                description: Data set column definitions (name + type per column).
                type: array
                items:
                  title: PublicApiTableFormFieldColumn
                  type: object
                  required:
                  - id
                  - name
                  - columnType
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    name:
                      description: Display name.
                      type: string
                    columnType:
                      description: |
                        Data type a Table column accepts.

                        - `Text` — free-form short text.
                      type: string
                      enum:
                      - Text
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: Table
          - title: PublicApiTextFormFieldConfig
            type: object
            required:
            - fieldType
            properties:
              placeholder:
                description: Placeholder hint shown in the input when no value has
                  been entered.
                type: string
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: Text
          - title: PublicApiTextareaFormFieldConfig
            type: object
            required:
            - fieldType
            properties:
              placeholder:
                description: Placeholder hint shown in the input when no value has
                  been entered.
                type: string
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
              format:
                description: |
                  Editor style for this Textarea field.

                  - `PlainText` — plain text.
                  - `RichText` — rich-text editor with formatting (bold, lists, links, etc.).
                type: string
                enum:
                - PlainText
                - RichText
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: Textarea
          - title: PublicApiUrlFormFieldConfig
            type: object
            required:
            - fieldType
            properties:
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: Url
          discriminator:
            propertyName: fieldType
            mapping:
              Date: '#/components/schemas/PublicApiDateFormFieldConfig'
              Document: '#/components/schemas/PublicApiDocumentFormFieldConfig'
              Email: '#/components/schemas/PublicApiEmailFormFieldConfig'
              File: '#/components/schemas/PublicApiFileFormFieldConfig'
              Hidden: '#/components/schemas/PublicApiHiddenFormFieldConfig'
              Members: '#/components/schemas/PublicApiMembersFormFieldConfig'
              MultiChoice: '#/components/schemas/PublicApiMultiChoiceFormFieldConfig'
              MultiFile: '#/components/schemas/PublicApiMultiFileFormFieldConfig'
              MultiSelect: '#/components/schemas/PublicApiMultiSelectFormFieldConfig'
              Number: '#/components/schemas/PublicApiNumberFormFieldConfig'
              Select: '#/components/schemas/PublicApiSelectFormFieldConfig'
              SendRichEmail: '#/components/schemas/PublicApiSendRichEmailFormFieldConfig'
              Snippet: '#/components/schemas/PublicApiSnippetFormFieldConfig'
              Table: '#/components/schemas/PublicApiTableFormFieldConfig'
              Text: '#/components/schemas/PublicApiTextFormFieldConfig'
              Textarea: '#/components/schemas/PublicApiTextareaFormFieldConfig'
              Url: '#/components/schemas/PublicApiUrlFormFieldConfig'
        constraints:
          title: PublicApiFormFieldConstraints
          description: Field-specific validation constraints. Shape depends on `fieldType`.
          oneOf:
          - title: PublicApiDateFormFieldConstraints
            type: object
            required:
            - fieldType
            properties:
              afterDate:
                description: Earliest accepted date (inclusive). Pair with `afterDateSourceType`.
                type: string
                format: date-time
              beforeDate:
                description: Latest accepted date (inclusive). Pair with `beforeDateSourceType`.
                type: string
                format: date-time
              afterDateFormFieldWidgetGroupId:
                title: EntityID
                description: When `afterDateSourceType=FormField`, the ID of the Date
                  form field whose value is the lower bound.
                type: string
              beforeDateFormFieldWidgetGroupId:
                title: EntityID
                description: When `beforeDateSourceType=FormField`, the ID of the
                  Date form field whose value is the upper bound.
                type: string
              afterDateSourceType:
                description: |
                  How the before/after constraint date is derived.

                  - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
                  - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
                  - `TaskDueDate` — relative to the containing task's due date.
                  - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
                type: string
                enum:
                - SpecificDate
                - FormFieldValue
                - TaskDueDate
                - ChecklistStartDate
                - ChecklistDueDate
              beforeDateSourceType:
                description: |
                  How the before/after constraint date is derived.

                  - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
                  - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
                  - `TaskDueDate` — relative to the containing task's due date.
                  - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
                type: string
                enum:
                - SpecificDate
                - FormFieldValue
                - TaskDueDate
                - ChecklistStartDate
                - ChecklistDueDate
              afterDateOffset:
                description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
                type: string
              beforeDateOffset:
                description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
                type: string
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: Date
          - title: PublicApiEmailFormFieldConstraints
            type: object
            required:
            - fieldType
            properties:
              domains:
                description: Allowed (or blocked, depending on `restriction`) email
                  domains for this field.
                type: array
                items:
                  type: string
              restriction:
                description: |
                  How the `domains` list filters allowed email addresses.

                  - `Allow` — only emails whose domain is in the list are accepted.
                  - `Block` — emails whose domain is in the list are rejected; all others accepted.
                type: string
                enum:
                - Allow
                - Block
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: Email
          - title: PublicApiFileFormFieldConstraints
            type: object
            required:
            - fieldType
            properties:
              extensions:
                description: Allowed file extensions, including the leading dot (e.g.
                  `.pdf`, `.docx`).
                type: array
                items:
                  type: string
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: File
          - title: PublicApiMultiFileFormFieldConstraints
            type: object
            required:
            - fieldType
            properties:
              extensions:
                description: Allowed file extensions, including the leading dot (e.g.
                  `.pdf`, `.docx`).
                type: array
                items:
                  type: string
              mode:
                description: |
                  Whether the field accepts a single file or multiple files.

                  - `Single` — only one file may be uploaded.
                  - `Multiple` — multiple files may be uploaded.
                type: string
                enum:
                - Multiple
                - Single
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: MultiFile
          - title: PublicApiNumberFormFieldConstraints
            type: object
            required:
            - fieldType
            properties:
              minDigits:
                description: Minimum number of digits.
                type: integer
                format: int32
              maxDigits:
                description: Maximum number of digits.
                type: integer
                format: int32
              minValue:
                description: Minimum numeric value.
                type: integer
                format: int32
              maxValue:
                description: Maximum numeric value.
                type: integer
                format: int32
              decimalPlaces:
                description: Number of decimal places to accept (0 means integers
                  only).
                type: integer
                format: int32
              allowNegative:
                description: When `true`, negative numbers are accepted.
                type: boolean
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: Number
          - title: PublicApiTextFormFieldConstraints
            type: object
            required:
            - fieldType
            properties:
              min:
                description: Inclusive lower bound.
                type: integer
                format: int32
              max:
                description: Inclusive upper bound.
                type: integer
                format: int32
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: Text
          - title: PublicApiTextareaFormFieldConstraints
            type: object
            required:
            - fieldType
            properties:
              min:
                description: Inclusive lower bound.
                type: integer
                format: int32
              max:
                description: Inclusive upper bound.
                type: integer
                format: int32
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
                const: Textarea
          discriminator:
            propertyName: fieldType
            mapping:
              Date: '#/components/schemas/PublicApiDateFormFieldConstraints'
              Email: '#/components/schemas/PublicApiEmailFormFieldConstraints'
              File: '#/components/schemas/PublicApiFileFormFieldConstraints'
              MultiFile: '#/components/schemas/PublicApiMultiFileFormFieldConstraints'
              Number: '#/components/schemas/PublicApiNumberFormFieldConstraints'
              Text: '#/components/schemas/PublicApiTextFormFieldConstraints'
              Textarea: '#/components/schemas/PublicApiTextareaFormFieldConstraints'
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
        type:
          title: WidgetType
          description: |
            Widget kind discriminator.

            - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
            - `Text` — rich text content displayed on the task.
            - `Image` — image content displayed on the task.
            - `File` — downloadable file attached to the task.
            - `Video` — video content (uploaded or linked from a hosting service).
            - `Embed` — embedded external content via URL.
            - `CrossLink` — link to another workflow or page.
          type: string
          enum:
          - FormField
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
    PublicApiHiddenFormFieldConfig:
      title: PublicApiHiddenFormFieldConfig
      type: object
      required:
      - fieldType
      properties:
        defaultValue:
          description: Default value pre-filled when a new workflow run is created.
          type: string
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Hidden
    PublicApiHiddenFormFieldConfig1:
      title: PublicApiHiddenFormFieldConfig
      type: object
      properties:
        defaultValue:
          description: Default value pre-filled when a new workflow run is created.
          type: string
    PublicApiImageWidget:
      title: PublicApiImageWidget
      type: object
      required:
      - hiddenByDefault
      - id
      - taskId
      - createdDate
      - createdBy
      - updatedDate
      - updatedBy
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        id:
          description: The ID of the Widget
          examples:
          - oiQKJE_vcnbbo0bGolJI8A
          type: string
        taskId:
          description: The ID of the Task
          examples:
          - oiQKJE_vcnbbo0bGolJI8A
          type: string
        createdDate:
          description: When the resource was first created. ISO-8601 UTC.
          type: string
          format: date-time
        createdBy:
          description: User who created the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        caption:
          description: Caption text rendered with the image.
          type: string
        file:
          title: PublicApiWidgetFile
          description: Uploaded file reference. Use the upload endpoint to attach
            content.
          type: object
          required:
          - id
          - name
          - mimeType
          - size
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            name:
              description: Display name.
              type: string
            mimeType:
              description: MIME type detected at upload time (e.g. `image/png`, `application/pdf`).
              type: string
            size:
              description: File size in bytes.
              type: integer
              format: int64
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
        type:
          title: WidgetType
          description: |
            Widget kind discriminator.

            - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
            - `Text` — rich text content displayed on the task.
            - `Image` — image content displayed on the task.
            - `File` — downloadable file attached to the task.
            - `Video` — video content (uploaded or linked from a hosting service).
            - `Embed` — embedded external content via URL.
            - `CrossLink` — link to another workflow or page.
          type: string
          enum:
          - FormField
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
    PublicApiIncomingWebhook:
      title: PublicApiIncomingWebhook
      type: object
      required:
      - id
      - createdDate
      - createdBy
      - updatedDate
      - updatedBy
      - workflowId
      - name
      - automationApp
      - status
      - url
      - config
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        createdDate:
          description: When the resource was first created. ISO-8601 UTC.
          type: string
          format: date-time
        createdBy:
          description: User who created the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        workflowId:
          description: The ID of the Workflow
          examples:
          - tpxvQFAbFJnLx9jMONVJbw
          type: string
        name:
          description: Human-readable label for the webhook (e.g. "Salesforce → Onboarding").
          type: string
        automationApp:
          description: Label of the automation app or integration source (e.g. `Zapier`,
            `Custom`, `Salesforce`).
          type: string
        status:
          description: Whether the incoming webhook is currently accepting payloads.
            `Active` — incoming requests at the webhook URL create or update a workflow
            run. `Disabled` — the webhook URL is configured but requests are ignored.
          type: string
          enum:
          - Active
          - Disabled
        url:
          description: Public URL to POST payloads to. Include this in the upstream
            system's webhook config.
          type: string
        config:
          title: PublicApiIncomingWebhookConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          required:
          - properties
          - formFields
          properties:
            properties:
              description: Mapping from workflow-run property names (e.g. `Name`,
                `DueDate`, `Assignees`) to JSONPath expressions in the incoming payload.
              type: object
              additionalProperties:
                type: string
            formFields:
              description: Mapping from form-field IDs to JSONPath expressions in
                the incoming payload.
              type: object
              additionalProperties:
                type: string
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 link relation like `self`, `edit`, `related`), an `href`
            URL, and a `type` (`Api` for callable endpoints, `App` for browser-facing
            URLs). Prefer following these `href` values over constructing URLs by
            hand.
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiIncomingWebhookConfig:
      title: PublicApiIncomingWebhookConfig
      type: object
      required:
      - properties
      - formFields
      properties:
        properties:
          description: Mapping from workflow-run property names (e.g. `Name`, `DueDate`,
            `Assignees`) to JSONPath expressions in the incoming payload.
          type: object
          additionalProperties:
            type: string
        formFields:
          description: Mapping from form-field IDs to JSONPath expressions in the
            incoming payload.
          type: object
          additionalProperties:
            type: string
    PublicApiIncomingWebhookListResponse:
      title: PublicApiIncomingWebhookListResponse
      type: object
      properties:
        data:
          description: The list of resources returned by this request.
          type: array
          items:
            title: PublicApiIncomingWebhook
            type: object
            required:
            - id
            - createdDate
            - createdBy
            - updatedDate
            - updatedBy
            - workflowId
            - name
            - automationApp
            - status
            - url
            - config
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              createdDate:
                description: When the resource was first created. ISO-8601 UTC.
                type: string
                format: date-time
              createdBy:
                description: User who created the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              updatedDate:
                description: When the resource was last modified. ISO-8601 UTC.
                type: string
                format: date-time
              updatedBy:
                description: User who last modified the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              workflowId:
                description: The ID of the Workflow
                examples:
                - tpxvQFAbFJnLx9jMONVJbw
                type: string
              name:
                description: Human-readable label for the webhook (e.g. "Salesforce
                  → Onboarding").
                type: string
              automationApp:
                description: Label of the automation app or integration source (e.g.
                  `Zapier`, `Custom`, `Salesforce`).
                type: string
              status:
                description: Whether the incoming webhook is currently accepting payloads.
                  `Active` — incoming requests at the webhook URL create or update
                  a workflow run. `Disabled` — the webhook URL is configured but requests
                  are ignored.
                type: string
                enum:
                - Active
                - Disabled
              url:
                description: Public URL to POST payloads to. Include this in the upstream
                  system's webhook config.
                type: string
              config:
                title: PublicApiIncomingWebhookConfig
                description: Field-specific configuration. Shape depends on `fieldType`.
                type: object
                required:
                - properties
                - formFields
                properties:
                  properties:
                    description: Mapping from workflow-run property names (e.g. `Name`,
                      `DueDate`, `Assignees`) to JSONPath expressions in the incoming
                      payload.
                    type: object
                    additionalProperties:
                      type: string
                  formFields:
                    description: Mapping from form-field IDs to JSONPath expressions
                      in the incoming payload.
                    type: object
                    additionalProperties:
                      type: string
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                  an `href` URL, and a `type` (`Api` for callable endpoints, `App`
                  for browser-facing URLs). Prefer following these `href` values over
                  constructing URLs by hand.
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiIncomingWebhookResponse:
      title: PublicApiIncomingWebhookResponse
      type: object
      required:
      - data
      properties:
        data:
          title: PublicApiIncomingWebhook
          type: object
          required:
          - id
          - createdDate
          - createdBy
          - updatedDate
          - updatedBy
          - workflowId
          - name
          - automationApp
          - status
          - url
          - config
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            createdDate:
              description: When the resource was first created. ISO-8601 UTC.
              type: string
              format: date-time
            createdBy:
              description: User who created the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            updatedDate:
              description: When the resource was last modified. ISO-8601 UTC.
              type: string
              format: date-time
            updatedBy:
              description: User who last modified the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            workflowId:
              description: The ID of the Workflow
              examples:
              - tpxvQFAbFJnLx9jMONVJbw
              type: string
            name:
              description: Human-readable label for the webhook (e.g. "Salesforce
                → Onboarding").
              type: string
            automationApp:
              description: Label of the automation app or integration source (e.g.
                `Zapier`, `Custom`, `Salesforce`).
              type: string
            status:
              description: Whether the incoming webhook is currently accepting payloads.
                `Active` — incoming requests at the webhook URL create or update a
                workflow run. `Disabled` — the webhook URL is configured but requests
                are ignored.
              type: string
              enum:
              - Active
              - Disabled
            url:
              description: Public URL to POST payloads to. Include this in the upstream
                system's webhook config.
              type: string
            config:
              title: PublicApiIncomingWebhookConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              required:
              - properties
              - formFields
              properties:
                properties:
                  description: Mapping from workflow-run property names (e.g. `Name`,
                    `DueDate`, `Assignees`) to JSONPath expressions in the incoming
                    payload.
                  type: object
                  additionalProperties:
                    type: string
                formFields:
                  description: Mapping from form-field IDs to JSONPath expressions
                    in the incoming payload.
                  type: object
                  additionalProperties:
                    type: string
            links:
              description: Navigable HATEOAS links to related resources. Each entry
                has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                an `href` URL, and a `type` (`Api` for callable endpoints, `App` for
                browser-facing URLs). Prefer following these `href` values over constructing
                URLs by hand.
              type: array
              items:
                title: Link
                description: A HATEOAS link to a related resource. Use these to navigate
                  between resources without constructing URLs by hand.
                type: object
                required:
                - name
                - href
                - type
                properties:
                  name:
                    description: Standard link relation name (RFC 5988) indicating
                      this link's role. Common values include `self`, `edit`, `related`,
                      `previous`, `next`.
                    type: string
                  href:
                    title: Uri
                    description: URL of the linked resource.
                    examples:
                    - https://api.process.st/api/v1.1/resource/XXX
                    type: string
                  rel:
                    description: Optional. The kind of resource this link points to
                      (e.g. `Workflow`, `Task`, `Comment`).
                    type: string
                    enum:
                    - Approval Task
                    - Approvals
                    - Assignees
                    - Comment
                    - Data Set Records
                    - Data Sets
                    - Form Field Values
                    - Subject Task
                    - Task
                    - Tasks
                    - Users
                    - Webhook
                    - Workflow
                    - Workflow Run
                  type:
                    description: Whether this link targets an API endpoint or a Process
                      Street app URL. `Api` — a callable API endpoint you can fetch
                      directly. `App` — a browser-facing URL in the Process Street
                      UI.
                    type: string
                    enum:
                    - Api
                    - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiLinkedWorkflowRun:
      title: PublicApiLinkedWorkflowRun
      type: object
      required:
      - id
      - name
      - templateId
      - templateName
      properties:
        id:
          description: The ID of the Workflow Run
          examples:
          - gluc5DnUfdfH4RDo8hFDuw
          type: string
        name:
          description: Display name.
          type: string
        templateId:
          description: The ID of the Workflow
          examples:
          - gluc5DnUfdfH4RDo8hFDuw
          type: string
        templateName:
          type: string
    PublicApiLogicRule:
      title: PublicApiLogicRule
      type: object
      required:
      - id
      - condition
      - action
      - targets
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        condition:
          title: OrCondition
          type: object
          properties:
            or:
              description: List of AND-groups; the OR-condition matches if any group
                matches.
              type: array
              items:
                title: AndGroup
                type: object
                properties:
                  and:
                    description: List of conditions that must all match (AND combined
                      within a group).
                    type: array
                    items:
                      title: LeafCondition
                      type: object
                      required:
                      - widgetId
                      - operator
                      properties:
                        widgetId:
                          title: EntityID
                          description: The ID of the widget.
                          type: string
                        operator:
                          description: Comparison operator (e.g. `Is`, `IsNot`, `Contains`,
                            `IsEmpty`).
                          type: string
                        value:
                          description: The option's stored value.
                          type: string
        action:
          title: WorkflowLogicRuleAction
          description: What the rule does to its targets when conditions match. `Show`
            reveals tasks/widgets that are hidden by default. `Hide` conceals tasks/widgets
            that are visible by default.
          type: string
          enum:
          - Show
          - Hide
        targets:
          title: PublicApiTargets
          type: object
          properties:
            taskIds:
              description: IDs of the tasks this rule applies to.
              type: array
              items:
                title: EntityID
                type: string
            widgetIds:
              description: IDs of the widgets (form fields) this rule applies to.
              type: array
              items:
                title: EntityID
                type: string
        description:
          description: Optional human-readable description of what this rule does.
          type: string
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 link relation like `self`, `edit`, `related`), an `href`
            URL, and a `type` (`Api` for callable endpoints, `App` for browser-facing
            URLs). Prefer following these `href` values over constructing URLs by
            hand.
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiLogicRuleListResponse:
      title: PublicApiLogicRuleListResponse
      type: object
      properties:
        data:
          description: The list of resources returned by this request.
          type: array
          items:
            title: PublicApiLogicRule
            type: object
            required:
            - id
            - condition
            - action
            - targets
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              condition:
                title: OrCondition
                type: object
                properties:
                  or:
                    description: List of AND-groups; the OR-condition matches if any
                      group matches.
                    type: array
                    items:
                      title: AndGroup
                      type: object
                      properties:
                        and:
                          description: List of conditions that must all match (AND
                            combined within a group).
                          type: array
                          items:
                            title: LeafCondition
                            type: object
                            required:
                            - widgetId
                            - operator
                            properties:
                              widgetId:
                                title: EntityID
                                description: The ID of the widget.
                                type: string
                              operator:
                                description: Comparison operator (e.g. `Is`, `IsNot`,
                                  `Contains`, `IsEmpty`).
                                type: string
                              value:
                                description: The option's stored value.
                                type: string
              action:
                title: WorkflowLogicRuleAction
                description: What the rule does to its targets when conditions match.
                  `Show` reveals tasks/widgets that are hidden by default. `Hide`
                  conceals tasks/widgets that are visible by default.
                type: string
                enum:
                - Show
                - Hide
              targets:
                title: PublicApiTargets
                type: object
                properties:
                  taskIds:
                    description: IDs of the tasks this rule applies to.
                    type: array
                    items:
                      title: EntityID
                      type: string
                  widgetIds:
                    description: IDs of the widgets (form fields) this rule applies
                      to.
                    type: array
                    items:
                      title: EntityID
                      type: string
              description:
                description: Optional human-readable description of what this rule
                  does.
                type: string
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                  an `href` URL, and a `type` (`Api` for callable endpoints, `App`
                  for browser-facing URLs). Prefer following these `href` values over
                  constructing URLs by hand.
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiLogicRuleResponse:
      title: PublicApiLogicRuleResponse
      type: object
      required:
      - data
      properties:
        data:
          title: PublicApiLogicRule
          type: object
          required:
          - id
          - condition
          - action
          - targets
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            condition:
              title: OrCondition
              type: object
              properties:
                or:
                  description: List of AND-groups; the OR-condition matches if any
                    group matches.
                  type: array
                  items:
                    title: AndGroup
                    type: object
                    properties:
                      and:
                        description: List of conditions that must all match (AND combined
                          within a group).
                        type: array
                        items:
                          title: LeafCondition
                          type: object
                          required:
                          - widgetId
                          - operator
                          properties:
                            widgetId:
                              title: EntityID
                              description: The ID of the widget.
                              type: string
                            operator:
                              description: Comparison operator (e.g. `Is`, `IsNot`,
                                `Contains`, `IsEmpty`).
                              type: string
                            value:
                              description: The option's stored value.
                              type: string
            action:
              title: WorkflowLogicRuleAction
              description: What the rule does to its targets when conditions match.
                `Show` reveals tasks/widgets that are hidden by default. `Hide` conceals
                tasks/widgets that are visible by default.
              type: string
              enum:
              - Show
              - Hide
            targets:
              title: PublicApiTargets
              type: object
              properties:
                taskIds:
                  description: IDs of the tasks this rule applies to.
                  type: array
                  items:
                    title: EntityID
                    type: string
                widgetIds:
                  description: IDs of the widgets (form fields) this rule applies
                    to.
                  type: array
                  items:
                    title: EntityID
                    type: string
            description:
              description: Optional human-readable description of what this rule does.
              type: string
            links:
              description: Navigable HATEOAS links to related resources. Each entry
                has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                an `href` URL, and a `type` (`Api` for callable endpoints, `App` for
                browser-facing URLs). Prefer following these `href` values over constructing
                URLs by hand.
              type: array
              items:
                title: Link
                description: A HATEOAS link to a related resource. Use these to navigate
                  between resources without constructing URLs by hand.
                type: object
                required:
                - name
                - href
                - type
                properties:
                  name:
                    description: Standard link relation name (RFC 5988) indicating
                      this link's role. Common values include `self`, `edit`, `related`,
                      `previous`, `next`.
                    type: string
                  href:
                    title: Uri
                    description: URL of the linked resource.
                    examples:
                    - https://api.process.st/api/v1.1/resource/XXX
                    type: string
                  rel:
                    description: Optional. The kind of resource this link points to
                      (e.g. `Workflow`, `Task`, `Comment`).
                    type: string
                    enum:
                    - Approval Task
                    - Approvals
                    - Assignees
                    - Comment
                    - Data Set Records
                    - Data Sets
                    - Form Field Values
                    - Subject Task
                    - Task
                    - Tasks
                    - Users
                    - Webhook
                    - Workflow
                    - Workflow Run
                  type:
                    description: Whether this link targets an API endpoint or a Process
                      Street app URL. `Api` — a callable API endpoint you can fetch
                      directly. `App` — a browser-facing URL in the Process Street
                      UI.
                    type: string
                    enum:
                    - Api
                    - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiMembersFormFieldConfig:
      title: PublicApiMembersFormFieldConfig
      type: object
      required:
      - fieldType
      properties:
        defaultValue:
          description: Default value pre-filled when a new workflow run is created.
          type: string
        groupId:
          title: EntityID
          description: The ID of an organization group.
          type: string
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Members
    PublicApiMembersFormFieldConfig1:
      title: PublicApiMembersFormFieldConfig
      type: object
      properties:
        defaultValue:
          description: Default value pre-filled when a new workflow run is created.
          type: string
        groupId:
          title: EntityID
          description: The ID of an organization group.
          type: string
    PublicApiMultiChoiceFormFieldConfig:
      title: PublicApiMultiChoiceFormFieldConfig
      type: object
      required:
      - fieldType
      properties:
        items:
          description: Available options for selection-style form fields.
          type: array
          items:
            title: PublicApiFormFieldItem
            type: object
            required:
            - name
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              name:
                description: Display name.
                type: string
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: MultiChoice
    PublicApiMultiChoiceFormFieldConfig1:
      title: PublicApiMultiChoiceFormFieldConfig
      type: object
      properties:
        items:
          description: Available options for selection-style form fields.
          type: array
          items:
            title: PublicApiFormFieldItem
            type: object
            required:
            - name
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              name:
                description: Display name.
                type: string
    PublicApiMultiFileFormFieldConfig:
      title: PublicApiMultiFileFormFieldConfig
      type: object
      required:
      - fieldType
      properties:
        placeholder:
          description: Placeholder hint shown in the input when no value has been
            entered.
          type: string
        extractTextContent:
          description: When `true`, server extracts text from uploaded documents for
            use in merge tags.
          type: boolean
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: MultiFile
    PublicApiMultiFileFormFieldConfig1:
      title: PublicApiMultiFileFormFieldConfig
      type: object
      properties:
        placeholder:
          description: Placeholder hint shown in the input when no value has been
            entered.
          type: string
        extractTextContent:
          description: When `true`, server extracts text from uploaded documents for
            use in merge tags.
          type: boolean
    PublicApiMultiFileFormFieldConstraints:
      title: PublicApiMultiFileFormFieldConstraints
      type: object
      required:
      - fieldType
      properties:
        extensions:
          description: Allowed file extensions, including the leading dot (e.g. `.pdf`,
            `.docx`).
          type: array
          items:
            type: string
        mode:
          description: |
            Whether the field accepts a single file or multiple files.

            - `Single` — only one file may be uploaded.
            - `Multiple` — multiple files may be uploaded.
          type: string
          enum:
          - Multiple
          - Single
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: MultiFile
    PublicApiMultiFileFormFieldConstraints1:
      title: PublicApiMultiFileFormFieldConstraints
      type: object
      properties:
        extensions:
          description: Allowed file extensions, including the leading dot (e.g. `.pdf`,
            `.docx`).
          type: array
          items:
            type: string
        mode:
          description: |
            Whether the field accepts a single file or multiple files.

            - `Single` — only one file may be uploaded.
            - `Multiple` — multiple files may be uploaded.
          type: string
          enum:
          - Multiple
          - Single
    PublicApiMultiSelectFormFieldConfig:
      title: PublicApiMultiSelectFormFieldConfig
      type: object
      required:
      - fieldType
      properties:
        items:
          description: Available options for selection-style form fields.
          type: array
          items:
            title: PublicApiFormFieldItem
            type: object
            required:
            - name
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              name:
                description: Display name.
                type: string
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: MultiSelect
    PublicApiMultiSelectFormFieldConfig1:
      title: PublicApiMultiSelectFormFieldConfig
      type: object
      properties:
        items:
          description: Available options for selection-style form fields.
          type: array
          items:
            title: PublicApiFormFieldItem
            type: object
            required:
            - name
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              name:
                description: Display name.
                type: string
    PublicApiMyWorkItem:
      title: PublicApiMyWorkItem
      type: object
      required:
      - id
      - type
      - name
      - workflowId
      properties:
        id:
          description: The ID of the My Work item assignment.
          examples:
          - oqffq_DvC3gvuN9UgS5Duw
          type: string
        type:
          title: InboxItemType
          description: |
            Kind of My Work item.

            - `Checklist` — a workflow run assigned to the user.
            - `StandardTask` — a regular task within a workflow run.
            - `ApprovalTask` — an approval task awaiting the user's review.
            - `OneOffTask` — a standalone one-off task.
            - `Acknowledgment` — a revision-acknowledgment request after a workflow update.
          type: string
          enum:
          - Checklist
          - StandardTask
          - ApprovalTask
          - OneOffTask
          - Acknowledgment
        name:
          description: Display name of the assigned item (task name, run name, or
            one-off task name).
          type: string
        workflowId:
          description: The ID of the Workflow
          examples:
          - oqffq_DvC3gvuN9UgS5Duw
          type: string
        workflowRunId:
          title: EntityID
          description: The ID of the Workflow Run.
          type: string
        taskId:
          title: EntityID
          description: The ID of the Task.
          type: string
        dueDate:
          description: Optional due date of the underlying item. ISO-8601 UTC.
          type: string
          format: date-time
        snoozedUntil:
          description: If the item is currently snoozed, the date it un-snoozes. Absent
            if not snoozed.
          type: string
          format: date-time
        assignees:
          description: Users assigned to this item.
          type: array
          items:
            title: PublicApiUser
            examples:
            - id: lZBrdUpCPxKLORVf_RBMQA
              email: jane.doe@example.com
              username: Jane Doe
            type: object
            required:
            - id
            - email
            - username
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              email:
                description: The user's email address (also their login identifier).
                type: string
              username:
                description: The user's display name (e.g. `Jane Doe`).
                type: string
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 link relation like `self`, `edit`, `related`), an `href`
            URL, and a `type` (`Api` for callable endpoints, `App` for browser-facing
            URLs). Prefer following these `href` values over constructing URLs by
            hand.
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiMyWorkItemListResponse:
      title: PublicApiMyWorkItemListResponse
      type: object
      properties:
        data:
          description: The list of resources returned by this request.
          type: array
          items:
            title: PublicApiMyWorkItem
            type: object
            required:
            - id
            - type
            - name
            - workflowId
            properties:
              id:
                description: The ID of the My Work item assignment.
                examples:
                - oqffq_DvC3gvuN9UgS5Duw
                type: string
              type:
                title: InboxItemType
                description: |
                  Kind of My Work item.

                  - `Checklist` — a workflow run assigned to the user.
                  - `StandardTask` — a regular task within a workflow run.
                  - `ApprovalTask` — an approval task awaiting the user's review.
                  - `OneOffTask` — a standalone one-off task.
                  - `Acknowledgment` — a revision-acknowledgment request after a workflow update.
                type: string
                enum:
                - Checklist
                - StandardTask
                - ApprovalTask
                - OneOffTask
                - Acknowledgment
              name:
                description: Display name of the assigned item (task name, run name,
                  or one-off task name).
                type: string
              workflowId:
                description: The ID of the Workflow
                examples:
                - oqffq_DvC3gvuN9UgS5Duw
                type: string
              workflowRunId:
                title: EntityID
                description: The ID of the Workflow Run.
                type: string
              taskId:
                title: EntityID
                description: The ID of the Task.
                type: string
              dueDate:
                description: Optional due date of the underlying item. ISO-8601 UTC.
                type: string
                format: date-time
              snoozedUntil:
                description: If the item is currently snoozed, the date it un-snoozes.
                  Absent if not snoozed.
                type: string
                format: date-time
              assignees:
                description: Users assigned to this item.
                type: array
                items:
                  title: PublicApiUser
                  examples:
                  - id: lZBrdUpCPxKLORVf_RBMQA
                    email: jane.doe@example.com
                    username: Jane Doe
                  type: object
                  required:
                  - id
                  - email
                  - username
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    email:
                      description: The user's email address (also their login identifier).
                      type: string
                    username:
                      description: The user's display name (e.g. `Jane Doe`).
                      type: string
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                  an `href` URL, and a `type` (`Api` for callable endpoints, `App`
                  for browser-facing URLs). Prefer following these `href` values over
                  constructing URLs by hand.
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiMyWorkStats:
      title: PublicApiMyWorkStats
      description: The resource returned by this request.
      type: object
      required:
      - total
      - upcoming
      - overdue
      properties:
        total:
          description: Total number of active (non-completed) items assigned to the
            user.
          type: integer
          format: int64
        upcoming:
          description: Number of items with a due date in the future.
          type: integer
          format: int64
        overdue:
          description: Number of items with a due date in the past.
          type: integer
          format: int64
    PublicApiMyWorkStatsResponse:
      title: PublicApiMyWorkStatsResponse
      type: object
      required:
      - data
      properties:
        data:
          title: PublicApiMyWorkStats
          description: The resource returned by this request.
          type: object
          required:
          - total
          - upcoming
          - overdue
          properties:
            total:
              description: Total number of active (non-completed) items assigned to
                the user.
              type: integer
              format: int64
            upcoming:
              description: Number of items with a due date in the future.
              type: integer
              format: int64
            overdue:
              description: Number of items with a due date in the past.
              type: integer
              format: int64
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiNumberFormFieldConfig:
      title: PublicApiNumberFormFieldConfig
      type: object
      required:
      - fieldType
      properties:
        placeholder:
          description: Placeholder hint shown in the input when no value has been
            entered.
          type: string
        defaultValue:
          description: Default value pre-filled when a new workflow run is created.
          type: string
        unit:
          description: Unit label rendered next to the numeric value (e.g. `kg`, `$`,
            `%`).
          type: string
        unitLocation:
          description: |
            Where the unit symbol appears relative to the number.

            - `prefix` — before the number (e.g. `$100`).
            - `suffix` — after the number (e.g. `100 USD`).
          type: string
          enum:
          - prefix
          - suffix
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Number
    PublicApiNumberFormFieldConfig1:
      title: PublicApiNumberFormFieldConfig
      type: object
      properties:
        placeholder:
          description: Placeholder hint shown in the input when no value has been
            entered.
          type: string
        defaultValue:
          description: Default value pre-filled when a new workflow run is created.
          type: string
        unit:
          description: Unit label rendered next to the numeric value (e.g. `kg`, `$`,
            `%`).
          type: string
        unitLocation:
          description: |
            Where the unit symbol appears relative to the number.

            - `prefix` — before the number (e.g. `$100`).
            - `suffix` — after the number (e.g. `100 USD`).
          type: string
          enum:
          - prefix
          - suffix
    PublicApiNumberFormFieldConstraints:
      title: PublicApiNumberFormFieldConstraints
      type: object
      required:
      - fieldType
      properties:
        minDigits:
          description: Minimum number of digits.
          type: integer
          format: int32
        maxDigits:
          description: Maximum number of digits.
          type: integer
          format: int32
        minValue:
          description: Minimum numeric value.
          type: integer
          format: int32
        maxValue:
          description: Maximum numeric value.
          type: integer
          format: int32
        decimalPlaces:
          description: Number of decimal places to accept (0 means integers only).
          type: integer
          format: int32
        allowNegative:
          description: When `true`, negative numbers are accepted.
          type: boolean
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Number
    PublicApiNumberFormFieldConstraints1:
      title: PublicApiNumberFormFieldConstraints
      type: object
      properties:
        minDigits:
          description: Minimum number of digits.
          type: integer
          format: int32
        maxDigits:
          description: Maximum number of digits.
          type: integer
          format: int32
        minValue:
          description: Minimum numeric value.
          type: integer
          format: int32
        maxValue:
          description: Maximum numeric value.
          type: integer
          format: int32
        decimalPlaces:
          description: Number of decimal places to accept (0 means integers only).
          type: integer
          format: int32
        allowNegative:
          description: When `true`, negative numbers are accepted.
          type: boolean
    PublicApiOneOffTask:
      title: PublicApiOneOffTask
      description: The resource returned by this request.
      type: object
      required:
      - id
      - createdDate
      - createdBy
      - updatedDate
      - updatedBy
      - organizationId
      - name
      - status
      - required
      - visibility
      properties:
        id:
          description: The ID of the One-Off Task
          examples:
          - jd1capMwjkx_ooi5Y2NBFA
          type: string
        createdDate:
          description: When the resource was first created. ISO-8601 UTC.
          type: string
          format: date-time
        createdBy:
          description: User who created the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        organizationId:
          title: EntityID
          description: The ID of the organization this resource belongs to.
          type: string
        name:
          description: Display name of the one-off task.
          type: string
        description:
          description: Optional long-form description of the one-off task.
          type: string
        status:
          title: Status
          type: string
          enum:
          - NotCompleted
          - Completed
        dueDate:
          description: Optional due date. ISO-8601 UTC.
          type: string
          format: date-time
        required:
          description: When `true`, the task must be completed before the linked workflow
            run can be completed.
          type: boolean
        visibility:
          title: Visibility
          description: Who can see this one-off task. `Private` — only the creator
            and assignees. `Public` — visible to anyone in the organization.
          type: string
          enum:
          - Private
          - Public
        assignments:
          type: array
          items:
            title: PublicApiOneOffTaskAssignment
            type: object
            required:
            - id
            - user
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              user:
                description: User this entry refers to.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
        linkedWorkflowRun:
          title: PublicApiLinkedWorkflowRun
          type: object
          required:
          - id
          - name
          - templateId
          - templateName
          properties:
            id:
              description: The ID of the Workflow Run
              examples:
              - gluc5DnUfdfH4RDo8hFDuw
              type: string
            name:
              description: Display name.
              type: string
            templateId:
              description: The ID of the Workflow
              examples:
              - gluc5DnUfdfH4RDo8hFDuw
              type: string
            templateName:
              type: string
        subtasks:
          type: array
          items:
            title: PublicApiSubtask
            type: object
            required:
            - id
            - name
            - status
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              name:
                description: Display name.
                type: string
              status:
                description: Whether this subtask is complete. `Completed` — the subtask
                  has been checked off. `NotCompleted` — the subtask has not yet been
                  checked off.
                type: string
                enum:
                - Completed
                - NotCompleted
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 link relation like `self`, `edit`, `related`), an `href`
            URL, and a `type` (`Api` for callable endpoints, `App` for browser-facing
            URLs). Prefer following these `href` values over constructing URLs by
            hand.
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiOneOffTaskAssignment:
      title: PublicApiOneOffTaskAssignment
      type: object
      required:
      - id
      - user
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        user:
          description: User this entry refers to.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
    PublicApiOneOffTaskResponse:
      title: PublicApiOneOffTaskResponse
      type: object
      required:
      - data
      properties:
        data:
          title: PublicApiOneOffTask
          description: The resource returned by this request.
          type: object
          required:
          - id
          - createdDate
          - createdBy
          - updatedDate
          - updatedBy
          - organizationId
          - name
          - status
          - required
          - visibility
          properties:
            id:
              description: The ID of the One-Off Task
              examples:
              - jd1capMwjkx_ooi5Y2NBFA
              type: string
            createdDate:
              description: When the resource was first created. ISO-8601 UTC.
              type: string
              format: date-time
            createdBy:
              description: User who created the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            updatedDate:
              description: When the resource was last modified. ISO-8601 UTC.
              type: string
              format: date-time
            updatedBy:
              description: User who last modified the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            organizationId:
              title: EntityID
              description: The ID of the organization this resource belongs to.
              type: string
            name:
              description: Display name of the one-off task.
              type: string
            description:
              description: Optional long-form description of the one-off task.
              type: string
            status:
              title: Status
              type: string
              enum:
              - NotCompleted
              - Completed
            dueDate:
              description: Optional due date. ISO-8601 UTC.
              type: string
              format: date-time
            required:
              description: When `true`, the task must be completed before the linked
                workflow run can be completed.
              type: boolean
            visibility:
              title: Visibility
              description: Who can see this one-off task. `Private` — only the creator
                and assignees. `Public` — visible to anyone in the organization.
              type: string
              enum:
              - Private
              - Public
            assignments:
              type: array
              items:
                title: PublicApiOneOffTaskAssignment
                type: object
                required:
                - id
                - user
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  user:
                    description: User this entry refers to.
                    examples:
                    - id: lZBrdUpCPxKLORVf_RBMQA
                      email: jane.doe@example.com
                      username: Jane Doe
                    type: object
                    required:
                    - id
                    - email
                    - username
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      email:
                        description: The user's email address (also their login identifier).
                        type: string
                      username:
                        description: The user's display name (e.g. `Jane Doe`).
                        type: string
            linkedWorkflowRun:
              title: PublicApiLinkedWorkflowRun
              type: object
              required:
              - id
              - name
              - templateId
              - templateName
              properties:
                id:
                  description: The ID of the Workflow Run
                  examples:
                  - gluc5DnUfdfH4RDo8hFDuw
                  type: string
                name:
                  description: Display name.
                  type: string
                templateId:
                  description: The ID of the Workflow
                  examples:
                  - gluc5DnUfdfH4RDo8hFDuw
                  type: string
                templateName:
                  type: string
            subtasks:
              type: array
              items:
                title: PublicApiSubtask
                type: object
                required:
                - id
                - name
                - status
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  name:
                    description: Display name.
                    type: string
                  status:
                    description: Whether this subtask is complete. `Completed` — the
                      subtask has been checked off. `NotCompleted` — the subtask has
                      not yet been checked off.
                    type: string
                    enum:
                    - Completed
                    - NotCompleted
            links:
              description: Navigable HATEOAS links to related resources. Each entry
                has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                an `href` URL, and a `type` (`Api` for callable endpoints, `App` for
                browser-facing URLs). Prefer following these `href` values over constructing
                URLs by hand.
              type: array
              items:
                title: Link
                description: A HATEOAS link to a related resource. Use these to navigate
                  between resources without constructing URLs by hand.
                type: object
                required:
                - name
                - href
                - type
                properties:
                  name:
                    description: Standard link relation name (RFC 5988) indicating
                      this link's role. Common values include `self`, `edit`, `related`,
                      `previous`, `next`.
                    type: string
                  href:
                    title: Uri
                    description: URL of the linked resource.
                    examples:
                    - https://api.process.st/api/v1.1/resource/XXX
                    type: string
                  rel:
                    description: Optional. The kind of resource this link points to
                      (e.g. `Workflow`, `Task`, `Comment`).
                    type: string
                    enum:
                    - Approval Task
                    - Approvals
                    - Assignees
                    - Comment
                    - Data Set Records
                    - Data Sets
                    - Form Field Values
                    - Subject Task
                    - Task
                    - Tasks
                    - Users
                    - Webhook
                    - Workflow
                    - Workflow Run
                  type:
                    description: Whether this link targets an API endpoint or a Process
                      Street app URL. `Api` — a callable API endpoint you can fetch
                      directly. `App` — a browser-facing URL in the Process Street
                      UI.
                    type: string
                    enum:
                    - Api
                    - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiPage:
      title: PublicApiPage
      type: object
      required:
      - id
      - name
      - folderId
      - shareLevel
      - createdDate
      - createdBy
      - updatedDate
      - updatedBy
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        name:
          description: The page's name.
          type: string
        description:
          description: Optional free-form description of the page.
          type: string
        folderId:
          title: EntityID
          description: The ID of the Folder.
          type: string
        shareLevel:
          description: Controls who can view this page. `None` — only organization
            members can view this page. `View` — anyone with the link can view this
            page.
          type: string
          enum:
          - None
          - View
        referenceId:
          description: Version prefix used when version control is enabled on this
            page. Combined with the version number to form the full version identifier.
          type: string
        createdDate:
          description: When the resource was first created. ISO-8601 UTC.
          type: string
          format: date-time
        createdBy:
          description: User who created the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 link relation like `self`, `edit`, `related`), an `href`
            URL, and a `type` (`Api` for callable endpoints, `App` for browser-facing
            URLs). Prefer following these `href` values over constructing URLs by
            hand.
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiPageListResponse:
      title: PublicApiPageListResponse
      type: object
      properties:
        data:
          description: The list of resources returned by this request.
          type: array
          items:
            title: PublicApiPage
            type: object
            required:
            - id
            - name
            - folderId
            - shareLevel
            - createdDate
            - createdBy
            - updatedDate
            - updatedBy
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              name:
                description: The page's name.
                type: string
              description:
                description: Optional free-form description of the page.
                type: string
              folderId:
                title: EntityID
                description: The ID of the Folder.
                type: string
              shareLevel:
                description: Controls who can view this page. `None` — only organization
                  members can view this page. `View` — anyone with the link can view
                  this page.
                type: string
                enum:
                - None
                - View
              referenceId:
                description: Version prefix used when version control is enabled on
                  this page. Combined with the version number to form the full version
                  identifier.
                type: string
              createdDate:
                description: When the resource was first created. ISO-8601 UTC.
                type: string
                format: date-time
              createdBy:
                description: User who created the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              updatedDate:
                description: When the resource was last modified. ISO-8601 UTC.
                type: string
                format: date-time
              updatedBy:
                description: User who last modified the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                  an `href` URL, and a `type` (`Api` for callable endpoints, `App`
                  for browser-facing URLs). Prefer following these `href` values over
                  constructing URLs by hand.
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiPagePermission:
      title: PublicApiPagePermission
      type: object
      required:
      - email
      - accessLevel
      - permissions
      properties:
        email:
          description: Email address.
          type: string
        accessLevel:
          description: Access level a user or group has on this page. `Edit` — view,
            edit, and delete the page. `View` — view the page (read-only). `Custom`
            — the user's underlying permission atoms don't match any predefined level;
            inspect the `permissions` object on the same entry for the actual atoms.
          type: string
          enum:
          - Edit
          - View
          - Custom
        permissions:
          title: PublicApiPagePermissionAtoms
          description: Granular permission flags this user or group has on the page.
          type: object
          required:
          - pageRead
          - pageUpdate
          - pageDelete
          properties:
            pageRead:
              description: Can view the page.
              type: boolean
            pageUpdate:
              description: Can edit the page.
              type: boolean
            pageDelete:
              description: Can delete the page.
              type: boolean
    PublicApiPagePermissionAtoms:
      title: PublicApiPagePermissionAtoms
      description: Granular permission flags this user or group has on the page.
      type: object
      required:
      - pageRead
      - pageUpdate
      - pageDelete
      properties:
        pageRead:
          description: Can view the page.
          type: boolean
        pageUpdate:
          description: Can edit the page.
          type: boolean
        pageDelete:
          description: Can delete the page.
          type: boolean
    PublicApiPagePermissionListResponse:
      title: PublicApiPagePermissionListResponse
      type: object
      properties:
        data:
          description: The list of resources returned by this request.
          type: array
          items:
            title: PublicApiPagePermission
            type: object
            required:
            - email
            - accessLevel
            - permissions
            properties:
              email:
                description: Email address.
                type: string
              accessLevel:
                description: Access level a user or group has on this page. `Edit`
                  — view, edit, and delete the page. `View` — view the page (read-only).
                  `Custom` — the user's underlying permission atoms don't match any
                  predefined level; inspect the `permissions` object on the same entry
                  for the actual atoms.
                type: string
                enum:
                - Edit
                - View
                - Custom
              permissions:
                title: PublicApiPagePermissionAtoms
                description: Granular permission flags this user or group has on the
                  page.
                type: object
                required:
                - pageRead
                - pageUpdate
                - pageDelete
                properties:
                  pageRead:
                    description: Can view the page.
                    type: boolean
                  pageUpdate:
                    description: Can edit the page.
                    type: boolean
                  pageDelete:
                    description: Can delete the page.
                    type: boolean
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiPageResponse:
      title: PublicApiPageResponse
      type: object
      required:
      - data
      properties:
        data:
          title: PublicApiPage
          type: object
          required:
          - id
          - name
          - folderId
          - shareLevel
          - createdDate
          - createdBy
          - updatedDate
          - updatedBy
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            name:
              description: The page's name.
              type: string
            description:
              description: Optional free-form description of the page.
              type: string
            folderId:
              title: EntityID
              description: The ID of the Folder.
              type: string
            shareLevel:
              description: Controls who can view this page. `None` — only organization
                members can view this page. `View` — anyone with the link can view
                this page.
              type: string
              enum:
              - None
              - View
            referenceId:
              description: Version prefix used when version control is enabled on
                this page. Combined with the version number to form the full version
                identifier.
              type: string
            createdDate:
              description: When the resource was first created. ISO-8601 UTC.
              type: string
              format: date-time
            createdBy:
              description: User who created the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            updatedDate:
              description: When the resource was last modified. ISO-8601 UTC.
              type: string
              format: date-time
            updatedBy:
              description: User who last modified the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            links:
              description: Navigable HATEOAS links to related resources. Each entry
                has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                an `href` URL, and a `type` (`Api` for callable endpoints, `App` for
                browser-facing URLs). Prefer following these `href` values over constructing
                URLs by hand.
              type: array
              items:
                title: Link
                description: A HATEOAS link to a related resource. Use these to navigate
                  between resources without constructing URLs by hand.
                type: object
                required:
                - name
                - href
                - type
                properties:
                  name:
                    description: Standard link relation name (RFC 5988) indicating
                      this link's role. Common values include `self`, `edit`, `related`,
                      `previous`, `next`.
                    type: string
                  href:
                    title: Uri
                    description: URL of the linked resource.
                    examples:
                    - https://api.process.st/api/v1.1/resource/XXX
                    type: string
                  rel:
                    description: Optional. The kind of resource this link points to
                      (e.g. `Workflow`, `Task`, `Comment`).
                    type: string
                    enum:
                    - Approval Task
                    - Approvals
                    - Assignees
                    - Comment
                    - Data Set Records
                    - Data Sets
                    - Form Field Values
                    - Subject Task
                    - Task
                    - Tasks
                    - Users
                    - Webhook
                    - Workflow
                    - Workflow Run
                  type:
                    description: Whether this link targets an API endpoint or a Process
                      Street app URL. `Api` — a callable API endpoint you can fetch
                      directly. `App` — a browser-facing URL in the Process Street
                      UI.
                    type: string
                    enum:
                    - Api
                    - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiPageRevision:
      title: PublicApiPageRevision
      type: object
      required:
      - id
      - createdDate
      - createdBy
      - updatedDate
      - updatedBy
      - pageId
      - version
      - status
      properties:
        id:
          description: The ID of the Revision
          examples:
          - mBc542uCo2bW8bMg47xHTg
          type: string
        createdDate:
          description: When the resource was first created. ISO-8601 UTC.
          type: string
          format: date-time
        createdBy:
          description: User who created the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        pageId:
          description: The ID of the Page
          examples:
          - mBc542uCo2bW8bMg47xHTg
          type: string
        version:
          description: Revision version number; monotonically increasing per template.
          type: string
        status:
          description: Status of this revision. `Draft` — being edited; not yet published.
            `Finished` — currently published version (only one Finished revision per
            workflow/page at a time). `Revised` — was previously the published version
            but has been replaced by a newer Finished revision.
          type: string
          enum:
          - Draft
          - Finished
          - Revised
    PublicApiPageRevisionListResponse:
      title: PublicApiPageRevisionListResponse
      type: object
      properties:
        data:
          description: The list of resources returned by this request.
          type: array
          items:
            title: PublicApiPageRevision
            type: object
            required:
            - id
            - createdDate
            - createdBy
            - updatedDate
            - updatedBy
            - pageId
            - version
            - status
            properties:
              id:
                description: The ID of the Revision
                examples:
                - mBc542uCo2bW8bMg47xHTg
                type: string
              createdDate:
                description: When the resource was first created. ISO-8601 UTC.
                type: string
                format: date-time
              createdBy:
                description: User who created the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              updatedDate:
                description: When the resource was last modified. ISO-8601 UTC.
                type: string
                format: date-time
              updatedBy:
                description: User who last modified the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              pageId:
                description: The ID of the Page
                examples:
                - mBc542uCo2bW8bMg47xHTg
                type: string
              version:
                description: Revision version number; monotonically increasing per
                  template.
                type: string
              status:
                description: Status of this revision. `Draft` — being edited; not
                  yet published. `Finished` — currently published version (only one
                  Finished revision per workflow/page at a time). `Revised` — was
                  previously the published version but has been replaced by a newer
                  Finished revision.
                type: string
                enum:
                - Draft
                - Finished
                - Revised
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiPageRevisionResponse:
      title: PublicApiPageRevisionResponse
      type: object
      required:
      - data
      properties:
        data:
          title: PublicApiPageRevision
          type: object
          required:
          - id
          - createdDate
          - createdBy
          - updatedDate
          - updatedBy
          - pageId
          - version
          - status
          properties:
            id:
              description: The ID of the Revision
              examples:
              - mBc542uCo2bW8bMg47xHTg
              type: string
            createdDate:
              description: When the resource was first created. ISO-8601 UTC.
              type: string
              format: date-time
            createdBy:
              description: User who created the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            updatedDate:
              description: When the resource was last modified. ISO-8601 UTC.
              type: string
              format: date-time
            updatedBy:
              description: User who last modified the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            pageId:
              description: The ID of the Page
              examples:
              - mBc542uCo2bW8bMg47xHTg
              type: string
            version:
              description: Revision version number; monotonically increasing per template.
              type: string
            status:
              description: Status of this revision. `Draft` — being edited; not yet
                published. `Finished` — currently published version (only one Finished
                revision per workflow/page at a time). `Revised` — was previously
                the published version but has been replaced by a newer Finished revision.
              type: string
              enum:
              - Draft
              - Finished
              - Revised
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiPermissionRule:
      title: PublicApiPermissionRule
      oneOf:
      - title: DynamicPermissionRule
        type: object
        required:
        - sourceType
        - taskRead
        - taskUpdate
        - type
        properties:
          sourceType:
            title: SourceType
            description: |
              Where the user(s) that get task access are pulled from at runtime.

              - `ChecklistInitiator` — grants access to the user who started the workflow run.
              - `FormField` — grants access to users referenced by a form field on the run (`sourceWidgetId`
                identifies which Members form field).
            type: string
            enum:
            - ChecklistInitiator
            - FormField
          sourceWidgetId:
            title: EntityID
            description: 'For `sourceType=FormField`: the ID of the Members form field
              whose value drives the rule''s assignees at runtime. Absent for `sourceType=ChecklistInitiator`.'
            type: string
          taskRead:
            description: When `true`, the rule grants read access to the task.
            type: boolean
          taskUpdate:
            description: When `true`, the rule grants update access to the task (check
              off, edit form fields).
            type: boolean
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            const: Dynamic
      - title: StaticPermissionRule
        type: object
        required:
        - user
        - taskRead
        - taskUpdate
        - type
        properties:
          user:
            title: PublicApiUser
            description: User this entry refers to.
            examples:
            - id: lZBrdUpCPxKLORVf_RBMQA
              email: jane.doe@example.com
              username: Jane Doe
            type: object
            required:
            - id
            - email
            - username
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              email:
                description: The user's email address (also their login identifier).
                type: string
              username:
                description: The user's display name (e.g. `Jane Doe`).
                type: string
          taskRead:
            description: When `true`, the rule grants read access to the task.
            type: boolean
          taskUpdate:
            description: When `true`, the rule grants update access to the task (check
              off, edit form fields).
            type: boolean
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            const: Static
      discriminator:
        propertyName: type
        mapping:
          Dynamic: '#/components/schemas/DynamicPermissionRule'
          Static: '#/components/schemas/StaticPermissionRule'
    PublicApiPermissionRuleListResponse:
      title: PublicApiPermissionRuleListResponse
      type: object
      properties:
        data:
          description: The list of resources returned by this request.
          type: array
          items:
            title: PublicApiPermissionRule
            oneOf:
            - title: DynamicPermissionRule
              type: object
              required:
              - sourceType
              - taskRead
              - taskUpdate
              - type
              properties:
                sourceType:
                  title: SourceType
                  description: |
                    Where the user(s) that get task access are pulled from at runtime.

                    - `ChecklistInitiator` — grants access to the user who started the workflow run.
                    - `FormField` — grants access to users referenced by a form field on the run (`sourceWidgetId`
                      identifies which Members form field).
                  type: string
                  enum:
                  - ChecklistInitiator
                  - FormField
                sourceWidgetId:
                  title: EntityID
                  description: 'For `sourceType=FormField`: the ID of the Members
                    form field whose value drives the rule''s assignees at runtime.
                    Absent for `sourceType=ChecklistInitiator`.'
                  type: string
                taskRead:
                  description: When `true`, the rule grants read access to the task.
                  type: boolean
                taskUpdate:
                  description: When `true`, the rule grants update access to the task
                    (check off, edit form fields).
                  type: boolean
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Dynamic
            - title: StaticPermissionRule
              type: object
              required:
              - user
              - taskRead
              - taskUpdate
              - type
              properties:
                user:
                  title: PublicApiUser
                  description: User this entry refers to.
                  examples:
                  - id: lZBrdUpCPxKLORVf_RBMQA
                    email: jane.doe@example.com
                    username: Jane Doe
                  type: object
                  required:
                  - id
                  - email
                  - username
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    email:
                      description: The user's email address (also their login identifier).
                      type: string
                    username:
                      description: The user's display name (e.g. `Jane Doe`).
                      type: string
                taskRead:
                  description: When `true`, the rule grants read access to the task.
                  type: boolean
                taskUpdate:
                  description: When `true`, the rule grants update access to the task
                    (check off, edit form fields).
                  type: boolean
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Static
            discriminator:
              propertyName: type
              mapping:
                Dynamic: '#/components/schemas/DynamicPermissionRule'
                Static: '#/components/schemas/StaticPermissionRule'
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiScheduledWorkflow:
      title: PublicApiScheduledWorkflow
      type: object
      required:
      - id
      - workflowId
      - startDate
      - timeZone
      - createdDate
      - createdBy
      - updatedDate
      - updatedBy
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        workflowId:
          description: The ID of the Workflow
          examples:
          - goW3hX2vU21G-kVdsCVN5g
          type: string
        name:
          description: Optional display name for the schedule. Defaults to the workflow's
            name.
          type: string
        startDate:
          description: When the schedule first becomes active. ISO-8601 UTC. Runs
            are produced from this date forward.
          type: string
          format: date-time
        timeZone:
          description: IANA time zone (e.g. `America/New_York`) used when applying
            the recurrence.
          type: string
        duePeriod:
          description: Optional ISO-8601 duration (e.g. `P3D`) added to each scheduled
            run's start to compute its due date.
          type: string
        nextRunDate:
          description: When the next workflow run is scheduled to fire. ISO-8601 UTC.
          type: string
          format: date-time
        previousRunDate:
          description: When the most recent workflow run was fired. ISO-8601 UTC.
          type: string
          format: date-time
        createdDate:
          description: When the resource was first created. ISO-8601 UTC.
          type: string
          format: date-time
        createdBy:
          description: User who created the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        rules:
          description: Recurrence rules that drive the schedule (Daily/Weekly/Monthly/Yearly).
          type: array
          items:
            title: PublicApiScheduledWorkflowRule
            oneOf:
            - title: Daily
              type: object
              required:
              - interval
              - frequency
              properties:
                interval:
                  description: Recurrence interval. For a Weekly schedule with `interval=2`,
                    fires every other week.
                  type: integer
                  format: int32
                frequency:
                  description: |-
                    How often the workflow runs. The other fields on the rule depend on this value:
                    `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
                  type: string
                  enum:
                  - Daily
                  - Weekly
                  - Monthly
                  - Yearly
                  const: Daily
            - title: Monthly
              type: object
              required:
              - interval
              - by
              - frequency
              properties:
                interval:
                  description: Recurrence interval. For a Weekly schedule with `interval=2`,
                    fires every other week.
                  type: integer
                  format: int32
                by:
                  description: |-
                    How a `Monthly` rule recurs:
                    `DayOfMonth` repeats on the same calendar date each month (e.g. the 15th);
                    `DayOfWeek` repeats on the same weekday-of-month pattern (e.g. the second Tuesday).
                  type: string
                  enum:
                  - DayOfMonth
                  - DayOfWeek
                frequency:
                  description: |-
                    How often the workflow runs. The other fields on the rule depend on this value:
                    `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
                  type: string
                  enum:
                  - Daily
                  - Weekly
                  - Monthly
                  - Yearly
                  const: Monthly
            - title: Weekly
              type: object
              required:
              - interval
              - weekDay
              - frequency
              properties:
                interval:
                  description: Recurrence interval. For a Weekly schedule with `interval=2`,
                    fires every other week.
                  type: integer
                  format: int32
                weekDay:
                  description: Day of the week the workflow runs on. Only used by
                    `Weekly` rules.
                  type: string
                  enum:
                  - Sunday
                  - Monday
                  - Tuesday
                  - Wednesday
                  - Thursday
                  - Friday
                  - Saturday
                frequency:
                  description: |-
                    How often the workflow runs. The other fields on the rule depend on this value:
                    `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
                  type: string
                  enum:
                  - Daily
                  - Weekly
                  - Monthly
                  - Yearly
                  const: Weekly
            - title: Yearly
              type: object
              required:
              - interval
              - frequency
              properties:
                interval:
                  description: Recurrence interval. For a Weekly schedule with `interval=2`,
                    fires every other week.
                  type: integer
                  format: int32
                frequency:
                  description: |-
                    How often the workflow runs. The other fields on the rule depend on this value:
                    `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
                  type: string
                  enum:
                  - Daily
                  - Weekly
                  - Monthly
                  - Yearly
                  const: Yearly
            discriminator:
              propertyName: frequency
              mapping:
                Daily: '#/components/schemas/Daily'
                Monthly: '#/components/schemas/Monthly'
                Weekly: '#/components/schemas/Weekly'
                Yearly: '#/components/schemas/Yearly'
        assigneeEmails:
          description: Emails of users automatically assigned to each scheduled run
            when it's created.
          type: array
          items:
            type: string
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 link relation like `self`, `edit`, `related`), an `href`
            URL, and a `type` (`Api` for callable endpoints, `App` for browser-facing
            URLs). Prefer following these `href` values over constructing URLs by
            hand.
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiScheduledWorkflowListResponse:
      title: PublicApiScheduledWorkflowListResponse
      type: object
      properties:
        data:
          description: The list of resources returned by this request.
          type: array
          items:
            title: PublicApiScheduledWorkflow
            type: object
            required:
            - id
            - workflowId
            - startDate
            - timeZone
            - createdDate
            - createdBy
            - updatedDate
            - updatedBy
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              workflowId:
                description: The ID of the Workflow
                examples:
                - goW3hX2vU21G-kVdsCVN5g
                type: string
              name:
                description: Optional display name for the schedule. Defaults to the
                  workflow's name.
                type: string
              startDate:
                description: When the schedule first becomes active. ISO-8601 UTC.
                  Runs are produced from this date forward.
                type: string
                format: date-time
              timeZone:
                description: IANA time zone (e.g. `America/New_York`) used when applying
                  the recurrence.
                type: string
              duePeriod:
                description: Optional ISO-8601 duration (e.g. `P3D`) added to each
                  scheduled run's start to compute its due date.
                type: string
              nextRunDate:
                description: When the next workflow run is scheduled to fire. ISO-8601
                  UTC.
                type: string
                format: date-time
              previousRunDate:
                description: When the most recent workflow run was fired. ISO-8601
                  UTC.
                type: string
                format: date-time
              createdDate:
                description: When the resource was first created. ISO-8601 UTC.
                type: string
                format: date-time
              createdBy:
                description: User who created the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              updatedDate:
                description: When the resource was last modified. ISO-8601 UTC.
                type: string
                format: date-time
              updatedBy:
                description: User who last modified the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              rules:
                description: Recurrence rules that drive the schedule (Daily/Weekly/Monthly/Yearly).
                type: array
                items:
                  title: PublicApiScheduledWorkflowRule
                  oneOf:
                  - title: Daily
                    type: object
                    required:
                    - interval
                    - frequency
                    properties:
                      interval:
                        description: Recurrence interval. For a Weekly schedule with
                          `interval=2`, fires every other week.
                        type: integer
                        format: int32
                      frequency:
                        description: |-
                          How often the workflow runs. The other fields on the rule depend on this value:
                          `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
                        type: string
                        enum:
                        - Daily
                        - Weekly
                        - Monthly
                        - Yearly
                        const: Daily
                  - title: Monthly
                    type: object
                    required:
                    - interval
                    - by
                    - frequency
                    properties:
                      interval:
                        description: Recurrence interval. For a Weekly schedule with
                          `interval=2`, fires every other week.
                        type: integer
                        format: int32
                      by:
                        description: |-
                          How a `Monthly` rule recurs:
                          `DayOfMonth` repeats on the same calendar date each month (e.g. the 15th);
                          `DayOfWeek` repeats on the same weekday-of-month pattern (e.g. the second Tuesday).
                        type: string
                        enum:
                        - DayOfMonth
                        - DayOfWeek
                      frequency:
                        description: |-
                          How often the workflow runs. The other fields on the rule depend on this value:
                          `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
                        type: string
                        enum:
                        - Daily
                        - Weekly
                        - Monthly
                        - Yearly
                        const: Monthly
                  - title: Weekly
                    type: object
                    required:
                    - interval
                    - weekDay
                    - frequency
                    properties:
                      interval:
                        description: Recurrence interval. For a Weekly schedule with
                          `interval=2`, fires every other week.
                        type: integer
                        format: int32
                      weekDay:
                        description: Day of the week the workflow runs on. Only used
                          by `Weekly` rules.
                        type: string
                        enum:
                        - Sunday
                        - Monday
                        - Tuesday
                        - Wednesday
                        - Thursday
                        - Friday
                        - Saturday
                      frequency:
                        description: |-
                          How often the workflow runs. The other fields on the rule depend on this value:
                          `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
                        type: string
                        enum:
                        - Daily
                        - Weekly
                        - Monthly
                        - Yearly
                        const: Weekly
                  - title: Yearly
                    type: object
                    required:
                    - interval
                    - frequency
                    properties:
                      interval:
                        description: Recurrence interval. For a Weekly schedule with
                          `interval=2`, fires every other week.
                        type: integer
                        format: int32
                      frequency:
                        description: |-
                          How often the workflow runs. The other fields on the rule depend on this value:
                          `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
                        type: string
                        enum:
                        - Daily
                        - Weekly
                        - Monthly
                        - Yearly
                        const: Yearly
                  discriminator:
                    propertyName: frequency
                    mapping:
                      Daily: '#/components/schemas/Daily'
                      Monthly: '#/components/schemas/Monthly'
                      Weekly: '#/components/schemas/Weekly'
                      Yearly: '#/components/schemas/Yearly'
              assigneeEmails:
                description: Emails of users automatically assigned to each scheduled
                  run when it's created.
                type: array
                items:
                  type: string
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                  an `href` URL, and a `type` (`Api` for callable endpoints, `App`
                  for browser-facing URLs). Prefer following these `href` values over
                  constructing URLs by hand.
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiScheduledWorkflowResponse:
      title: PublicApiScheduledWorkflowResponse
      type: object
      required:
      - data
      properties:
        data:
          title: PublicApiScheduledWorkflow
          type: object
          required:
          - id
          - workflowId
          - startDate
          - timeZone
          - createdDate
          - createdBy
          - updatedDate
          - updatedBy
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            workflowId:
              description: The ID of the Workflow
              examples:
              - goW3hX2vU21G-kVdsCVN5g
              type: string
            name:
              description: Optional display name for the schedule. Defaults to the
                workflow's name.
              type: string
            startDate:
              description: When the schedule first becomes active. ISO-8601 UTC. Runs
                are produced from this date forward.
              type: string
              format: date-time
            timeZone:
              description: IANA time zone (e.g. `America/New_York`) used when applying
                the recurrence.
              type: string
            duePeriod:
              description: Optional ISO-8601 duration (e.g. `P3D`) added to each scheduled
                run's start to compute its due date.
              type: string
            nextRunDate:
              description: When the next workflow run is scheduled to fire. ISO-8601
                UTC.
              type: string
              format: date-time
            previousRunDate:
              description: When the most recent workflow run was fired. ISO-8601 UTC.
              type: string
              format: date-time
            createdDate:
              description: When the resource was first created. ISO-8601 UTC.
              type: string
              format: date-time
            createdBy:
              description: User who created the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            updatedDate:
              description: When the resource was last modified. ISO-8601 UTC.
              type: string
              format: date-time
            updatedBy:
              description: User who last modified the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            rules:
              description: Recurrence rules that drive the schedule (Daily/Weekly/Monthly/Yearly).
              type: array
              items:
                title: PublicApiScheduledWorkflowRule
                oneOf:
                - title: Daily
                  type: object
                  required:
                  - interval
                  - frequency
                  properties:
                    interval:
                      description: Recurrence interval. For a Weekly schedule with
                        `interval=2`, fires every other week.
                      type: integer
                      format: int32
                    frequency:
                      description: |-
                        How often the workflow runs. The other fields on the rule depend on this value:
                        `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
                      type: string
                      enum:
                      - Daily
                      - Weekly
                      - Monthly
                      - Yearly
                      const: Daily
                - title: Monthly
                  type: object
                  required:
                  - interval
                  - by
                  - frequency
                  properties:
                    interval:
                      description: Recurrence interval. For a Weekly schedule with
                        `interval=2`, fires every other week.
                      type: integer
                      format: int32
                    by:
                      description: |-
                        How a `Monthly` rule recurs:
                        `DayOfMonth` repeats on the same calendar date each month (e.g. the 15th);
                        `DayOfWeek` repeats on the same weekday-of-month pattern (e.g. the second Tuesday).
                      type: string
                      enum:
                      - DayOfMonth
                      - DayOfWeek
                    frequency:
                      description: |-
                        How often the workflow runs. The other fields on the rule depend on this value:
                        `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
                      type: string
                      enum:
                      - Daily
                      - Weekly
                      - Monthly
                      - Yearly
                      const: Monthly
                - title: Weekly
                  type: object
                  required:
                  - interval
                  - weekDay
                  - frequency
                  properties:
                    interval:
                      description: Recurrence interval. For a Weekly schedule with
                        `interval=2`, fires every other week.
                      type: integer
                      format: int32
                    weekDay:
                      description: Day of the week the workflow runs on. Only used
                        by `Weekly` rules.
                      type: string
                      enum:
                      - Sunday
                      - Monday
                      - Tuesday
                      - Wednesday
                      - Thursday
                      - Friday
                      - Saturday
                    frequency:
                      description: |-
                        How often the workflow runs. The other fields on the rule depend on this value:
                        `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
                      type: string
                      enum:
                      - Daily
                      - Weekly
                      - Monthly
                      - Yearly
                      const: Weekly
                - title: Yearly
                  type: object
                  required:
                  - interval
                  - frequency
                  properties:
                    interval:
                      description: Recurrence interval. For a Weekly schedule with
                        `interval=2`, fires every other week.
                      type: integer
                      format: int32
                    frequency:
                      description: |-
                        How often the workflow runs. The other fields on the rule depend on this value:
                        `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
                      type: string
                      enum:
                      - Daily
                      - Weekly
                      - Monthly
                      - Yearly
                      const: Yearly
                discriminator:
                  propertyName: frequency
                  mapping:
                    Daily: '#/components/schemas/Daily'
                    Monthly: '#/components/schemas/Monthly'
                    Weekly: '#/components/schemas/Weekly'
                    Yearly: '#/components/schemas/Yearly'
            assigneeEmails:
              description: Emails of users automatically assigned to each scheduled
                run when it's created.
              type: array
              items:
                type: string
            links:
              description: Navigable HATEOAS links to related resources. Each entry
                has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                an `href` URL, and a `type` (`Api` for callable endpoints, `App` for
                browser-facing URLs). Prefer following these `href` values over constructing
                URLs by hand.
              type: array
              items:
                title: Link
                description: A HATEOAS link to a related resource. Use these to navigate
                  between resources without constructing URLs by hand.
                type: object
                required:
                - name
                - href
                - type
                properties:
                  name:
                    description: Standard link relation name (RFC 5988) indicating
                      this link's role. Common values include `self`, `edit`, `related`,
                      `previous`, `next`.
                    type: string
                  href:
                    title: Uri
                    description: URL of the linked resource.
                    examples:
                    - https://api.process.st/api/v1.1/resource/XXX
                    type: string
                  rel:
                    description: Optional. The kind of resource this link points to
                      (e.g. `Workflow`, `Task`, `Comment`).
                    type: string
                    enum:
                    - Approval Task
                    - Approvals
                    - Assignees
                    - Comment
                    - Data Set Records
                    - Data Sets
                    - Form Field Values
                    - Subject Task
                    - Task
                    - Tasks
                    - Users
                    - Webhook
                    - Workflow
                    - Workflow Run
                  type:
                    description: Whether this link targets an API endpoint or a Process
                      Street app URL. `Api` — a callable API endpoint you can fetch
                      directly. `App` — a browser-facing URL in the Process Street
                      UI.
                    type: string
                    enum:
                    - Api
                    - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiScheduledWorkflowRule:
      title: PublicApiScheduledWorkflowRule
      oneOf:
      - title: Daily
        type: object
        required:
        - interval
        - frequency
        properties:
          interval:
            description: Recurrence interval. For a Weekly schedule with `interval=2`,
              fires every other week.
            type: integer
            format: int32
          frequency:
            description: |-
              How often the workflow runs. The other fields on the rule depend on this value:
              `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
            type: string
            enum:
            - Daily
            - Weekly
            - Monthly
            - Yearly
            const: Daily
      - title: Monthly
        type: object
        required:
        - interval
        - by
        - frequency
        properties:
          interval:
            description: Recurrence interval. For a Weekly schedule with `interval=2`,
              fires every other week.
            type: integer
            format: int32
          by:
            description: |-
              How a `Monthly` rule recurs:
              `DayOfMonth` repeats on the same calendar date each month (e.g. the 15th);
              `DayOfWeek` repeats on the same weekday-of-month pattern (e.g. the second Tuesday).
            type: string
            enum:
            - DayOfMonth
            - DayOfWeek
          frequency:
            description: |-
              How often the workflow runs. The other fields on the rule depend on this value:
              `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
            type: string
            enum:
            - Daily
            - Weekly
            - Monthly
            - Yearly
            const: Monthly
      - title: Weekly
        type: object
        required:
        - interval
        - weekDay
        - frequency
        properties:
          interval:
            description: Recurrence interval. For a Weekly schedule with `interval=2`,
              fires every other week.
            type: integer
            format: int32
          weekDay:
            description: Day of the week the workflow runs on. Only used by `Weekly`
              rules.
            type: string
            enum:
            - Sunday
            - Monday
            - Tuesday
            - Wednesday
            - Thursday
            - Friday
            - Saturday
          frequency:
            description: |-
              How often the workflow runs. The other fields on the rule depend on this value:
              `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
            type: string
            enum:
            - Daily
            - Weekly
            - Monthly
            - Yearly
            const: Weekly
      - title: Yearly
        type: object
        required:
        - interval
        - frequency
        properties:
          interval:
            description: Recurrence interval. For a Weekly schedule with `interval=2`,
              fires every other week.
            type: integer
            format: int32
          frequency:
            description: |-
              How often the workflow runs. The other fields on the rule depend on this value:
              `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
            type: string
            enum:
            - Daily
            - Weekly
            - Monthly
            - Yearly
            const: Yearly
      discriminator:
        propertyName: frequency
        mapping:
          Daily: '#/components/schemas/Daily'
          Monthly: '#/components/schemas/Monthly'
          Weekly: '#/components/schemas/Weekly'
          Yearly: '#/components/schemas/Yearly'
    PublicApiSelectFormFieldConfig:
      title: PublicApiSelectFormFieldConfig
      type: object
      required:
      - fieldType
      properties:
        items:
          description: Available options for selection-style form fields.
          type: array
          items:
            title: PublicApiFormFieldItem
            type: object
            required:
            - name
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              name:
                description: Display name.
                type: string
        defaultValue:
          description: Default value pre-filled when a new workflow run is created.
          type: string
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Select
    PublicApiSelectFormFieldConfig1:
      title: PublicApiSelectFormFieldConfig
      type: object
      properties:
        items:
          description: Available options for selection-style form fields.
          type: array
          items:
            title: PublicApiFormFieldItem
            type: object
            required:
            - name
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              name:
                description: Display name.
                type: string
        defaultValue:
          description: Default value pre-filled when a new workflow run is created.
          type: string
    PublicApiSendRichEmailFormFieldConfig:
      title: PublicApiSendRichEmailFormFieldConfig
      type: object
      required:
      - bodyEditor
      - fieldType
      properties:
        to:
          description: Default recipient list (To). Comma-separated email addresses
            or merge tags.
          type: array
          items:
            type: string
        cc:
          description: Default CC list. Comma-separated email addresses or merge tags.
          type: array
          items:
            type: string
        bcc:
          description: Default BCC list. Comma-separated email addresses or merge
            tags.
          type: array
          items:
            type: string
        replyTo:
          description: Default Reply-To address. An email address or merge tag.
          type: array
          items:
            type: string
        subject:
          description: Default email subject. May contain merge tags.
          type: string
        body:
          description: Default email body. May contain merge tags.
          type: string
        bodyEditor:
          description: |
            Editor used to author the email body.

            - `RichText` — rich-text editor with formatting.
            - `HTML` — raw HTML editor.
            - `PlainText` — plain text editor.
          type: string
          enum:
          - RichText
          - HTML
          - PlainText
        editAllowed:
          description: When `true`, users running the workflow can edit the email
            before sending.
          type: boolean
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: SendRichEmail
    PublicApiSendRichEmailFormFieldConfig1:
      title: PublicApiSendRichEmailFormFieldConfig
      type: object
      required:
      - bodyEditor
      properties:
        to:
          description: Default recipient list (To). Comma-separated email addresses
            or merge tags.
          type: array
          items:
            type: string
        cc:
          description: Default CC list. Comma-separated email addresses or merge tags.
          type: array
          items:
            type: string
        bcc:
          description: Default BCC list. Comma-separated email addresses or merge
            tags.
          type: array
          items:
            type: string
        replyTo:
          description: Default Reply-To address. An email address or merge tag.
          type: array
          items:
            type: string
        subject:
          description: Default email subject. May contain merge tags.
          type: string
        body:
          description: Default email body. May contain merge tags.
          type: string
        bodyEditor:
          description: |
            Editor used to author the email body.

            - `RichText` — rich-text editor with formatting.
            - `HTML` — raw HTML editor.
            - `PlainText` — plain text editor.
          type: string
          enum:
          - RichText
          - HTML
          - PlainText
        editAllowed:
          description: When `true`, users running the workflow can edit the email
            before sending.
          type: boolean
    PublicApiSnippetFormFieldConfig:
      title: PublicApiSnippetFormFieldConfig
      type: object
      required:
      - fieldType
      properties:
        value:
          description: The option's stored value.
          type: string
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Snippet
    PublicApiSnippetFormFieldConfig1:
      title: PublicApiSnippetFormFieldConfig
      type: object
      properties:
        value:
          description: The option's stored value.
          type: string
    PublicApiSnoozedAssignment:
      title: PublicApiSnoozedAssignment
      description: The resource returned by this request.
      type: object
      required:
      - id
      - itemId
      - until
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        itemId:
          title: EntityID
          type: string
        until:
          description: The date until which the item is snoozed (ISO-8601).
          type: string
          format: date-time
    PublicApiSnoozedAssignmentResponse:
      title: PublicApiSnoozedAssignmentResponse
      type: object
      required:
      - data
      properties:
        data:
          title: PublicApiSnoozedAssignment
          description: The resource returned by this request.
          type: object
          required:
          - id
          - itemId
          - until
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            itemId:
              title: EntityID
              type: string
            until:
              description: The date until which the item is snoozed (ISO-8601).
              type: string
              format: date-time
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiSubtask:
      title: PublicApiSubtask
      type: object
      required:
      - id
      - name
      - status
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        name:
          description: Display name.
          type: string
        status:
          description: Whether this subtask is complete. `Completed` — the subtask
            has been checked off. `NotCompleted` — the subtask has not yet been checked
            off.
          type: string
          enum:
          - Completed
          - NotCompleted
    PublicApiTableFormFieldColumn:
      title: PublicApiTableFormFieldColumn
      type: object
      required:
      - id
      - name
      - columnType
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        name:
          description: Display name.
          type: string
        columnType:
          description: |
            Data type a Table column accepts.

            - `Text` — free-form short text.
          type: string
          enum:
          - Text
    PublicApiTableFormFieldConfig:
      title: PublicApiTableFormFieldConfig
      type: object
      required:
      - fieldType
      properties:
        columnDefs:
          description: Data set column definitions (name + type per column).
          type: array
          items:
            title: PublicApiTableFormFieldColumn
            type: object
            required:
            - id
            - name
            - columnType
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              name:
                description: Display name.
                type: string
              columnType:
                description: |
                  Data type a Table column accepts.

                  - `Text` — free-form short text.
                type: string
                enum:
                - Text
        defaultValue:
          description: Default value pre-filled when a new workflow run is created.
          type: string
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Table
    PublicApiTableFormFieldConfig1:
      title: PublicApiTableFormFieldConfig
      type: object
      properties:
        columnDefs:
          description: Data set column definitions (name + type per column).
          type: array
          items:
            title: PublicApiTableFormFieldColumn
            type: object
            required:
            - id
            - name
            - columnType
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              name:
                description: Display name.
                type: string
              columnType:
                description: |
                  Data type a Table column accepts.

                  - `Text` — free-form short text.
                type: string
                enum:
                - Text
        defaultValue:
          description: Default value pre-filled when a new workflow run is created.
          type: string
    PublicApiTargets:
      title: PublicApiTargets
      type: object
      properties:
        taskIds:
          description: IDs of the tasks this rule applies to.
          type: array
          items:
            title: EntityID
            type: string
        widgetIds:
          description: IDs of the widgets (form fields) this rule applies to.
          type: array
          items:
            title: EntityID
            type: string
    PublicApiTask:
      title: PublicApiTask
      type: object
      required:
      - id
      - updatedDate
      - updatedBy
      - workflowRunId
      - status
      - name
      - hidden
      - stopped
      - taskType
      properties:
        id:
          description: The ID of the Task
          examples:
          - jtcHaR4Co9dBB0YxDpxFaQ
          type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          title: PublicApiUser
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        completedDate:
          description: When the task was marked complete, if it is. ISO-8601 UTC.
          type: string
          format: date-time
        completedBy:
          title: PublicApiUser
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        workflowRunId:
          description: The ID of the Workflow Run
          examples:
          - jtcHaR4Co9dBB0YxDpxFaQ
          type: string
        status:
          title: Status
          type: string
          enum:
          - NotCompleted
          - Completed
        dueDate:
          description: Optional task-level due date. ISO-8601 UTC.
          type: string
          format: date-time
        name:
          description: Display name of the task.
          type: string
        hidden:
          description: Whether the task is hidden by Conditional Logic.
          type: boolean
        stopped:
          description: Whether the task is blocked (stopped) by an incomplete prior
            stop task.
          type: boolean
        taskType:
          title: TaskType
          description: |
            What the task does.

            - `Standard` — a regular task that a user manually checks off when done.
            - `Approval` — an approval task; a reviewer approves or rejects it, gating subsequent tasks.
            - `AI` — an automated task that runs an AI prompt to populate form field values.
            - `Code` — an automated task that runs a custom code snippet.
          type: string
          enum:
          - Standard
          - Approval
          - AI
          - Code
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 link relation like `self`, `edit`, `related`), an `href`
            URL, and a `type` (`Api` for callable endpoints, `App` for browser-facing
            URLs). Prefer following these `href` values over constructing URLs by
            hand.
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiTaskConfig:
      title: PublicApiTaskConfig
      oneOf:
      - title: PublicApiAiTaskConfig
        type: object
        required:
        - prompt
        - type
        properties:
          prompt:
            description: AI prompt template. May contain merge tags referencing form
              field values.
            type: string
          systemPrompt:
            description: Optional system message prepended to the AI prompt to set
              its behaviour.
            type: string
          outputMapping:
            description: Mapping from prompt/code output keys to form field IDs that
              receive the values.
            type: object
            additionalProperties:
              title: EntityID
              type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            const: Ai
      - title: PublicApiApprovalTaskConfig
        type: object
        required:
        - type
        properties:
          subjectTaskIds:
            description: IDs of the tasks reviewed by an approval task.
            type: array
            items:
              title: EntityID
              type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            const: Approval
      - title: PublicApiCodeTaskConfig
        type: object
        required:
        - code
        - type
        properties:
          code:
            description: Code snippet executed by this Code task.
            type: string
          inputMapping:
            description: Mapping from prompt/code input keys to form field IDs whose
              values are passed in.
            type: object
            additionalProperties:
              title: EntityID
              type: string
          outputMapping:
            description: Mapping from prompt/code output keys to form field IDs that
              receive the values.
            type: object
            additionalProperties:
              title: EntityID
              type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            const: Code
      discriminator:
        propertyName: type
        mapping:
          Ai: '#/components/schemas/PublicApiAiTaskConfig'
          Approval: '#/components/schemas/PublicApiApprovalTaskConfig'
          Code: '#/components/schemas/PublicApiCodeTaskConfig'
    PublicApiTaskConfigResponse:
      title: PublicApiTaskConfigResponse
      type: object
      required:
      - data
      properties:
        data:
          title: PublicApiTaskConfig
          oneOf:
          - title: PublicApiAiTaskConfig
            type: object
            required:
            - prompt
            - type
            properties:
              prompt:
                description: AI prompt template. May contain merge tags referencing
                  form field values.
                type: string
              systemPrompt:
                description: Optional system message prepended to the AI prompt to
                  set its behaviour.
                type: string
              outputMapping:
                description: Mapping from prompt/code output keys to form field IDs
                  that receive the values.
                type: object
                additionalProperties:
                  title: EntityID
                  type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Ai
          - title: PublicApiApprovalTaskConfig
            type: object
            required:
            - type
            properties:
              subjectTaskIds:
                description: IDs of the tasks reviewed by an approval task.
                type: array
                items:
                  title: EntityID
                  type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Approval
          - title: PublicApiCodeTaskConfig
            type: object
            required:
            - code
            - type
            properties:
              code:
                description: Code snippet executed by this Code task.
                type: string
              inputMapping:
                description: Mapping from prompt/code input keys to form field IDs
                  whose values are passed in.
                type: object
                additionalProperties:
                  title: EntityID
                  type: string
              outputMapping:
                description: Mapping from prompt/code output keys to form field IDs
                  that receive the values.
                type: object
                additionalProperties:
                  title: EntityID
                  type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Code
          discriminator:
            propertyName: type
            mapping:
              Ai: '#/components/schemas/PublicApiAiTaskConfig'
              Approval: '#/components/schemas/PublicApiApprovalTaskConfig'
              Code: '#/components/schemas/PublicApiCodeTaskConfig'
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiTaskDueDateRule:
      title: PublicApiTaskDueDateRule
      description: The task's due date rule, or `null` if none is set.
      type: object
      required:
      - sourceType
      - offsetDirection
      - dueOffset
      - businessDaysHandlingMode
      properties:
        sourceType:
          description: How the task's due date is derived. `ChecklistStartDate` /
            `ChecklistDueDate` — relative to the workflow run's start or due date.
            `TaskCompletedDate` / `TaskDueDate` — relative to a specific source task
            (requires `sourceTaskId`). `PreviousTaskCompletedDate` — relative to the
            task immediately before this one. `FormFieldValue` — relative to a Date
            form field value (requires `sourceWidgetId`).
          type: string
          enum:
          - FormFieldValue
          - TaskCompletedDate
          - PreviousTaskCompletedDate
          - TaskDueDate
          - ChecklistStartDate
          - ChecklistDueDate
        sourceWidgetId:
          title: EntityID
          description: 'For `sourceType=FormField`: the ID of the Members form field
            whose value drives the rule''s assignees at runtime. Absent for `sourceType=ChecklistInitiator`.'
          type: string
        sourceTaskId:
          title: EntityID
          type: string
        offsetDirection:
          description: Whether the offset applies before or after the source date.
          type: string
          enum:
          - Before
          - After
        dueOffset:
          description: ISO-8601 duration (e.g. `P7D`, `PT4H30M`).
          type: string
        businessDaysHandlingMode:
          title: BusinessDaysHandlingMode
          description: How non-business days are handled when calculating the due
            date. `AllDays` counts every day. `BusinessDaysOnly` counts only Monday–Friday.
            `ShiftToNextBusinessDay` calculates using all days then moves a Saturday/Sunday
            result to the next Monday.
          type: string
          enum:
          - AllDays
          - BusinessDaysOnly
          - ShiftToNextBusinessDay
    PublicApiTaskTemplate:
      title: PublicApiTaskTemplate
      type: object
      required:
      - id
      - audit
      - workflowId
      - orderTree
      - stopTask
      - hiddenByDefault
      - taskType
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        audit:
          title: PublicApiAudit
          description: Creation and last-modification metadata.
          type: object
          required:
          - createdDate
          - createdBy
          - updatedDate
          - updatedBy
          properties:
            createdDate:
              description: When the resource was first created. ISO-8601 UTC.
              type: string
              format: date-time
            createdBy:
              title: PublicApiUser
              description: User who created the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            updatedDate:
              description: When the resource was last modified. ISO-8601 UTC.
              type: string
              format: date-time
            updatedBy:
              title: PublicApiUser
              description: User who last modified the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
        workflowId:
          title: EntityID
          description: The ID of the Workflow.
          type: string
        name:
          description: Display name of the task template.
          type: string
        orderTree:
          description: Opaque ordering token; task templates sort lexicographically
            by this value within a revision.
          type: string
        stopTask:
          description: When `true`, this task acts as a stop — subsequent tasks within
            the revision are blocked until it's completed at runtime.
          type: boolean
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        taskType:
          title: TaskType
          description: |
            What the task does.

            - `Standard` — a regular task that a user manually checks off when done.
            - `Approval` — an approval task; a reviewer approves or rejects it, gating subsequent tasks.
            - `AI` — an automated task that runs an AI prompt to populate form field values.
            - `Code` — an automated task that runs a custom code snippet.
          type: string
          enum:
          - Standard
          - Approval
          - AI
          - Code
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 link relation like `self`, `edit`, `related`), an `href`
            URL, and a `type` (`Api` for callable endpoints, `App` for browser-facing
            URLs). Prefer following these `href` values over constructing URLs by
            hand.
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiTaskTemplateListResponse:
      title: PublicApiTaskTemplateListResponse
      type: object
      properties:
        data:
          description: The list of resources returned by this request.
          type: array
          items:
            title: PublicApiTaskTemplate
            type: object
            required:
            - id
            - audit
            - workflowId
            - orderTree
            - stopTask
            - hiddenByDefault
            - taskType
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              audit:
                title: PublicApiAudit
                description: Creation and last-modification metadata.
                type: object
                required:
                - createdDate
                - createdBy
                - updatedDate
                - updatedBy
                properties:
                  createdDate:
                    description: When the resource was first created. ISO-8601 UTC.
                    type: string
                    format: date-time
                  createdBy:
                    title: PublicApiUser
                    description: User who created the resource.
                    examples:
                    - id: lZBrdUpCPxKLORVf_RBMQA
                      email: jane.doe@example.com
                      username: Jane Doe
                    type: object
                    required:
                    - id
                    - email
                    - username
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      email:
                        description: The user's email address (also their login identifier).
                        type: string
                      username:
                        description: The user's display name (e.g. `Jane Doe`).
                        type: string
                  updatedDate:
                    description: When the resource was last modified. ISO-8601 UTC.
                    type: string
                    format: date-time
                  updatedBy:
                    title: PublicApiUser
                    description: User who last modified the resource.
                    examples:
                    - id: lZBrdUpCPxKLORVf_RBMQA
                      email: jane.doe@example.com
                      username: Jane Doe
                    type: object
                    required:
                    - id
                    - email
                    - username
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      email:
                        description: The user's email address (also their login identifier).
                        type: string
                      username:
                        description: The user's display name (e.g. `Jane Doe`).
                        type: string
              workflowId:
                title: EntityID
                description: The ID of the Workflow.
                type: string
              name:
                description: Display name of the task template.
                type: string
              orderTree:
                description: Opaque ordering token; task templates sort lexicographically
                  by this value within a revision.
                type: string
              stopTask:
                description: When `true`, this task acts as a stop — subsequent tasks
                  within the revision are blocked until it's completed at runtime.
                type: boolean
              hiddenByDefault:
                description: When `true`, the widget is hidden by default; conditional
                  logic rules can reveal it at runtime. Defaults to `false`.
                type: boolean
              taskType:
                title: TaskType
                description: |
                  What the task does.

                  - `Standard` — a regular task that a user manually checks off when done.
                  - `Approval` — an approval task; a reviewer approves or rejects it, gating subsequent tasks.
                  - `AI` — an automated task that runs an AI prompt to populate form field values.
                  - `Code` — an automated task that runs a custom code snippet.
                type: string
                enum:
                - Standard
                - Approval
                - AI
                - Code
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                  an `href` URL, and a `type` (`Api` for callable endpoints, `App`
                  for browser-facing URLs). Prefer following these `href` values over
                  constructing URLs by hand.
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiTaskTemplateResponse:
      title: PublicApiTaskTemplateResponse
      type: object
      required:
      - data
      properties:
        data:
          title: PublicApiTaskTemplate
          type: object
          required:
          - id
          - audit
          - workflowId
          - orderTree
          - stopTask
          - hiddenByDefault
          - taskType
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            audit:
              title: PublicApiAudit
              description: Creation and last-modification metadata.
              type: object
              required:
              - createdDate
              - createdBy
              - updatedDate
              - updatedBy
              properties:
                createdDate:
                  description: When the resource was first created. ISO-8601 UTC.
                  type: string
                  format: date-time
                createdBy:
                  title: PublicApiUser
                  description: User who created the resource.
                  examples:
                  - id: lZBrdUpCPxKLORVf_RBMQA
                    email: jane.doe@example.com
                    username: Jane Doe
                  type: object
                  required:
                  - id
                  - email
                  - username
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    email:
                      description: The user's email address (also their login identifier).
                      type: string
                    username:
                      description: The user's display name (e.g. `Jane Doe`).
                      type: string
                updatedDate:
                  description: When the resource was last modified. ISO-8601 UTC.
                  type: string
                  format: date-time
                updatedBy:
                  title: PublicApiUser
                  description: User who last modified the resource.
                  examples:
                  - id: lZBrdUpCPxKLORVf_RBMQA
                    email: jane.doe@example.com
                    username: Jane Doe
                  type: object
                  required:
                  - id
                  - email
                  - username
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    email:
                      description: The user's email address (also their login identifier).
                      type: string
                    username:
                      description: The user's display name (e.g. `Jane Doe`).
                      type: string
            workflowId:
              title: EntityID
              description: The ID of the Workflow.
              type: string
            name:
              description: Display name of the task template.
              type: string
            orderTree:
              description: Opaque ordering token; task templates sort lexicographically
                by this value within a revision.
              type: string
            stopTask:
              description: When `true`, this task acts as a stop — subsequent tasks
                within the revision are blocked until it's completed at runtime.
              type: boolean
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            taskType:
              title: TaskType
              description: |
                What the task does.

                - `Standard` — a regular task that a user manually checks off when done.
                - `Approval` — an approval task; a reviewer approves or rejects it, gating subsequent tasks.
                - `AI` — an automated task that runs an AI prompt to populate form field values.
                - `Code` — an automated task that runs a custom code snippet.
              type: string
              enum:
              - Standard
              - Approval
              - AI
              - Code
            links:
              description: Navigable HATEOAS links to related resources. Each entry
                has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                an `href` URL, and a `type` (`Api` for callable endpoints, `App` for
                browser-facing URLs). Prefer following these `href` values over constructing
                URLs by hand.
              type: array
              items:
                title: Link
                description: A HATEOAS link to a related resource. Use these to navigate
                  between resources without constructing URLs by hand.
                type: object
                required:
                - name
                - href
                - type
                properties:
                  name:
                    description: Standard link relation name (RFC 5988) indicating
                      this link's role. Common values include `self`, `edit`, `related`,
                      `previous`, `next`.
                    type: string
                  href:
                    title: Uri
                    description: URL of the linked resource.
                    examples:
                    - https://api.process.st/api/v1.1/resource/XXX
                    type: string
                  rel:
                    description: Optional. The kind of resource this link points to
                      (e.g. `Workflow`, `Task`, `Comment`).
                    type: string
                    enum:
                    - Approval Task
                    - Approvals
                    - Assignees
                    - Comment
                    - Data Set Records
                    - Data Sets
                    - Form Field Values
                    - Subject Task
                    - Task
                    - Tasks
                    - Users
                    - Webhook
                    - Workflow
                    - Workflow Run
                  type:
                    description: Whether this link targets an API endpoint or a Process
                      Street app URL. `Api` — a callable API endpoint you can fetch
                      directly. `App` — a browser-facing URL in the Process Street
                      UI.
                    type: string
                    enum:
                    - Api
                    - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiTextFormFieldConfig:
      title: PublicApiTextFormFieldConfig
      type: object
      required:
      - fieldType
      properties:
        placeholder:
          description: Placeholder hint shown in the input when no value has been
            entered.
          type: string
        defaultValue:
          description: Default value pre-filled when a new workflow run is created.
          type: string
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Text
    PublicApiTextFormFieldConfig1:
      title: PublicApiTextFormFieldConfig
      type: object
      properties:
        placeholder:
          description: Placeholder hint shown in the input when no value has been
            entered.
          type: string
        defaultValue:
          description: Default value pre-filled when a new workflow run is created.
          type: string
    PublicApiTextFormFieldConstraints:
      title: PublicApiTextFormFieldConstraints
      type: object
      required:
      - fieldType
      properties:
        min:
          description: Inclusive lower bound.
          type: integer
          format: int32
        max:
          description: Inclusive upper bound.
          type: integer
          format: int32
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Text
    PublicApiTextFormFieldConstraints1:
      title: PublicApiTextFormFieldConstraints
      type: object
      properties:
        min:
          description: Inclusive lower bound.
          type: integer
          format: int32
        max:
          description: Inclusive upper bound.
          type: integer
          format: int32
    PublicApiTextWidget:
      title: PublicApiTextWidget
      type: object
      required:
      - hiddenByDefault
      - id
      - taskId
      - createdDate
      - createdBy
      - updatedDate
      - updatedBy
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        id:
          description: The ID of the Widget
          examples:
          - uMyEwJTg0CAPKh-XTupKwg
          type: string
        taskId:
          description: The ID of the Task
          examples:
          - uMyEwJTg0CAPKh-XTupKwg
          type: string
        createdDate:
          description: When the resource was first created. ISO-8601 UTC.
          type: string
          format: date-time
        createdBy:
          description: User who created the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        content:
          description: Rich text content. May contain merge tags.
          type: string
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
        type:
          title: WidgetType
          description: |
            Widget kind discriminator.

            - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
            - `Text` — rich text content displayed on the task.
            - `Image` — image content displayed on the task.
            - `File` — downloadable file attached to the task.
            - `Video` — video content (uploaded or linked from a hosting service).
            - `Embed` — embedded external content via URL.
            - `CrossLink` — link to another workflow or page.
          type: string
          enum:
          - FormField
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
    PublicApiTextareaFormFieldConfig:
      title: PublicApiTextareaFormFieldConfig
      type: object
      required:
      - fieldType
      properties:
        placeholder:
          description: Placeholder hint shown in the input when no value has been
            entered.
          type: string
        defaultValue:
          description: Default value pre-filled when a new workflow run is created.
          type: string
        format:
          description: |
            Editor style for this Textarea field.

            - `PlainText` — plain text.
            - `RichText` — rich-text editor with formatting (bold, lists, links, etc.).
          type: string
          enum:
          - PlainText
          - RichText
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Textarea
    PublicApiTextareaFormFieldConfig1:
      title: PublicApiTextareaFormFieldConfig
      type: object
      properties:
        placeholder:
          description: Placeholder hint shown in the input when no value has been
            entered.
          type: string
        defaultValue:
          description: Default value pre-filled when a new workflow run is created.
          type: string
        format:
          description: |
            Editor style for this Textarea field.

            - `PlainText` — plain text.
            - `RichText` — rich-text editor with formatting (bold, lists, links, etc.).
          type: string
          enum:
          - PlainText
          - RichText
    PublicApiTextareaFormFieldConstraints:
      title: PublicApiTextareaFormFieldConstraints
      type: object
      required:
      - fieldType
      properties:
        min:
          description: Inclusive lower bound.
          type: integer
          format: int32
        max:
          description: Inclusive upper bound.
          type: integer
          format: int32
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Textarea
    PublicApiTextareaFormFieldConstraints1:
      title: PublicApiTextareaFormFieldConstraints
      type: object
      properties:
        min:
          description: Inclusive lower bound.
          type: integer
          format: int32
        max:
          description: Inclusive upper bound.
          type: integer
          format: int32
    PublicApiUrlFormFieldConfig:
      title: PublicApiUrlFormFieldConfig
      type: object
      required:
      - fieldType
      properties:
        defaultValue:
          description: Default value pre-filled when a new workflow run is created.
          type: string
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Url
    PublicApiUrlFormFieldConfig1:
      title: PublicApiUrlFormFieldConfig
      type: object
      properties:
        defaultValue:
          description: Default value pre-filled when a new workflow run is created.
          type: string
    PublicApiUser:
      title: PublicApiUser
      examples:
      - id: lZBrdUpCPxKLORVf_RBMQA
        email: jane.doe@example.com
        username: Jane Doe
      type: object
      required:
      - id
      - email
      - username
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        email:
          description: The user's email address (also their login identifier).
          type: string
        username:
          description: The user's display name (e.g. `Jane Doe`).
          type: string
    PublicApiVideoWidget:
      title: PublicApiVideoWidget
      type: object
      required:
      - hiddenByDefault
      - id
      - taskId
      - createdDate
      - createdBy
      - updatedDate
      - updatedBy
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        id:
          description: The ID of the Widget
          examples:
          - ulkt40IrZGWrOnmPoEFFyQ
          type: string
        taskId:
          description: The ID of the Task
          examples:
          - ulkt40IrZGWrOnmPoEFFyQ
          type: string
        createdDate:
          description: When the resource was first created. ISO-8601 UTC.
          type: string
          format: date-time
        createdBy:
          description: User who created the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        description:
          description: Optional long-form description.
          type: string
        url:
          description: Target URL.
          type: string
        file:
          title: PublicApiWidgetFile
          description: Uploaded file reference. Use the upload endpoint to attach
            content.
          type: object
          required:
          - id
          - name
          - mimeType
          - size
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            name:
              description: Display name.
              type: string
            mimeType:
              description: MIME type detected at upload time (e.g. `image/png`, `application/pdf`).
              type: string
            size:
              description: File size in bytes.
              type: integer
              format: int64
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
        type:
          title: WidgetType
          description: |
            Widget kind discriminator.

            - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
            - `Text` — rich text content displayed on the task.
            - `Image` — image content displayed on the task.
            - `File` — downloadable file attached to the task.
            - `Video` — video content (uploaded or linked from a hosting service).
            - `Embed` — embedded external content via URL.
            - `CrossLink` — link to another workflow or page.
          type: string
          enum:
          - FormField
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
    PublicApiWebhook:
      title: PublicApiWebhook
      type: object
      required:
      - id
      - createdDate
      - createdBy
      - updatedDate
      - updatedBy
      - url
      - status
      properties:
        id:
          description: The ID of the Webhook
          examples:
          - j2ilo3tNEdUdNwlE_EtN_A
          type: string
        createdDate:
          description: When the resource was first created. ISO-8601 UTC.
          type: string
          format: date-time
        createdBy:
          description: User who created the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        url:
          description: HTTPS endpoint to which event payloads are POSTed.
          type: string
        triggers:
          description: Trigger event names this webhook fires on. Typical values include
            `WorkflowRunCreated`, `WorkflowRunCompleted`, `TaskChecked`, `TaskUnchecked`,
            `TaskCheckedUnchecked`, and `TaskReady`. Webhooks created via internal
            tooling may surface additional trigger names.
          type: array
          items:
            type: string
        status:
          description: Whether the webhook is currently delivering events. `Active`
            — events that match the configured triggers are delivered to the webhook
            URL. `Disabled` — the webhook is configured but no events are delivered.
          type: string
          enum:
          - Active
          - Disabled
        workflowId:
          title: EntityID
          description: The ID of the Workflow.
          type: string
        taskId:
          title: EntityID
          description: The ID of the Task.
          type: string
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 link relation like `self`, `edit`, `related`), an `href`
            URL, and a `type` (`Api` for callable endpoints, `App` for browser-facing
            URLs). Prefer following these `href` values over constructing URLs by
            hand.
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiWebhookListResponse:
      title: PublicApiWebhookListResponse
      type: object
      properties:
        data:
          description: The list of resources returned by this request.
          type: array
          items:
            title: PublicApiWebhook
            type: object
            required:
            - id
            - createdDate
            - createdBy
            - updatedDate
            - updatedBy
            - url
            - status
            properties:
              id:
                description: The ID of the Webhook
                examples:
                - j2ilo3tNEdUdNwlE_EtN_A
                type: string
              createdDate:
                description: When the resource was first created. ISO-8601 UTC.
                type: string
                format: date-time
              createdBy:
                description: User who created the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              updatedDate:
                description: When the resource was last modified. ISO-8601 UTC.
                type: string
                format: date-time
              updatedBy:
                description: User who last modified the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              url:
                description: HTTPS endpoint to which event payloads are POSTed.
                type: string
              triggers:
                description: Trigger event names this webhook fires on. Typical values
                  include `WorkflowRunCreated`, `WorkflowRunCompleted`, `TaskChecked`,
                  `TaskUnchecked`, `TaskCheckedUnchecked`, and `TaskReady`. Webhooks
                  created via internal tooling may surface additional trigger names.
                type: array
                items:
                  type: string
              status:
                description: Whether the webhook is currently delivering events. `Active`
                  — events that match the configured triggers are delivered to the
                  webhook URL. `Disabled` — the webhook is configured but no events
                  are delivered.
                type: string
                enum:
                - Active
                - Disabled
              workflowId:
                title: EntityID
                description: The ID of the Workflow.
                type: string
              taskId:
                title: EntityID
                description: The ID of the Task.
                type: string
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                  an `href` URL, and a `type` (`Api` for callable endpoints, `App`
                  for browser-facing URLs). Prefer following these `href` values over
                  constructing URLs by hand.
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiWebhookResponse:
      title: PublicApiWebhookResponse
      type: object
      required:
      - data
      properties:
        data:
          title: PublicApiWebhook
          type: object
          required:
          - id
          - createdDate
          - createdBy
          - updatedDate
          - updatedBy
          - url
          - status
          properties:
            id:
              description: The ID of the Webhook
              examples:
              - j2ilo3tNEdUdNwlE_EtN_A
              type: string
            createdDate:
              description: When the resource was first created. ISO-8601 UTC.
              type: string
              format: date-time
            createdBy:
              description: User who created the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            updatedDate:
              description: When the resource was last modified. ISO-8601 UTC.
              type: string
              format: date-time
            updatedBy:
              description: User who last modified the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            url:
              description: HTTPS endpoint to which event payloads are POSTed.
              type: string
            triggers:
              description: Trigger event names this webhook fires on. Typical values
                include `WorkflowRunCreated`, `WorkflowRunCompleted`, `TaskChecked`,
                `TaskUnchecked`, `TaskCheckedUnchecked`, and `TaskReady`. Webhooks
                created via internal tooling may surface additional trigger names.
              type: array
              items:
                type: string
            status:
              description: Whether the webhook is currently delivering events. `Active`
                — events that match the configured triggers are delivered to the webhook
                URL. `Disabled` — the webhook is configured but no events are delivered.
              type: string
              enum:
              - Active
              - Disabled
            workflowId:
              title: EntityID
              description: The ID of the Workflow.
              type: string
            taskId:
              title: EntityID
              description: The ID of the Task.
              type: string
            links:
              description: Navigable HATEOAS links to related resources. Each entry
                has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                an `href` URL, and a `type` (`Api` for callable endpoints, `App` for
                browser-facing URLs). Prefer following these `href` values over constructing
                URLs by hand.
              type: array
              items:
                title: Link
                description: A HATEOAS link to a related resource. Use these to navigate
                  between resources without constructing URLs by hand.
                type: object
                required:
                - name
                - href
                - type
                properties:
                  name:
                    description: Standard link relation name (RFC 5988) indicating
                      this link's role. Common values include `self`, `edit`, `related`,
                      `previous`, `next`.
                    type: string
                  href:
                    title: Uri
                    description: URL of the linked resource.
                    examples:
                    - https://api.process.st/api/v1.1/resource/XXX
                    type: string
                  rel:
                    description: Optional. The kind of resource this link points to
                      (e.g. `Workflow`, `Task`, `Comment`).
                    type: string
                    enum:
                    - Approval Task
                    - Approvals
                    - Assignees
                    - Comment
                    - Data Set Records
                    - Data Sets
                    - Form Field Values
                    - Subject Task
                    - Task
                    - Tasks
                    - Users
                    - Webhook
                    - Workflow
                    - Workflow Run
                  type:
                    description: Whether this link targets an API endpoint or a Process
                      Street app URL. `Api` — a callable API endpoint you can fetch
                      directly. `App` — a browser-facing URL in the Process Street
                      UI.
                    type: string
                    enum:
                    - Api
                    - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiWidget:
      title: PublicApiWidget
      oneOf:
      - title: PublicApiCrossLinkWidget
        type: object
        required:
        - hiddenByDefault
        - id
        - taskId
        - createdDate
        - createdBy
        - updatedDate
        - updatedBy
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          id:
            description: The ID of the Widget
            examples:
            - qMfuk4tmEFd7C-e1CGNH-g
            type: string
          taskId:
            description: The ID of the Task
            examples:
            - qMfuk4tmEFd7C-e1CGNH-g
            type: string
          createdDate:
            description: When the resource was first created. ISO-8601 UTC.
            type: string
            format: date-time
          createdBy:
            description: User who created the resource.
            examples:
            - id: lZBrdUpCPxKLORVf_RBMQA
              email: jane.doe@example.com
              username: Jane Doe
            type: object
            required:
            - id
            - email
            - username
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              email:
                description: The user's email address (also their login identifier).
                type: string
              username:
                description: The user's display name (e.g. `Jane Doe`).
                type: string
          updatedDate:
            description: When the resource was last modified. ISO-8601 UTC.
            type: string
            format: date-time
          updatedBy:
            description: User who last modified the resource.
            examples:
            - id: lZBrdUpCPxKLORVf_RBMQA
              email: jane.doe@example.com
              username: Jane Doe
            type: object
            required:
            - id
            - email
            - username
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              email:
                description: The user's email address (also their login identifier).
                type: string
              username:
                description: The user's display name (e.g. `Jane Doe`).
                type: string
          linkedTemplateId:
            title: EntityID
            description: The ID of the linked workflow or page that this CrossLink
              widget points to.
            type: string
          links:
            description: Navigable HATEOAS links to related resources. Each entry
              has a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api`
              or `App`).
            type: array
            items:
              title: Link
              description: A HATEOAS link to a related resource. Use these to navigate
                between resources without constructing URLs by hand.
              type: object
              required:
              - name
              - href
              - type
              properties:
                name:
                  description: Standard link relation name (RFC 5988) indicating this
                    link's role. Common values include `self`, `edit`, `related`,
                    `previous`, `next`.
                  type: string
                href:
                  title: Uri
                  description: URL of the linked resource.
                  examples:
                  - https://api.process.st/api/v1.1/resource/XXX
                  type: string
                rel:
                  description: Optional. The kind of resource this link points to
                    (e.g. `Workflow`, `Task`, `Comment`).
                  type: string
                  enum:
                  - Approval Task
                  - Approvals
                  - Assignees
                  - Comment
                  - Data Set Records
                  - Data Sets
                  - Form Field Values
                  - Subject Task
                  - Task
                  - Tasks
                  - Users
                  - Webhook
                  - Workflow
                  - Workflow Run
                type:
                  description: Whether this link targets an API endpoint or a Process
                    Street app URL. `Api` — a callable API endpoint you can fetch
                    directly. `App` — a browser-facing URL in the Process Street UI.
                  type: string
                  enum:
                  - Api
                  - App
          type:
            title: WidgetType
            description: |
              Widget kind discriminator.

              - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
              - `Text` — rich text content displayed on the task.
              - `Image` — image content displayed on the task.
              - `File` — downloadable file attached to the task.
              - `Video` — video content (uploaded or linked from a hosting service).
              - `Embed` — embedded external content via URL.
              - `CrossLink` — link to another workflow or page.
            type: string
            enum:
            - FormField
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
      - title: PublicApiEmbedWidget
        type: object
        required:
        - hiddenByDefault
        - id
        - taskId
        - createdDate
        - createdBy
        - updatedDate
        - updatedBy
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          id:
            description: The ID of the Widget
            examples:
            - qfh8qdTqlMEcQW0ssxdACA
            type: string
          taskId:
            description: The ID of the Task
            examples:
            - qfh8qdTqlMEcQW0ssxdACA
            type: string
          createdDate:
            description: When the resource was first created. ISO-8601 UTC.
            type: string
            format: date-time
          createdBy:
            description: User who created the resource.
            examples:
            - id: lZBrdUpCPxKLORVf_RBMQA
              email: jane.doe@example.com
              username: Jane Doe
            type: object
            required:
            - id
            - email
            - username
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              email:
                description: The user's email address (also their login identifier).
                type: string
              username:
                description: The user's display name (e.g. `Jane Doe`).
                type: string
          updatedDate:
            description: When the resource was last modified. ISO-8601 UTC.
            type: string
            format: date-time
          updatedBy:
            description: User who last modified the resource.
            examples:
            - id: lZBrdUpCPxKLORVf_RBMQA
              email: jane.doe@example.com
              username: Jane Doe
            type: object
            required:
            - id
            - email
            - username
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              email:
                description: The user's email address (also their login identifier).
                type: string
              username:
                description: The user's display name (e.g. `Jane Doe`).
                type: string
          url:
            description: Target URL.
            type: string
          links:
            description: Navigable HATEOAS links to related resources. Each entry
              has a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api`
              or `App`).
            type: array
            items:
              title: Link
              description: A HATEOAS link to a related resource. Use these to navigate
                between resources without constructing URLs by hand.
              type: object
              required:
              - name
              - href
              - type
              properties:
                name:
                  description: Standard link relation name (RFC 5988) indicating this
                    link's role. Common values include `self`, `edit`, `related`,
                    `previous`, `next`.
                  type: string
                href:
                  title: Uri
                  description: URL of the linked resource.
                  examples:
                  - https://api.process.st/api/v1.1/resource/XXX
                  type: string
                rel:
                  description: Optional. The kind of resource this link points to
                    (e.g. `Workflow`, `Task`, `Comment`).
                  type: string
                  enum:
                  - Approval Task
                  - Approvals
                  - Assignees
                  - Comment
                  - Data Set Records
                  - Data Sets
                  - Form Field Values
                  - Subject Task
                  - Task
                  - Tasks
                  - Users
                  - Webhook
                  - Workflow
                  - Workflow Run
                type:
                  description: Whether this link targets an API endpoint or a Process
                    Street app URL. `Api` — a callable API endpoint you can fetch
                    directly. `App` — a browser-facing URL in the Process Street UI.
                  type: string
                  enum:
                  - Api
                  - App
          type:
            title: WidgetType
            description: |
              Widget kind discriminator.

              - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
              - `Text` — rich text content displayed on the task.
              - `Image` — image content displayed on the task.
              - `File` — downloadable file attached to the task.
              - `Video` — video content (uploaded or linked from a hosting service).
              - `Embed` — embedded external content via URL.
              - `CrossLink` — link to another workflow or page.
            type: string
            enum:
            - FormField
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
      - title: PublicApiFileWidget
        type: object
        required:
        - hiddenByDefault
        - id
        - taskId
        - createdDate
        - createdBy
        - updatedDate
        - updatedBy
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          id:
            description: The ID of the Widget
            examples:
            - luiV_7ndsYJQ8_fGAmxAmw
            type: string
          taskId:
            description: The ID of the Task
            examples:
            - luiV_7ndsYJQ8_fGAmxAmw
            type: string
          createdDate:
            description: When the resource was first created. ISO-8601 UTC.
            type: string
            format: date-time
          createdBy:
            description: User who created the resource.
            examples:
            - id: lZBrdUpCPxKLORVf_RBMQA
              email: jane.doe@example.com
              username: Jane Doe
            type: object
            required:
            - id
            - email
            - username
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              email:
                description: The user's email address (also their login identifier).
                type: string
              username:
                description: The user's display name (e.g. `Jane Doe`).
                type: string
          updatedDate:
            description: When the resource was last modified. ISO-8601 UTC.
            type: string
            format: date-time
          updatedBy:
            description: User who last modified the resource.
            examples:
            - id: lZBrdUpCPxKLORVf_RBMQA
              email: jane.doe@example.com
              username: Jane Doe
            type: object
            required:
            - id
            - email
            - username
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              email:
                description: The user's email address (also their login identifier).
                type: string
              username:
                description: The user's display name (e.g. `Jane Doe`).
                type: string
          description:
            description: Optional long-form description.
            type: string
          file:
            title: PublicApiWidgetFile
            description: Uploaded file reference. Use the upload endpoint to attach
              content.
            type: object
            required:
            - id
            - name
            - mimeType
            - size
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              name:
                description: Display name.
                type: string
              mimeType:
                description: MIME type detected at upload time (e.g. `image/png`,
                  `application/pdf`).
                type: string
              size:
                description: File size in bytes.
                type: integer
                format: int64
          links:
            description: Navigable HATEOAS links to related resources. Each entry
              has a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api`
              or `App`).
            type: array
            items:
              title: Link
              description: A HATEOAS link to a related resource. Use these to navigate
                between resources without constructing URLs by hand.
              type: object
              required:
              - name
              - href
              - type
              properties:
                name:
                  description: Standard link relation name (RFC 5988) indicating this
                    link's role. Common values include `self`, `edit`, `related`,
                    `previous`, `next`.
                  type: string
                href:
                  title: Uri
                  description: URL of the linked resource.
                  examples:
                  - https://api.process.st/api/v1.1/resource/XXX
                  type: string
                rel:
                  description: Optional. The kind of resource this link points to
                    (e.g. `Workflow`, `Task`, `Comment`).
                  type: string
                  enum:
                  - Approval Task
                  - Approvals
                  - Assignees
                  - Comment
                  - Data Set Records
                  - Data Sets
                  - Form Field Values
                  - Subject Task
                  - Task
                  - Tasks
                  - Users
                  - Webhook
                  - Workflow
                  - Workflow Run
                type:
                  description: Whether this link targets an API endpoint or a Process
                    Street app URL. `Api` — a callable API endpoint you can fetch
                    directly. `App` — a browser-facing URL in the Process Street UI.
                  type: string
                  enum:
                  - Api
                  - App
          type:
            title: WidgetType
            description: |
              Widget kind discriminator.

              - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
              - `Text` — rich text content displayed on the task.
              - `Image` — image content displayed on the task.
              - `File` — downloadable file attached to the task.
              - `Video` — video content (uploaded or linked from a hosting service).
              - `Embed` — embedded external content via URL.
              - `CrossLink` — link to another workflow or page.
            type: string
            enum:
            - FormField
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
      - title: PublicApiFormFieldWidget
        type: object
        required:
        - hiddenByDefault
        - id
        - taskId
        - createdDate
        - createdBy
        - updatedDate
        - updatedBy
        - fieldType
        - key
        - required
        - config
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          id:
            description: The ID of the Widget
            examples:
            - muMiIQjdUdiqkwVegyNJlA
            type: string
          taskId:
            description: The ID of the Task
            examples:
            - muMiIQjdUdiqkwVegyNJlA
            type: string
          createdDate:
            description: When the resource was first created. ISO-8601 UTC.
            type: string
            format: date-time
          createdBy:
            description: User who created the resource.
            examples:
            - id: lZBrdUpCPxKLORVf_RBMQA
              email: jane.doe@example.com
              username: Jane Doe
            type: object
            required:
            - id
            - email
            - username
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              email:
                description: The user's email address (also their login identifier).
                type: string
              username:
                description: The user's display name (e.g. `Jane Doe`).
                type: string
          updatedDate:
            description: When the resource was last modified. ISO-8601 UTC.
            type: string
            format: date-time
          updatedBy:
            description: User who last modified the resource.
            examples:
            - id: lZBrdUpCPxKLORVf_RBMQA
              email: jane.doe@example.com
              username: Jane Doe
            type: object
            required:
            - id
            - email
            - username
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              email:
                description: The user's email address (also their login identifier).
                type: string
              username:
                description: The user's display name (e.g. `Jane Doe`).
                type: string
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
          key:
            description: Unique key used to identify this row across imports — matches
              the data set column referenced by the webhook's `keyColumn`.
            type: string
          label:
            description: Display label shown to the end user.
            type: string
          required:
            description: When `true`, the form field must have a value before its
              task can be completed.
            type: boolean
          config:
            title: PublicApiFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            oneOf:
            - title: PublicApiDateFormFieldConfig
              type: object
              required:
              - fieldType
              properties:
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
                timeOption:
                  description: |
                    How time-of-day is handled on this Date field.

                    - `Included` — the field always captures both date and time.
                    - `Excluded` — date only; time is never captured.
                    - `Optional` — the user picks whether to include a time.
                  type: string
                  enum:
                  - Included
                  - Excluded
                  - Optional
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: Date
            - title: PublicApiDocumentFormFieldConfig
              type: object
              required:
              - reviewRequest
              - fieldType
              properties:
                reviewRequest:
                  description: When `true`, the email requires explicit user review/send
                    rather than auto-send.
                  type: boolean
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: Document
            - title: PublicApiEmailFormFieldConfig
              type: object
              required:
              - fieldType
              properties:
                placeholder:
                  description: Placeholder hint shown in the input when no value has
                    been entered.
                  type: string
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: Email
            - title: PublicApiFileFormFieldConfig
              type: object
              required:
              - fieldType
              properties:
                placeholder:
                  description: Placeholder hint shown in the input when no value has
                    been entered.
                  type: string
                extractTextContent:
                  description: When `true`, server extracts text from uploaded documents
                    for use in merge tags.
                  type: boolean
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: File
            - title: PublicApiHiddenFormFieldConfig
              type: object
              required:
              - fieldType
              properties:
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: Hidden
            - title: PublicApiMembersFormFieldConfig
              type: object
              required:
              - fieldType
              properties:
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
                groupId:
                  title: EntityID
                  description: The ID of an organization group.
                  type: string
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: Members
            - title: PublicApiMultiChoiceFormFieldConfig
              type: object
              required:
              - fieldType
              properties:
                items:
                  description: Available options for selection-style form fields.
                  type: array
                  items:
                    title: PublicApiFormFieldItem
                    type: object
                    required:
                    - name
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      name:
                        description: Display name.
                        type: string
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: MultiChoice
            - title: PublicApiMultiFileFormFieldConfig
              type: object
              required:
              - fieldType
              properties:
                placeholder:
                  description: Placeholder hint shown in the input when no value has
                    been entered.
                  type: string
                extractTextContent:
                  description: When `true`, server extracts text from uploaded documents
                    for use in merge tags.
                  type: boolean
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: MultiFile
            - title: PublicApiMultiSelectFormFieldConfig
              type: object
              required:
              - fieldType
              properties:
                items:
                  description: Available options for selection-style form fields.
                  type: array
                  items:
                    title: PublicApiFormFieldItem
                    type: object
                    required:
                    - name
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      name:
                        description: Display name.
                        type: string
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: MultiSelect
            - title: PublicApiNumberFormFieldConfig
              type: object
              required:
              - fieldType
              properties:
                placeholder:
                  description: Placeholder hint shown in the input when no value has
                    been entered.
                  type: string
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
                unit:
                  description: Unit label rendered next to the numeric value (e.g.
                    `kg`, `$`, `%`).
                  type: string
                unitLocation:
                  description: |
                    Where the unit symbol appears relative to the number.

                    - `prefix` — before the number (e.g. `$100`).
                    - `suffix` — after the number (e.g. `100 USD`).
                  type: string
                  enum:
                  - prefix
                  - suffix
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: Number
            - title: PublicApiSelectFormFieldConfig
              type: object
              required:
              - fieldType
              properties:
                items:
                  description: Available options for selection-style form fields.
                  type: array
                  items:
                    title: PublicApiFormFieldItem
                    type: object
                    required:
                    - name
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      name:
                        description: Display name.
                        type: string
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: Select
            - title: PublicApiSendRichEmailFormFieldConfig
              type: object
              required:
              - bodyEditor
              - fieldType
              properties:
                to:
                  description: Default recipient list (To). Comma-separated email
                    addresses or merge tags.
                  type: array
                  items:
                    type: string
                cc:
                  description: Default CC list. Comma-separated email addresses or
                    merge tags.
                  type: array
                  items:
                    type: string
                bcc:
                  description: Default BCC list. Comma-separated email addresses or
                    merge tags.
                  type: array
                  items:
                    type: string
                replyTo:
                  description: Default Reply-To address. An email address or merge
                    tag.
                  type: array
                  items:
                    type: string
                subject:
                  description: Default email subject. May contain merge tags.
                  type: string
                body:
                  description: Default email body. May contain merge tags.
                  type: string
                bodyEditor:
                  description: |
                    Editor used to author the email body.

                    - `RichText` — rich-text editor with formatting.
                    - `HTML` — raw HTML editor.
                    - `PlainText` — plain text editor.
                  type: string
                  enum:
                  - RichText
                  - HTML
                  - PlainText
                editAllowed:
                  description: When `true`, users running the workflow can edit the
                    email before sending.
                  type: boolean
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: SendRichEmail
            - title: PublicApiSnippetFormFieldConfig
              type: object
              required:
              - fieldType
              properties:
                value:
                  description: The option's stored value.
                  type: string
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: Snippet
            - title: PublicApiTableFormFieldConfig
              type: object
              required:
              - fieldType
              properties:
                columnDefs:
                  description: Data set column definitions (name + type per column).
                  type: array
                  items:
                    title: PublicApiTableFormFieldColumn
                    type: object
                    required:
                    - id
                    - name
                    - columnType
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      name:
                        description: Display name.
                        type: string
                      columnType:
                        description: |
                          Data type a Table column accepts.

                          - `Text` — free-form short text.
                        type: string
                        enum:
                        - Text
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: Table
            - title: PublicApiTextFormFieldConfig
              type: object
              required:
              - fieldType
              properties:
                placeholder:
                  description: Placeholder hint shown in the input when no value has
                    been entered.
                  type: string
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: Text
            - title: PublicApiTextareaFormFieldConfig
              type: object
              required:
              - fieldType
              properties:
                placeholder:
                  description: Placeholder hint shown in the input when no value has
                    been entered.
                  type: string
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
                format:
                  description: |
                    Editor style for this Textarea field.

                    - `PlainText` — plain text.
                    - `RichText` — rich-text editor with formatting (bold, lists, links, etc.).
                  type: string
                  enum:
                  - PlainText
                  - RichText
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: Textarea
            - title: PublicApiUrlFormFieldConfig
              type: object
              required:
              - fieldType
              properties:
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: Url
            discriminator:
              propertyName: fieldType
              mapping:
                Date: '#/components/schemas/PublicApiDateFormFieldConfig'
                Document: '#/components/schemas/PublicApiDocumentFormFieldConfig'
                Email: '#/components/schemas/PublicApiEmailFormFieldConfig'
                File: '#/components/schemas/PublicApiFileFormFieldConfig'
                Hidden: '#/components/schemas/PublicApiHiddenFormFieldConfig'
                Members: '#/components/schemas/PublicApiMembersFormFieldConfig'
                MultiChoice: '#/components/schemas/PublicApiMultiChoiceFormFieldConfig'
                MultiFile: '#/components/schemas/PublicApiMultiFileFormFieldConfig'
                MultiSelect: '#/components/schemas/PublicApiMultiSelectFormFieldConfig'
                Number: '#/components/schemas/PublicApiNumberFormFieldConfig'
                Select: '#/components/schemas/PublicApiSelectFormFieldConfig'
                SendRichEmail: '#/components/schemas/PublicApiSendRichEmailFormFieldConfig'
                Snippet: '#/components/schemas/PublicApiSnippetFormFieldConfig'
                Table: '#/components/schemas/PublicApiTableFormFieldConfig'
                Text: '#/components/schemas/PublicApiTextFormFieldConfig'
                Textarea: '#/components/schemas/PublicApiTextareaFormFieldConfig'
                Url: '#/components/schemas/PublicApiUrlFormFieldConfig'
          constraints:
            title: PublicApiFormFieldConstraints
            description: Field-specific validation constraints. Shape depends on `fieldType`.
            oneOf:
            - title: PublicApiDateFormFieldConstraints
              type: object
              required:
              - fieldType
              properties:
                afterDate:
                  description: Earliest accepted date (inclusive). Pair with `afterDateSourceType`.
                  type: string
                  format: date-time
                beforeDate:
                  description: Latest accepted date (inclusive). Pair with `beforeDateSourceType`.
                  type: string
                  format: date-time
                afterDateFormFieldWidgetGroupId:
                  title: EntityID
                  description: When `afterDateSourceType=FormField`, the ID of the
                    Date form field whose value is the lower bound.
                  type: string
                beforeDateFormFieldWidgetGroupId:
                  title: EntityID
                  description: When `beforeDateSourceType=FormField`, the ID of the
                    Date form field whose value is the upper bound.
                  type: string
                afterDateSourceType:
                  description: |
                    How the before/after constraint date is derived.

                    - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
                    - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
                    - `TaskDueDate` — relative to the containing task's due date.
                    - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
                  type: string
                  enum:
                  - SpecificDate
                  - FormFieldValue
                  - TaskDueDate
                  - ChecklistStartDate
                  - ChecklistDueDate
                beforeDateSourceType:
                  description: |
                    How the before/after constraint date is derived.

                    - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
                    - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
                    - `TaskDueDate` — relative to the containing task's due date.
                    - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
                  type: string
                  enum:
                  - SpecificDate
                  - FormFieldValue
                  - TaskDueDate
                  - ChecklistStartDate
                  - ChecklistDueDate
                afterDateOffset:
                  description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
                  type: string
                beforeDateOffset:
                  description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
                  type: string
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: Date
            - title: PublicApiEmailFormFieldConstraints
              type: object
              required:
              - fieldType
              properties:
                domains:
                  description: Allowed (or blocked, depending on `restriction`) email
                    domains for this field.
                  type: array
                  items:
                    type: string
                restriction:
                  description: |
                    How the `domains` list filters allowed email addresses.

                    - `Allow` — only emails whose domain is in the list are accepted.
                    - `Block` — emails whose domain is in the list are rejected; all others accepted.
                  type: string
                  enum:
                  - Allow
                  - Block
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: Email
            - title: PublicApiFileFormFieldConstraints
              type: object
              required:
              - fieldType
              properties:
                extensions:
                  description: Allowed file extensions, including the leading dot
                    (e.g. `.pdf`, `.docx`).
                  type: array
                  items:
                    type: string
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: File
            - title: PublicApiMultiFileFormFieldConstraints
              type: object
              required:
              - fieldType
              properties:
                extensions:
                  description: Allowed file extensions, including the leading dot
                    (e.g. `.pdf`, `.docx`).
                  type: array
                  items:
                    type: string
                mode:
                  description: |
                    Whether the field accepts a single file or multiple files.

                    - `Single` — only one file may be uploaded.
                    - `Multiple` — multiple files may be uploaded.
                  type: string
                  enum:
                  - Multiple
                  - Single
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: MultiFile
            - title: PublicApiNumberFormFieldConstraints
              type: object
              required:
              - fieldType
              properties:
                minDigits:
                  description: Minimum number of digits.
                  type: integer
                  format: int32
                maxDigits:
                  description: Maximum number of digits.
                  type: integer
                  format: int32
                minValue:
                  description: Minimum numeric value.
                  type: integer
                  format: int32
                maxValue:
                  description: Maximum numeric value.
                  type: integer
                  format: int32
                decimalPlaces:
                  description: Number of decimal places to accept (0 means integers
                    only).
                  type: integer
                  format: int32
                allowNegative:
                  description: When `true`, negative numbers are accepted.
                  type: boolean
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: Number
            - title: PublicApiTextFormFieldConstraints
              type: object
              required:
              - fieldType
              properties:
                min:
                  description: Inclusive lower bound.
                  type: integer
                  format: int32
                max:
                  description: Inclusive upper bound.
                  type: integer
                  format: int32
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: Text
            - title: PublicApiTextareaFormFieldConstraints
              type: object
              required:
              - fieldType
              properties:
                min:
                  description: Inclusive lower bound.
                  type: integer
                  format: int32
                max:
                  description: Inclusive upper bound.
                  type: integer
                  format: int32
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                  const: Textarea
            discriminator:
              propertyName: fieldType
              mapping:
                Date: '#/components/schemas/PublicApiDateFormFieldConstraints'
                Email: '#/components/schemas/PublicApiEmailFormFieldConstraints'
                File: '#/components/schemas/PublicApiFileFormFieldConstraints'
                MultiFile: '#/components/schemas/PublicApiMultiFileFormFieldConstraints'
                Number: '#/components/schemas/PublicApiNumberFormFieldConstraints'
                Text: '#/components/schemas/PublicApiTextFormFieldConstraints'
                Textarea: '#/components/schemas/PublicApiTextareaFormFieldConstraints'
          links:
            description: Navigable HATEOAS links to related resources. Each entry
              has a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api`
              or `App`).
            type: array
            items:
              title: Link
              description: A HATEOAS link to a related resource. Use these to navigate
                between resources without constructing URLs by hand.
              type: object
              required:
              - name
              - href
              - type
              properties:
                name:
                  description: Standard link relation name (RFC 5988) indicating this
                    link's role. Common values include `self`, `edit`, `related`,
                    `previous`, `next`.
                  type: string
                href:
                  title: Uri
                  description: URL of the linked resource.
                  examples:
                  - https://api.process.st/api/v1.1/resource/XXX
                  type: string
                rel:
                  description: Optional. The kind of resource this link points to
                    (e.g. `Workflow`, `Task`, `Comment`).
                  type: string
                  enum:
                  - Approval Task
                  - Approvals
                  - Assignees
                  - Comment
                  - Data Set Records
                  - Data Sets
                  - Form Field Values
                  - Subject Task
                  - Task
                  - Tasks
                  - Users
                  - Webhook
                  - Workflow
                  - Workflow Run
                type:
                  description: Whether this link targets an API endpoint or a Process
                    Street app URL. `Api` — a callable API endpoint you can fetch
                    directly. `App` — a browser-facing URL in the Process Street UI.
                  type: string
                  enum:
                  - Api
                  - App
          type:
            title: WidgetType
            description: |
              Widget kind discriminator.

              - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
              - `Text` — rich text content displayed on the task.
              - `Image` — image content displayed on the task.
              - `File` — downloadable file attached to the task.
              - `Video` — video content (uploaded or linked from a hosting service).
              - `Embed` — embedded external content via URL.
              - `CrossLink` — link to another workflow or page.
            type: string
            enum:
            - FormField
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
      - title: PublicApiImageWidget
        type: object
        required:
        - hiddenByDefault
        - id
        - taskId
        - createdDate
        - createdBy
        - updatedDate
        - updatedBy
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          id:
            description: The ID of the Widget
            examples:
            - oiQKJE_vcnbbo0bGolJI8A
            type: string
          taskId:
            description: The ID of the Task
            examples:
            - oiQKJE_vcnbbo0bGolJI8A
            type: string
          createdDate:
            description: When the resource was first created. ISO-8601 UTC.
            type: string
            format: date-time
          createdBy:
            description: User who created the resource.
            examples:
            - id: lZBrdUpCPxKLORVf_RBMQA
              email: jane.doe@example.com
              username: Jane Doe
            type: object
            required:
            - id
            - email
            - username
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              email:
                description: The user's email address (also their login identifier).
                type: string
              username:
                description: The user's display name (e.g. `Jane Doe`).
                type: string
          updatedDate:
            description: When the resource was last modified. ISO-8601 UTC.
            type: string
            format: date-time
          updatedBy:
            description: User who last modified the resource.
            examples:
            - id: lZBrdUpCPxKLORVf_RBMQA
              email: jane.doe@example.com
              username: Jane Doe
            type: object
            required:
            - id
            - email
            - username
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              email:
                description: The user's email address (also their login identifier).
                type: string
              username:
                description: The user's display name (e.g. `Jane Doe`).
                type: string
          caption:
            description: Caption text rendered with the image.
            type: string
          file:
            title: PublicApiWidgetFile
            description: Uploaded file reference. Use the upload endpoint to attach
              content.
            type: object
            required:
            - id
            - name
            - mimeType
            - size
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              name:
                description: Display name.
                type: string
              mimeType:
                description: MIME type detected at upload time (e.g. `image/png`,
                  `application/pdf`).
                type: string
              size:
                description: File size in bytes.
                type: integer
                format: int64
          links:
            description: Navigable HATEOAS links to related resources. Each entry
              has a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api`
              or `App`).
            type: array
            items:
              title: Link
              description: A HATEOAS link to a related resource. Use these to navigate
                between resources without constructing URLs by hand.
              type: object
              required:
              - name
              - href
              - type
              properties:
                name:
                  description: Standard link relation name (RFC 5988) indicating this
                    link's role. Common values include `self`, `edit`, `related`,
                    `previous`, `next`.
                  type: string
                href:
                  title: Uri
                  description: URL of the linked resource.
                  examples:
                  - https://api.process.st/api/v1.1/resource/XXX
                  type: string
                rel:
                  description: Optional. The kind of resource this link points to
                    (e.g. `Workflow`, `Task`, `Comment`).
                  type: string
                  enum:
                  - Approval Task
                  - Approvals
                  - Assignees
                  - Comment
                  - Data Set Records
                  - Data Sets
                  - Form Field Values
                  - Subject Task
                  - Task
                  - Tasks
                  - Users
                  - Webhook
                  - Workflow
                  - Workflow Run
                type:
                  description: Whether this link targets an API endpoint or a Process
                    Street app URL. `Api` — a callable API endpoint you can fetch
                    directly. `App` — a browser-facing URL in the Process Street UI.
                  type: string
                  enum:
                  - Api
                  - App
          type:
            title: WidgetType
            description: |
              Widget kind discriminator.

              - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
              - `Text` — rich text content displayed on the task.
              - `Image` — image content displayed on the task.
              - `File` — downloadable file attached to the task.
              - `Video` — video content (uploaded or linked from a hosting service).
              - `Embed` — embedded external content via URL.
              - `CrossLink` — link to another workflow or page.
            type: string
            enum:
            - FormField
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
      - title: PublicApiTextWidget
        type: object
        required:
        - hiddenByDefault
        - id
        - taskId
        - createdDate
        - createdBy
        - updatedDate
        - updatedBy
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          id:
            description: The ID of the Widget
            examples:
            - uMyEwJTg0CAPKh-XTupKwg
            type: string
          taskId:
            description: The ID of the Task
            examples:
            - uMyEwJTg0CAPKh-XTupKwg
            type: string
          createdDate:
            description: When the resource was first created. ISO-8601 UTC.
            type: string
            format: date-time
          createdBy:
            description: User who created the resource.
            examples:
            - id: lZBrdUpCPxKLORVf_RBMQA
              email: jane.doe@example.com
              username: Jane Doe
            type: object
            required:
            - id
            - email
            - username
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              email:
                description: The user's email address (also their login identifier).
                type: string
              username:
                description: The user's display name (e.g. `Jane Doe`).
                type: string
          updatedDate:
            description: When the resource was last modified. ISO-8601 UTC.
            type: string
            format: date-time
          updatedBy:
            description: User who last modified the resource.
            examples:
            - id: lZBrdUpCPxKLORVf_RBMQA
              email: jane.doe@example.com
              username: Jane Doe
            type: object
            required:
            - id
            - email
            - username
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              email:
                description: The user's email address (also their login identifier).
                type: string
              username:
                description: The user's display name (e.g. `Jane Doe`).
                type: string
          content:
            description: Rich text content. May contain merge tags.
            type: string
          links:
            description: Navigable HATEOAS links to related resources. Each entry
              has a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api`
              or `App`).
            type: array
            items:
              title: Link
              description: A HATEOAS link to a related resource. Use these to navigate
                between resources without constructing URLs by hand.
              type: object
              required:
              - name
              - href
              - type
              properties:
                name:
                  description: Standard link relation name (RFC 5988) indicating this
                    link's role. Common values include `self`, `edit`, `related`,
                    `previous`, `next`.
                  type: string
                href:
                  title: Uri
                  description: URL of the linked resource.
                  examples:
                  - https://api.process.st/api/v1.1/resource/XXX
                  type: string
                rel:
                  description: Optional. The kind of resource this link points to
                    (e.g. `Workflow`, `Task`, `Comment`).
                  type: string
                  enum:
                  - Approval Task
                  - Approvals
                  - Assignees
                  - Comment
                  - Data Set Records
                  - Data Sets
                  - Form Field Values
                  - Subject Task
                  - Task
                  - Tasks
                  - Users
                  - Webhook
                  - Workflow
                  - Workflow Run
                type:
                  description: Whether this link targets an API endpoint or a Process
                    Street app URL. `Api` — a callable API endpoint you can fetch
                    directly. `App` — a browser-facing URL in the Process Street UI.
                  type: string
                  enum:
                  - Api
                  - App
          type:
            title: WidgetType
            description: |
              Widget kind discriminator.

              - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
              - `Text` — rich text content displayed on the task.
              - `Image` — image content displayed on the task.
              - `File` — downloadable file attached to the task.
              - `Video` — video content (uploaded or linked from a hosting service).
              - `Embed` — embedded external content via URL.
              - `CrossLink` — link to another workflow or page.
            type: string
            enum:
            - FormField
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
      - title: PublicApiVideoWidget
        type: object
        required:
        - hiddenByDefault
        - id
        - taskId
        - createdDate
        - createdBy
        - updatedDate
        - updatedBy
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          id:
            description: The ID of the Widget
            examples:
            - ulkt40IrZGWrOnmPoEFFyQ
            type: string
          taskId:
            description: The ID of the Task
            examples:
            - ulkt40IrZGWrOnmPoEFFyQ
            type: string
          createdDate:
            description: When the resource was first created. ISO-8601 UTC.
            type: string
            format: date-time
          createdBy:
            description: User who created the resource.
            examples:
            - id: lZBrdUpCPxKLORVf_RBMQA
              email: jane.doe@example.com
              username: Jane Doe
            type: object
            required:
            - id
            - email
            - username
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              email:
                description: The user's email address (also their login identifier).
                type: string
              username:
                description: The user's display name (e.g. `Jane Doe`).
                type: string
          updatedDate:
            description: When the resource was last modified. ISO-8601 UTC.
            type: string
            format: date-time
          updatedBy:
            description: User who last modified the resource.
            examples:
            - id: lZBrdUpCPxKLORVf_RBMQA
              email: jane.doe@example.com
              username: Jane Doe
            type: object
            required:
            - id
            - email
            - username
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              email:
                description: The user's email address (also their login identifier).
                type: string
              username:
                description: The user's display name (e.g. `Jane Doe`).
                type: string
          description:
            description: Optional long-form description.
            type: string
          url:
            description: Target URL.
            type: string
          file:
            title: PublicApiWidgetFile
            description: Uploaded file reference. Use the upload endpoint to attach
              content.
            type: object
            required:
            - id
            - name
            - mimeType
            - size
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              name:
                description: Display name.
                type: string
              mimeType:
                description: MIME type detected at upload time (e.g. `image/png`,
                  `application/pdf`).
                type: string
              size:
                description: File size in bytes.
                type: integer
                format: int64
          links:
            description: Navigable HATEOAS links to related resources. Each entry
              has a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api`
              or `App`).
            type: array
            items:
              title: Link
              description: A HATEOAS link to a related resource. Use these to navigate
                between resources without constructing URLs by hand.
              type: object
              required:
              - name
              - href
              - type
              properties:
                name:
                  description: Standard link relation name (RFC 5988) indicating this
                    link's role. Common values include `self`, `edit`, `related`,
                    `previous`, `next`.
                  type: string
                href:
                  title: Uri
                  description: URL of the linked resource.
                  examples:
                  - https://api.process.st/api/v1.1/resource/XXX
                  type: string
                rel:
                  description: Optional. The kind of resource this link points to
                    (e.g. `Workflow`, `Task`, `Comment`).
                  type: string
                  enum:
                  - Approval Task
                  - Approvals
                  - Assignees
                  - Comment
                  - Data Set Records
                  - Data Sets
                  - Form Field Values
                  - Subject Task
                  - Task
                  - Tasks
                  - Users
                  - Webhook
                  - Workflow
                  - Workflow Run
                type:
                  description: Whether this link targets an API endpoint or a Process
                    Street app URL. `Api` — a callable API endpoint you can fetch
                    directly. `App` — a browser-facing URL in the Process Street UI.
                  type: string
                  enum:
                  - Api
                  - App
          type:
            title: WidgetType
            description: |
              Widget kind discriminator.

              - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
              - `Text` — rich text content displayed on the task.
              - `Image` — image content displayed on the task.
              - `File` — downloadable file attached to the task.
              - `Video` — video content (uploaded or linked from a hosting service).
              - `Embed` — embedded external content via URL.
              - `CrossLink` — link to another workflow or page.
            type: string
            enum:
            - FormField
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
      discriminator:
        propertyName: type
        mapping:
          CrossLink: '#/components/schemas/PublicApiCrossLinkWidget'
          Embed: '#/components/schemas/PublicApiEmbedWidget'
          File: '#/components/schemas/PublicApiFileWidget'
          FormField: '#/components/schemas/PublicApiFormFieldWidget'
          Image: '#/components/schemas/PublicApiImageWidget'
          Text: '#/components/schemas/PublicApiTextWidget'
          Video: '#/components/schemas/PublicApiVideoWidget'
    PublicApiWidgetFile:
      title: PublicApiWidgetFile
      type: object
      required:
      - id
      - name
      - mimeType
      - size
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        name:
          description: Display name.
          type: string
        mimeType:
          description: MIME type detected at upload time (e.g. `image/png`, `application/pdf`).
          type: string
        size:
          description: File size in bytes.
          type: integer
          format: int64
    PublicApiWidgetListResponse:
      title: PublicApiWidgetListResponse
      type: object
      properties:
        data:
          description: The list of resources returned by this request.
          type: array
          items:
            title: PublicApiWidget
            oneOf:
            - title: PublicApiCrossLinkWidget
              type: object
              required:
              - hiddenByDefault
              - id
              - taskId
              - createdDate
              - createdBy
              - updatedDate
              - updatedBy
              - type
              properties:
                hiddenByDefault:
                  description: When `true`, the widget is hidden by default; conditional
                    logic rules can reveal it at runtime. Defaults to `false`.
                  type: boolean
                id:
                  description: The ID of the Widget
                  examples:
                  - qMfuk4tmEFd7C-e1CGNH-g
                  type: string
                taskId:
                  description: The ID of the Task
                  examples:
                  - qMfuk4tmEFd7C-e1CGNH-g
                  type: string
                createdDate:
                  description: When the resource was first created. ISO-8601 UTC.
                  type: string
                  format: date-time
                createdBy:
                  description: User who created the resource.
                  examples:
                  - id: lZBrdUpCPxKLORVf_RBMQA
                    email: jane.doe@example.com
                    username: Jane Doe
                  type: object
                  required:
                  - id
                  - email
                  - username
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    email:
                      description: The user's email address (also their login identifier).
                      type: string
                    username:
                      description: The user's display name (e.g. `Jane Doe`).
                      type: string
                updatedDate:
                  description: When the resource was last modified. ISO-8601 UTC.
                  type: string
                  format: date-time
                updatedBy:
                  description: User who last modified the resource.
                  examples:
                  - id: lZBrdUpCPxKLORVf_RBMQA
                    email: jane.doe@example.com
                    username: Jane Doe
                  type: object
                  required:
                  - id
                  - email
                  - username
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    email:
                      description: The user's email address (also their login identifier).
                      type: string
                    username:
                      description: The user's display name (e.g. `Jane Doe`).
                      type: string
                linkedTemplateId:
                  title: EntityID
                  description: The ID of the linked workflow or page that this CrossLink
                    widget points to.
                  type: string
                links:
                  description: Navigable HATEOAS links to related resources. Each
                    entry has a `name` (RFC-5988 relation), an `href` URL, and a `type`
                    (`Api` or `App`).
                  type: array
                  items:
                    title: Link
                    description: A HATEOAS link to a related resource. Use these to
                      navigate between resources without constructing URLs by hand.
                    type: object
                    required:
                    - name
                    - href
                    - type
                    properties:
                      name:
                        description: Standard link relation name (RFC 5988) indicating
                          this link's role. Common values include `self`, `edit`,
                          `related`, `previous`, `next`.
                        type: string
                      href:
                        title: Uri
                        description: URL of the linked resource.
                        examples:
                        - https://api.process.st/api/v1.1/resource/XXX
                        type: string
                      rel:
                        description: Optional. The kind of resource this link points
                          to (e.g. `Workflow`, `Task`, `Comment`).
                        type: string
                        enum:
                        - Approval Task
                        - Approvals
                        - Assignees
                        - Comment
                        - Data Set Records
                        - Data Sets
                        - Form Field Values
                        - Subject Task
                        - Task
                        - Tasks
                        - Users
                        - Webhook
                        - Workflow
                        - Workflow Run
                      type:
                        description: Whether this link targets an API endpoint or
                          a Process Street app URL. `Api` — a callable API endpoint
                          you can fetch directly. `App` — a browser-facing URL in
                          the Process Street UI.
                        type: string
                        enum:
                        - Api
                        - App
                type:
                  title: WidgetType
                  description: |
                    Widget kind discriminator.

                    - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
                    - `Text` — rich text content displayed on the task.
                    - `Image` — image content displayed on the task.
                    - `File` — downloadable file attached to the task.
                    - `Video` — video content (uploaded or linked from a hosting service).
                    - `Embed` — embedded external content via URL.
                    - `CrossLink` — link to another workflow or page.
                  type: string
                  enum:
                  - FormField
                  - Text
                  - Image
                  - File
                  - Video
                  - Embed
                  - CrossLink
            - title: PublicApiEmbedWidget
              type: object
              required:
              - hiddenByDefault
              - id
              - taskId
              - createdDate
              - createdBy
              - updatedDate
              - updatedBy
              - type
              properties:
                hiddenByDefault:
                  description: When `true`, the widget is hidden by default; conditional
                    logic rules can reveal it at runtime. Defaults to `false`.
                  type: boolean
                id:
                  description: The ID of the Widget
                  examples:
                  - qfh8qdTqlMEcQW0ssxdACA
                  type: string
                taskId:
                  description: The ID of the Task
                  examples:
                  - qfh8qdTqlMEcQW0ssxdACA
                  type: string
                createdDate:
                  description: When the resource was first created. ISO-8601 UTC.
                  type: string
                  format: date-time
                createdBy:
                  description: User who created the resource.
                  examples:
                  - id: lZBrdUpCPxKLORVf_RBMQA
                    email: jane.doe@example.com
                    username: Jane Doe
                  type: object
                  required:
                  - id
                  - email
                  - username
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    email:
                      description: The user's email address (also their login identifier).
                      type: string
                    username:
                      description: The user's display name (e.g. `Jane Doe`).
                      type: string
                updatedDate:
                  description: When the resource was last modified. ISO-8601 UTC.
                  type: string
                  format: date-time
                updatedBy:
                  description: User who last modified the resource.
                  examples:
                  - id: lZBrdUpCPxKLORVf_RBMQA
                    email: jane.doe@example.com
                    username: Jane Doe
                  type: object
                  required:
                  - id
                  - email
                  - username
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    email:
                      description: The user's email address (also their login identifier).
                      type: string
                    username:
                      description: The user's display name (e.g. `Jane Doe`).
                      type: string
                url:
                  description: Target URL.
                  type: string
                links:
                  description: Navigable HATEOAS links to related resources. Each
                    entry has a `name` (RFC-5988 relation), an `href` URL, and a `type`
                    (`Api` or `App`).
                  type: array
                  items:
                    title: Link
                    description: A HATEOAS link to a related resource. Use these to
                      navigate between resources without constructing URLs by hand.
                    type: object
                    required:
                    - name
                    - href
                    - type
                    properties:
                      name:
                        description: Standard link relation name (RFC 5988) indicating
                          this link's role. Common values include `self`, `edit`,
                          `related`, `previous`, `next`.
                        type: string
                      href:
                        title: Uri
                        description: URL of the linked resource.
                        examples:
                        - https://api.process.st/api/v1.1/resource/XXX
                        type: string
                      rel:
                        description: Optional. The kind of resource this link points
                          to (e.g. `Workflow`, `Task`, `Comment`).
                        type: string
                        enum:
                        - Approval Task
                        - Approvals
                        - Assignees
                        - Comment
                        - Data Set Records
                        - Data Sets
                        - Form Field Values
                        - Subject Task
                        - Task
                        - Tasks
                        - Users
                        - Webhook
                        - Workflow
                        - Workflow Run
                      type:
                        description: Whether this link targets an API endpoint or
                          a Process Street app URL. `Api` — a callable API endpoint
                          you can fetch directly. `App` — a browser-facing URL in
                          the Process Street UI.
                        type: string
                        enum:
                        - Api
                        - App
                type:
                  title: WidgetType
                  description: |
                    Widget kind discriminator.

                    - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
                    - `Text` — rich text content displayed on the task.
                    - `Image` — image content displayed on the task.
                    - `File` — downloadable file attached to the task.
                    - `Video` — video content (uploaded or linked from a hosting service).
                    - `Embed` — embedded external content via URL.
                    - `CrossLink` — link to another workflow or page.
                  type: string
                  enum:
                  - FormField
                  - Text
                  - Image
                  - File
                  - Video
                  - Embed
                  - CrossLink
            - title: PublicApiFileWidget
              type: object
              required:
              - hiddenByDefault
              - id
              - taskId
              - createdDate
              - createdBy
              - updatedDate
              - updatedBy
              - type
              properties:
                hiddenByDefault:
                  description: When `true`, the widget is hidden by default; conditional
                    logic rules can reveal it at runtime. Defaults to `false`.
                  type: boolean
                id:
                  description: The ID of the Widget
                  examples:
                  - luiV_7ndsYJQ8_fGAmxAmw
                  type: string
                taskId:
                  description: The ID of the Task
                  examples:
                  - luiV_7ndsYJQ8_fGAmxAmw
                  type: string
                createdDate:
                  description: When the resource was first created. ISO-8601 UTC.
                  type: string
                  format: date-time
                createdBy:
                  description: User who created the resource.
                  examples:
                  - id: lZBrdUpCPxKLORVf_RBMQA
                    email: jane.doe@example.com
                    username: Jane Doe
                  type: object
                  required:
                  - id
                  - email
                  - username
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    email:
                      description: The user's email address (also their login identifier).
                      type: string
                    username:
                      description: The user's display name (e.g. `Jane Doe`).
                      type: string
                updatedDate:
                  description: When the resource was last modified. ISO-8601 UTC.
                  type: string
                  format: date-time
                updatedBy:
                  description: User who last modified the resource.
                  examples:
                  - id: lZBrdUpCPxKLORVf_RBMQA
                    email: jane.doe@example.com
                    username: Jane Doe
                  type: object
                  required:
                  - id
                  - email
                  - username
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    email:
                      description: The user's email address (also their login identifier).
                      type: string
                    username:
                      description: The user's display name (e.g. `Jane Doe`).
                      type: string
                description:
                  description: Optional long-form description.
                  type: string
                file:
                  title: PublicApiWidgetFile
                  description: Uploaded file reference. Use the upload endpoint to
                    attach content.
                  type: object
                  required:
                  - id
                  - name
                  - mimeType
                  - size
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    name:
                      description: Display name.
                      type: string
                    mimeType:
                      description: MIME type detected at upload time (e.g. `image/png`,
                        `application/pdf`).
                      type: string
                    size:
                      description: File size in bytes.
                      type: integer
                      format: int64
                links:
                  description: Navigable HATEOAS links to related resources. Each
                    entry has a `name` (RFC-5988 relation), an `href` URL, and a `type`
                    (`Api` or `App`).
                  type: array
                  items:
                    title: Link
                    description: A HATEOAS link to a related resource. Use these to
                      navigate between resources without constructing URLs by hand.
                    type: object
                    required:
                    - name
                    - href
                    - type
                    properties:
                      name:
                        description: Standard link relation name (RFC 5988) indicating
                          this link's role. Common values include `self`, `edit`,
                          `related`, `previous`, `next`.
                        type: string
                      href:
                        title: Uri
                        description: URL of the linked resource.
                        examples:
                        - https://api.process.st/api/v1.1/resource/XXX
                        type: string
                      rel:
                        description: Optional. The kind of resource this link points
                          to (e.g. `Workflow`, `Task`, `Comment`).
                        type: string
                        enum:
                        - Approval Task
                        - Approvals
                        - Assignees
                        - Comment
                        - Data Set Records
                        - Data Sets
                        - Form Field Values
                        - Subject Task
                        - Task
                        - Tasks
                        - Users
                        - Webhook
                        - Workflow
                        - Workflow Run
                      type:
                        description: Whether this link targets an API endpoint or
                          a Process Street app URL. `Api` — a callable API endpoint
                          you can fetch directly. `App` — a browser-facing URL in
                          the Process Street UI.
                        type: string
                        enum:
                        - Api
                        - App
                type:
                  title: WidgetType
                  description: |
                    Widget kind discriminator.

                    - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
                    - `Text` — rich text content displayed on the task.
                    - `Image` — image content displayed on the task.
                    - `File` — downloadable file attached to the task.
                    - `Video` — video content (uploaded or linked from a hosting service).
                    - `Embed` — embedded external content via URL.
                    - `CrossLink` — link to another workflow or page.
                  type: string
                  enum:
                  - FormField
                  - Text
                  - Image
                  - File
                  - Video
                  - Embed
                  - CrossLink
            - title: PublicApiFormFieldWidget
              type: object
              required:
              - hiddenByDefault
              - id
              - taskId
              - createdDate
              - createdBy
              - updatedDate
              - updatedBy
              - fieldType
              - key
              - required
              - config
              - type
              properties:
                hiddenByDefault:
                  description: When `true`, the widget is hidden by default; conditional
                    logic rules can reveal it at runtime. Defaults to `false`.
                  type: boolean
                id:
                  description: The ID of the Widget
                  examples:
                  - muMiIQjdUdiqkwVegyNJlA
                  type: string
                taskId:
                  description: The ID of the Task
                  examples:
                  - muMiIQjdUdiqkwVegyNJlA
                  type: string
                createdDate:
                  description: When the resource was first created. ISO-8601 UTC.
                  type: string
                  format: date-time
                createdBy:
                  description: User who created the resource.
                  examples:
                  - id: lZBrdUpCPxKLORVf_RBMQA
                    email: jane.doe@example.com
                    username: Jane Doe
                  type: object
                  required:
                  - id
                  - email
                  - username
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    email:
                      description: The user's email address (also their login identifier).
                      type: string
                    username:
                      description: The user's display name (e.g. `Jane Doe`).
                      type: string
                updatedDate:
                  description: When the resource was last modified. ISO-8601 UTC.
                  type: string
                  format: date-time
                updatedBy:
                  description: User who last modified the resource.
                  examples:
                  - id: lZBrdUpCPxKLORVf_RBMQA
                    email: jane.doe@example.com
                    username: Jane Doe
                  type: object
                  required:
                  - id
                  - email
                  - username
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    email:
                      description: The user's email address (also their login identifier).
                      type: string
                    username:
                      description: The user's display name (e.g. `Jane Doe`).
                      type: string
                fieldType:
                  description: |
                    Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                    - `Text` — short text input (≤255 characters).
                    - `Textarea` — long-form text.
                    - `Email` — email address.
                    - `Url` — website / URL.
                    - `Number` — numeric input with optional unit and constraints.
                    - `Date` — date or date+time picker.
                    - `Select` — dropdown; user picks one option.
                    - `MultiChoice` — checkboxes; user picks one or more options.
                    - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                    - `Members` — assignee picker (selects organization users).
                    - `File` — single file upload.
                    - `MultiFile` — multi-file upload (in-app "File Upload").
                    - `Document` — document approval field; links the task to a document review.
                    - `Table` — rows × columns of cells; users fill cell values.
                    - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                      automatically when the task is completed.
                    - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                    - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                  type: string
                  enum:
                  - Date
                  - Document
                  - Email
                  - File
                  - Hidden
                  - Members
                  - MultiChoice
                  - MultiFile
                  - MultiSelect
                  - Number
                  - Select
                  - SendRichEmail
                  - Snippet
                  - Table
                  - Text
                  - Textarea
                  - Url
                key:
                  description: Unique key used to identify this row across imports
                    — matches the data set column referenced by the webhook's `keyColumn`.
                  type: string
                label:
                  description: Display label shown to the end user.
                  type: string
                required:
                  description: When `true`, the form field must have a value before
                    its task can be completed.
                  type: boolean
                config:
                  title: PublicApiFormFieldConfig
                  description: Field-specific configuration. Shape depends on `fieldType`.
                  oneOf:
                  - title: PublicApiDateFormFieldConfig
                    type: object
                    required:
                    - fieldType
                    properties:
                      defaultValue:
                        description: Default value pre-filled when a new workflow
                          run is created.
                        type: string
                      timeOption:
                        description: |
                          How time-of-day is handled on this Date field.

                          - `Included` — the field always captures both date and time.
                          - `Excluded` — date only; time is never captured.
                          - `Optional` — the user picks whether to include a time.
                        type: string
                        enum:
                        - Included
                        - Excluded
                        - Optional
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: Date
                  - title: PublicApiDocumentFormFieldConfig
                    type: object
                    required:
                    - reviewRequest
                    - fieldType
                    properties:
                      reviewRequest:
                        description: When `true`, the email requires explicit user
                          review/send rather than auto-send.
                        type: boolean
                      defaultValue:
                        description: Default value pre-filled when a new workflow
                          run is created.
                        type: string
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: Document
                  - title: PublicApiEmailFormFieldConfig
                    type: object
                    required:
                    - fieldType
                    properties:
                      placeholder:
                        description: Placeholder hint shown in the input when no value
                          has been entered.
                        type: string
                      defaultValue:
                        description: Default value pre-filled when a new workflow
                          run is created.
                        type: string
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: Email
                  - title: PublicApiFileFormFieldConfig
                    type: object
                    required:
                    - fieldType
                    properties:
                      placeholder:
                        description: Placeholder hint shown in the input when no value
                          has been entered.
                        type: string
                      extractTextContent:
                        description: When `true`, server extracts text from uploaded
                          documents for use in merge tags.
                        type: boolean
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: File
                  - title: PublicApiHiddenFormFieldConfig
                    type: object
                    required:
                    - fieldType
                    properties:
                      defaultValue:
                        description: Default value pre-filled when a new workflow
                          run is created.
                        type: string
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: Hidden
                  - title: PublicApiMembersFormFieldConfig
                    type: object
                    required:
                    - fieldType
                    properties:
                      defaultValue:
                        description: Default value pre-filled when a new workflow
                          run is created.
                        type: string
                      groupId:
                        title: EntityID
                        description: The ID of an organization group.
                        type: string
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: Members
                  - title: PublicApiMultiChoiceFormFieldConfig
                    type: object
                    required:
                    - fieldType
                    properties:
                      items:
                        description: Available options for selection-style form fields.
                        type: array
                        items:
                          title: PublicApiFormFieldItem
                          type: object
                          required:
                          - name
                          properties:
                            id:
                              title: EntityID
                              description: The resource's ID.
                              type: string
                            name:
                              description: Display name.
                              type: string
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: MultiChoice
                  - title: PublicApiMultiFileFormFieldConfig
                    type: object
                    required:
                    - fieldType
                    properties:
                      placeholder:
                        description: Placeholder hint shown in the input when no value
                          has been entered.
                        type: string
                      extractTextContent:
                        description: When `true`, server extracts text from uploaded
                          documents for use in merge tags.
                        type: boolean
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: MultiFile
                  - title: PublicApiMultiSelectFormFieldConfig
                    type: object
                    required:
                    - fieldType
                    properties:
                      items:
                        description: Available options for selection-style form fields.
                        type: array
                        items:
                          title: PublicApiFormFieldItem
                          type: object
                          required:
                          - name
                          properties:
                            id:
                              title: EntityID
                              description: The resource's ID.
                              type: string
                            name:
                              description: Display name.
                              type: string
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: MultiSelect
                  - title: PublicApiNumberFormFieldConfig
                    type: object
                    required:
                    - fieldType
                    properties:
                      placeholder:
                        description: Placeholder hint shown in the input when no value
                          has been entered.
                        type: string
                      defaultValue:
                        description: Default value pre-filled when a new workflow
                          run is created.
                        type: string
                      unit:
                        description: Unit label rendered next to the numeric value
                          (e.g. `kg`, `$`, `%`).
                        type: string
                      unitLocation:
                        description: |
                          Where the unit symbol appears relative to the number.

                          - `prefix` — before the number (e.g. `$100`).
                          - `suffix` — after the number (e.g. `100 USD`).
                        type: string
                        enum:
                        - prefix
                        - suffix
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: Number
                  - title: PublicApiSelectFormFieldConfig
                    type: object
                    required:
                    - fieldType
                    properties:
                      items:
                        description: Available options for selection-style form fields.
                        type: array
                        items:
                          title: PublicApiFormFieldItem
                          type: object
                          required:
                          - name
                          properties:
                            id:
                              title: EntityID
                              description: The resource's ID.
                              type: string
                            name:
                              description: Display name.
                              type: string
                      defaultValue:
                        description: Default value pre-filled when a new workflow
                          run is created.
                        type: string
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: Select
                  - title: PublicApiSendRichEmailFormFieldConfig
                    type: object
                    required:
                    - bodyEditor
                    - fieldType
                    properties:
                      to:
                        description: Default recipient list (To). Comma-separated
                          email addresses or merge tags.
                        type: array
                        items:
                          type: string
                      cc:
                        description: Default CC list. Comma-separated email addresses
                          or merge tags.
                        type: array
                        items:
                          type: string
                      bcc:
                        description: Default BCC list. Comma-separated email addresses
                          or merge tags.
                        type: array
                        items:
                          type: string
                      replyTo:
                        description: Default Reply-To address. An email address or
                          merge tag.
                        type: array
                        items:
                          type: string
                      subject:
                        description: Default email subject. May contain merge tags.
                        type: string
                      body:
                        description: Default email body. May contain merge tags.
                        type: string
                      bodyEditor:
                        description: |
                          Editor used to author the email body.

                          - `RichText` — rich-text editor with formatting.
                          - `HTML` — raw HTML editor.
                          - `PlainText` — plain text editor.
                        type: string
                        enum:
                        - RichText
                        - HTML
                        - PlainText
                      editAllowed:
                        description: When `true`, users running the workflow can edit
                          the email before sending.
                        type: boolean
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: SendRichEmail
                  - title: PublicApiSnippetFormFieldConfig
                    type: object
                    required:
                    - fieldType
                    properties:
                      value:
                        description: The option's stored value.
                        type: string
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: Snippet
                  - title: PublicApiTableFormFieldConfig
                    type: object
                    required:
                    - fieldType
                    properties:
                      columnDefs:
                        description: Data set column definitions (name + type per
                          column).
                        type: array
                        items:
                          title: PublicApiTableFormFieldColumn
                          type: object
                          required:
                          - id
                          - name
                          - columnType
                          properties:
                            id:
                              title: EntityID
                              description: The resource's ID.
                              type: string
                            name:
                              description: Display name.
                              type: string
                            columnType:
                              description: |
                                Data type a Table column accepts.

                                - `Text` — free-form short text.
                              type: string
                              enum:
                              - Text
                      defaultValue:
                        description: Default value pre-filled when a new workflow
                          run is created.
                        type: string
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: Table
                  - title: PublicApiTextFormFieldConfig
                    type: object
                    required:
                    - fieldType
                    properties:
                      placeholder:
                        description: Placeholder hint shown in the input when no value
                          has been entered.
                        type: string
                      defaultValue:
                        description: Default value pre-filled when a new workflow
                          run is created.
                        type: string
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: Text
                  - title: PublicApiTextareaFormFieldConfig
                    type: object
                    required:
                    - fieldType
                    properties:
                      placeholder:
                        description: Placeholder hint shown in the input when no value
                          has been entered.
                        type: string
                      defaultValue:
                        description: Default value pre-filled when a new workflow
                          run is created.
                        type: string
                      format:
                        description: |
                          Editor style for this Textarea field.

                          - `PlainText` — plain text.
                          - `RichText` — rich-text editor with formatting (bold, lists, links, etc.).
                        type: string
                        enum:
                        - PlainText
                        - RichText
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: Textarea
                  - title: PublicApiUrlFormFieldConfig
                    type: object
                    required:
                    - fieldType
                    properties:
                      defaultValue:
                        description: Default value pre-filled when a new workflow
                          run is created.
                        type: string
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: Url
                  discriminator:
                    propertyName: fieldType
                    mapping:
                      Date: '#/components/schemas/PublicApiDateFormFieldConfig'
                      Document: '#/components/schemas/PublicApiDocumentFormFieldConfig'
                      Email: '#/components/schemas/PublicApiEmailFormFieldConfig'
                      File: '#/components/schemas/PublicApiFileFormFieldConfig'
                      Hidden: '#/components/schemas/PublicApiHiddenFormFieldConfig'
                      Members: '#/components/schemas/PublicApiMembersFormFieldConfig'
                      MultiChoice: '#/components/schemas/PublicApiMultiChoiceFormFieldConfig'
                      MultiFile: '#/components/schemas/PublicApiMultiFileFormFieldConfig'
                      MultiSelect: '#/components/schemas/PublicApiMultiSelectFormFieldConfig'
                      Number: '#/components/schemas/PublicApiNumberFormFieldConfig'
                      Select: '#/components/schemas/PublicApiSelectFormFieldConfig'
                      SendRichEmail: '#/components/schemas/PublicApiSendRichEmailFormFieldConfig'
                      Snippet: '#/components/schemas/PublicApiSnippetFormFieldConfig'
                      Table: '#/components/schemas/PublicApiTableFormFieldConfig'
                      Text: '#/components/schemas/PublicApiTextFormFieldConfig'
                      Textarea: '#/components/schemas/PublicApiTextareaFormFieldConfig'
                      Url: '#/components/schemas/PublicApiUrlFormFieldConfig'
                constraints:
                  title: PublicApiFormFieldConstraints
                  description: Field-specific validation constraints. Shape depends
                    on `fieldType`.
                  oneOf:
                  - title: PublicApiDateFormFieldConstraints
                    type: object
                    required:
                    - fieldType
                    properties:
                      afterDate:
                        description: Earliest accepted date (inclusive). Pair with
                          `afterDateSourceType`.
                        type: string
                        format: date-time
                      beforeDate:
                        description: Latest accepted date (inclusive). Pair with `beforeDateSourceType`.
                        type: string
                        format: date-time
                      afterDateFormFieldWidgetGroupId:
                        title: EntityID
                        description: When `afterDateSourceType=FormField`, the ID
                          of the Date form field whose value is the lower bound.
                        type: string
                      beforeDateFormFieldWidgetGroupId:
                        title: EntityID
                        description: When `beforeDateSourceType=FormField`, the ID
                          of the Date form field whose value is the upper bound.
                        type: string
                      afterDateSourceType:
                        description: |
                          How the before/after constraint date is derived.

                          - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
                          - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
                          - `TaskDueDate` — relative to the containing task's due date.
                          - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
                        type: string
                        enum:
                        - SpecificDate
                        - FormFieldValue
                        - TaskDueDate
                        - ChecklistStartDate
                        - ChecklistDueDate
                      beforeDateSourceType:
                        description: |
                          How the before/after constraint date is derived.

                          - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
                          - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
                          - `TaskDueDate` — relative to the containing task's due date.
                          - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
                        type: string
                        enum:
                        - SpecificDate
                        - FormFieldValue
                        - TaskDueDate
                        - ChecklistStartDate
                        - ChecklistDueDate
                      afterDateOffset:
                        description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
                        type: string
                      beforeDateOffset:
                        description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
                        type: string
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: Date
                  - title: PublicApiEmailFormFieldConstraints
                    type: object
                    required:
                    - fieldType
                    properties:
                      domains:
                        description: Allowed (or blocked, depending on `restriction`)
                          email domains for this field.
                        type: array
                        items:
                          type: string
                      restriction:
                        description: |
                          How the `domains` list filters allowed email addresses.

                          - `Allow` — only emails whose domain is in the list are accepted.
                          - `Block` — emails whose domain is in the list are rejected; all others accepted.
                        type: string
                        enum:
                        - Allow
                        - Block
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: Email
                  - title: PublicApiFileFormFieldConstraints
                    type: object
                    required:
                    - fieldType
                    properties:
                      extensions:
                        description: Allowed file extensions, including the leading
                          dot (e.g. `.pdf`, `.docx`).
                        type: array
                        items:
                          type: string
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: File
                  - title: PublicApiMultiFileFormFieldConstraints
                    type: object
                    required:
                    - fieldType
                    properties:
                      extensions:
                        description: Allowed file extensions, including the leading
                          dot (e.g. `.pdf`, `.docx`).
                        type: array
                        items:
                          type: string
                      mode:
                        description: |
                          Whether the field accepts a single file or multiple files.

                          - `Single` — only one file may be uploaded.
                          - `Multiple` — multiple files may be uploaded.
                        type: string
                        enum:
                        - Multiple
                        - Single
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: MultiFile
                  - title: PublicApiNumberFormFieldConstraints
                    type: object
                    required:
                    - fieldType
                    properties:
                      minDigits:
                        description: Minimum number of digits.
                        type: integer
                        format: int32
                      maxDigits:
                        description: Maximum number of digits.
                        type: integer
                        format: int32
                      minValue:
                        description: Minimum numeric value.
                        type: integer
                        format: int32
                      maxValue:
                        description: Maximum numeric value.
                        type: integer
                        format: int32
                      decimalPlaces:
                        description: Number of decimal places to accept (0 means integers
                          only).
                        type: integer
                        format: int32
                      allowNegative:
                        description: When `true`, negative numbers are accepted.
                        type: boolean
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: Number
                  - title: PublicApiTextFormFieldConstraints
                    type: object
                    required:
                    - fieldType
                    properties:
                      min:
                        description: Inclusive lower bound.
                        type: integer
                        format: int32
                      max:
                        description: Inclusive upper bound.
                        type: integer
                        format: int32
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: Text
                  - title: PublicApiTextareaFormFieldConstraints
                    type: object
                    required:
                    - fieldType
                    properties:
                      min:
                        description: Inclusive lower bound.
                        type: integer
                        format: int32
                      max:
                        description: Inclusive upper bound.
                        type: integer
                        format: int32
                      fieldType:
                        description: |
                          Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                          - `Text` — short text input (≤255 characters).
                          - `Textarea` — long-form text.
                          - `Email` — email address.
                          - `Url` — website / URL.
                          - `Number` — numeric input with optional unit and constraints.
                          - `Date` — date or date+time picker.
                          - `Select` — dropdown; user picks one option.
                          - `MultiChoice` — checkboxes; user picks one or more options.
                          - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                          - `Members` — assignee picker (selects organization users).
                          - `File` — single file upload.
                          - `MultiFile` — multi-file upload (in-app "File Upload").
                          - `Document` — document approval field; links the task to a document review.
                          - `Table` — rows × columns of cells; users fill cell values.
                          - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                            automatically when the task is completed.
                          - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                          - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                        type: string
                        enum:
                        - Date
                        - Document
                        - Email
                        - File
                        - Hidden
                        - Members
                        - MultiChoice
                        - MultiFile
                        - MultiSelect
                        - Number
                        - Select
                        - SendRichEmail
                        - Snippet
                        - Table
                        - Text
                        - Textarea
                        - Url
                        const: Textarea
                  discriminator:
                    propertyName: fieldType
                    mapping:
                      Date: '#/components/schemas/PublicApiDateFormFieldConstraints'
                      Email: '#/components/schemas/PublicApiEmailFormFieldConstraints'
                      File: '#/components/schemas/PublicApiFileFormFieldConstraints'
                      MultiFile: '#/components/schemas/PublicApiMultiFileFormFieldConstraints'
                      Number: '#/components/schemas/PublicApiNumberFormFieldConstraints'
                      Text: '#/components/schemas/PublicApiTextFormFieldConstraints'
                      Textarea: '#/components/schemas/PublicApiTextareaFormFieldConstraints'
                links:
                  description: Navigable HATEOAS links to related resources. Each
                    entry has a `name` (RFC-5988 relation), an `href` URL, and a `type`
                    (`Api` or `App`).
                  type: array
                  items:
                    title: Link
                    description: A HATEOAS link to a related resource. Use these to
                      navigate between resources without constructing URLs by hand.
                    type: object
                    required:
                    - name
                    - href
                    - type
                    properties:
                      name:
                        description: Standard link relation name (RFC 5988) indicating
                          this link's role. Common values include `self`, `edit`,
                          `related`, `previous`, `next`.
                        type: string
                      href:
                        title: Uri
                        description: URL of the linked resource.
                        examples:
                        - https://api.process.st/api/v1.1/resource/XXX
                        type: string
                      rel:
                        description: Optional. The kind of resource this link points
                          to (e.g. `Workflow`, `Task`, `Comment`).
                        type: string
                        enum:
                        - Approval Task
                        - Approvals
                        - Assignees
                        - Comment
                        - Data Set Records
                        - Data Sets
                        - Form Field Values
                        - Subject Task
                        - Task
                        - Tasks
                        - Users
                        - Webhook
                        - Workflow
                        - Workflow Run
                      type:
                        description: Whether this link targets an API endpoint or
                          a Process Street app URL. `Api` — a callable API endpoint
                          you can fetch directly. `App` — a browser-facing URL in
                          the Process Street UI.
                        type: string
                        enum:
                        - Api
                        - App
                type:
                  title: WidgetType
                  description: |
                    Widget kind discriminator.

                    - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
                    - `Text` — rich text content displayed on the task.
                    - `Image` — image content displayed on the task.
                    - `File` — downloadable file attached to the task.
                    - `Video` — video content (uploaded or linked from a hosting service).
                    - `Embed` — embedded external content via URL.
                    - `CrossLink` — link to another workflow or page.
                  type: string
                  enum:
                  - FormField
                  - Text
                  - Image
                  - File
                  - Video
                  - Embed
                  - CrossLink
            - title: PublicApiImageWidget
              type: object
              required:
              - hiddenByDefault
              - id
              - taskId
              - createdDate
              - createdBy
              - updatedDate
              - updatedBy
              - type
              properties:
                hiddenByDefault:
                  description: When `true`, the widget is hidden by default; conditional
                    logic rules can reveal it at runtime. Defaults to `false`.
                  type: boolean
                id:
                  description: The ID of the Widget
                  examples:
                  - oiQKJE_vcnbbo0bGolJI8A
                  type: string
                taskId:
                  description: The ID of the Task
                  examples:
                  - oiQKJE_vcnbbo0bGolJI8A
                  type: string
                createdDate:
                  description: When the resource was first created. ISO-8601 UTC.
                  type: string
                  format: date-time
                createdBy:
                  description: User who created the resource.
                  examples:
                  - id: lZBrdUpCPxKLORVf_RBMQA
                    email: jane.doe@example.com
                    username: Jane Doe
                  type: object
                  required:
                  - id
                  - email
                  - username
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    email:
                      description: The user's email address (also their login identifier).
                      type: string
                    username:
                      description: The user's display name (e.g. `Jane Doe`).
                      type: string
                updatedDate:
                  description: When the resource was last modified. ISO-8601 UTC.
                  type: string
                  format: date-time
                updatedBy:
                  description: User who last modified the resource.
                  examples:
                  - id: lZBrdUpCPxKLORVf_RBMQA
                    email: jane.doe@example.com
                    username: Jane Doe
                  type: object
                  required:
                  - id
                  - email
                  - username
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    email:
                      description: The user's email address (also their login identifier).
                      type: string
                    username:
                      description: The user's display name (e.g. `Jane Doe`).
                      type: string
                caption:
                  description: Caption text rendered with the image.
                  type: string
                file:
                  title: PublicApiWidgetFile
                  description: Uploaded file reference. Use the upload endpoint to
                    attach content.
                  type: object
                  required:
                  - id
                  - name
                  - mimeType
                  - size
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    name:
                      description: Display name.
                      type: string
                    mimeType:
                      description: MIME type detected at upload time (e.g. `image/png`,
                        `application/pdf`).
                      type: string
                    size:
                      description: File size in bytes.
                      type: integer
                      format: int64
                links:
                  description: Navigable HATEOAS links to related resources. Each
                    entry has a `name` (RFC-5988 relation), an `href` URL, and a `type`
                    (`Api` or `App`).
                  type: array
                  items:
                    title: Link
                    description: A HATEOAS link to a related resource. Use these to
                      navigate between resources without constructing URLs by hand.
                    type: object
                    required:
                    - name
                    - href
                    - type
                    properties:
                      name:
                        description: Standard link relation name (RFC 5988) indicating
                          this link's role. Common values include `self`, `edit`,
                          `related`, `previous`, `next`.
                        type: string
                      href:
                        title: Uri
                        description: URL of the linked resource.
                        examples:
                        - https://api.process.st/api/v1.1/resource/XXX
                        type: string
                      rel:
                        description: Optional. The kind of resource this link points
                          to (e.g. `Workflow`, `Task`, `Comment`).
                        type: string
                        enum:
                        - Approval Task
                        - Approvals
                        - Assignees
                        - Comment
                        - Data Set Records
                        - Data Sets
                        - Form Field Values
                        - Subject Task
                        - Task
                        - Tasks
                        - Users
                        - Webhook
                        - Workflow
                        - Workflow Run
                      type:
                        description: Whether this link targets an API endpoint or
                          a Process Street app URL. `Api` — a callable API endpoint
                          you can fetch directly. `App` — a browser-facing URL in
                          the Process Street UI.
                        type: string
                        enum:
                        - Api
                        - App
                type:
                  title: WidgetType
                  description: |
                    Widget kind discriminator.

                    - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
                    - `Text` — rich text content displayed on the task.
                    - `Image` — image content displayed on the task.
                    - `File` — downloadable file attached to the task.
                    - `Video` — video content (uploaded or linked from a hosting service).
                    - `Embed` — embedded external content via URL.
                    - `CrossLink` — link to another workflow or page.
                  type: string
                  enum:
                  - FormField
                  - Text
                  - Image
                  - File
                  - Video
                  - Embed
                  - CrossLink
            - title: PublicApiTextWidget
              type: object
              required:
              - hiddenByDefault
              - id
              - taskId
              - createdDate
              - createdBy
              - updatedDate
              - updatedBy
              - type
              properties:
                hiddenByDefault:
                  description: When `true`, the widget is hidden by default; conditional
                    logic rules can reveal it at runtime. Defaults to `false`.
                  type: boolean
                id:
                  description: The ID of the Widget
                  examples:
                  - uMyEwJTg0CAPKh-XTupKwg
                  type: string
                taskId:
                  description: The ID of the Task
                  examples:
                  - uMyEwJTg0CAPKh-XTupKwg
                  type: string
                createdDate:
                  description: When the resource was first created. ISO-8601 UTC.
                  type: string
                  format: date-time
                createdBy:
                  description: User who created the resource.
                  examples:
                  - id: lZBrdUpCPxKLORVf_RBMQA
                    email: jane.doe@example.com
                    username: Jane Doe
                  type: object
                  required:
                  - id
                  - email
                  - username
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    email:
                      description: The user's email address (also their login identifier).
                      type: string
                    username:
                      description: The user's display name (e.g. `Jane Doe`).
                      type: string
                updatedDate:
                  description: When the resource was last modified. ISO-8601 UTC.
                  type: string
                  format: date-time
                updatedBy:
                  description: User who last modified the resource.
                  examples:
                  - id: lZBrdUpCPxKLORVf_RBMQA
                    email: jane.doe@example.com
                    username: Jane Doe
                  type: object
                  required:
                  - id
                  - email
                  - username
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    email:
                      description: The user's email address (also their login identifier).
                      type: string
                    username:
                      description: The user's display name (e.g. `Jane Doe`).
                      type: string
                content:
                  description: Rich text content. May contain merge tags.
                  type: string
                links:
                  description: Navigable HATEOAS links to related resources. Each
                    entry has a `name` (RFC-5988 relation), an `href` URL, and a `type`
                    (`Api` or `App`).
                  type: array
                  items:
                    title: Link
                    description: A HATEOAS link to a related resource. Use these to
                      navigate between resources without constructing URLs by hand.
                    type: object
                    required:
                    - name
                    - href
                    - type
                    properties:
                      name:
                        description: Standard link relation name (RFC 5988) indicating
                          this link's role. Common values include `self`, `edit`,
                          `related`, `previous`, `next`.
                        type: string
                      href:
                        title: Uri
                        description: URL of the linked resource.
                        examples:
                        - https://api.process.st/api/v1.1/resource/XXX
                        type: string
                      rel:
                        description: Optional. The kind of resource this link points
                          to (e.g. `Workflow`, `Task`, `Comment`).
                        type: string
                        enum:
                        - Approval Task
                        - Approvals
                        - Assignees
                        - Comment
                        - Data Set Records
                        - Data Sets
                        - Form Field Values
                        - Subject Task
                        - Task
                        - Tasks
                        - Users
                        - Webhook
                        - Workflow
                        - Workflow Run
                      type:
                        description: Whether this link targets an API endpoint or
                          a Process Street app URL. `Api` — a callable API endpoint
                          you can fetch directly. `App` — a browser-facing URL in
                          the Process Street UI.
                        type: string
                        enum:
                        - Api
                        - App
                type:
                  title: WidgetType
                  description: |
                    Widget kind discriminator.

                    - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
                    - `Text` — rich text content displayed on the task.
                    - `Image` — image content displayed on the task.
                    - `File` — downloadable file attached to the task.
                    - `Video` — video content (uploaded or linked from a hosting service).
                    - `Embed` — embedded external content via URL.
                    - `CrossLink` — link to another workflow or page.
                  type: string
                  enum:
                  - FormField
                  - Text
                  - Image
                  - File
                  - Video
                  - Embed
                  - CrossLink
            - title: PublicApiVideoWidget
              type: object
              required:
              - hiddenByDefault
              - id
              - taskId
              - createdDate
              - createdBy
              - updatedDate
              - updatedBy
              - type
              properties:
                hiddenByDefault:
                  description: When `true`, the widget is hidden by default; conditional
                    logic rules can reveal it at runtime. Defaults to `false`.
                  type: boolean
                id:
                  description: The ID of the Widget
                  examples:
                  - ulkt40IrZGWrOnmPoEFFyQ
                  type: string
                taskId:
                  description: The ID of the Task
                  examples:
                  - ulkt40IrZGWrOnmPoEFFyQ
                  type: string
                createdDate:
                  description: When the resource was first created. ISO-8601 UTC.
                  type: string
                  format: date-time
                createdBy:
                  description: User who created the resource.
                  examples:
                  - id: lZBrdUpCPxKLORVf_RBMQA
                    email: jane.doe@example.com
                    username: Jane Doe
                  type: object
                  required:
                  - id
                  - email
                  - username
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    email:
                      description: The user's email address (also their login identifier).
                      type: string
                    username:
                      description: The user's display name (e.g. `Jane Doe`).
                      type: string
                updatedDate:
                  description: When the resource was last modified. ISO-8601 UTC.
                  type: string
                  format: date-time
                updatedBy:
                  description: User who last modified the resource.
                  examples:
                  - id: lZBrdUpCPxKLORVf_RBMQA
                    email: jane.doe@example.com
                    username: Jane Doe
                  type: object
                  required:
                  - id
                  - email
                  - username
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    email:
                      description: The user's email address (also their login identifier).
                      type: string
                    username:
                      description: The user's display name (e.g. `Jane Doe`).
                      type: string
                description:
                  description: Optional long-form description.
                  type: string
                url:
                  description: Target URL.
                  type: string
                file:
                  title: PublicApiWidgetFile
                  description: Uploaded file reference. Use the upload endpoint to
                    attach content.
                  type: object
                  required:
                  - id
                  - name
                  - mimeType
                  - size
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    name:
                      description: Display name.
                      type: string
                    mimeType:
                      description: MIME type detected at upload time (e.g. `image/png`,
                        `application/pdf`).
                      type: string
                    size:
                      description: File size in bytes.
                      type: integer
                      format: int64
                links:
                  description: Navigable HATEOAS links to related resources. Each
                    entry has a `name` (RFC-5988 relation), an `href` URL, and a `type`
                    (`Api` or `App`).
                  type: array
                  items:
                    title: Link
                    description: A HATEOAS link to a related resource. Use these to
                      navigate between resources without constructing URLs by hand.
                    type: object
                    required:
                    - name
                    - href
                    - type
                    properties:
                      name:
                        description: Standard link relation name (RFC 5988) indicating
                          this link's role. Common values include `self`, `edit`,
                          `related`, `previous`, `next`.
                        type: string
                      href:
                        title: Uri
                        description: URL of the linked resource.
                        examples:
                        - https://api.process.st/api/v1.1/resource/XXX
                        type: string
                      rel:
                        description: Optional. The kind of resource this link points
                          to (e.g. `Workflow`, `Task`, `Comment`).
                        type: string
                        enum:
                        - Approval Task
                        - Approvals
                        - Assignees
                        - Comment
                        - Data Set Records
                        - Data Sets
                        - Form Field Values
                        - Subject Task
                        - Task
                        - Tasks
                        - Users
                        - Webhook
                        - Workflow
                        - Workflow Run
                      type:
                        description: Whether this link targets an API endpoint or
                          a Process Street app URL. `Api` — a callable API endpoint
                          you can fetch directly. `App` — a browser-facing URL in
                          the Process Street UI.
                        type: string
                        enum:
                        - Api
                        - App
                type:
                  title: WidgetType
                  description: |
                    Widget kind discriminator.

                    - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
                    - `Text` — rich text content displayed on the task.
                    - `Image` — image content displayed on the task.
                    - `File` — downloadable file attached to the task.
                    - `Video` — video content (uploaded or linked from a hosting service).
                    - `Embed` — embedded external content via URL.
                    - `CrossLink` — link to another workflow or page.
                  type: string
                  enum:
                  - FormField
                  - Text
                  - Image
                  - File
                  - Video
                  - Embed
                  - CrossLink
            discriminator:
              propertyName: type
              mapping:
                CrossLink: '#/components/schemas/PublicApiCrossLinkWidget'
                Embed: '#/components/schemas/PublicApiEmbedWidget'
                File: '#/components/schemas/PublicApiFileWidget'
                FormField: '#/components/schemas/PublicApiFormFieldWidget'
                Image: '#/components/schemas/PublicApiImageWidget'
                Text: '#/components/schemas/PublicApiTextWidget'
                Video: '#/components/schemas/PublicApiVideoWidget'
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiWidgetResponse:
      title: PublicApiWidgetResponse
      type: object
      required:
      - data
      properties:
        data:
          title: PublicApiWidget
          oneOf:
          - title: PublicApiCrossLinkWidget
            type: object
            required:
            - hiddenByDefault
            - id
            - taskId
            - createdDate
            - createdBy
            - updatedDate
            - updatedBy
            - type
            properties:
              hiddenByDefault:
                description: When `true`, the widget is hidden by default; conditional
                  logic rules can reveal it at runtime. Defaults to `false`.
                type: boolean
              id:
                description: The ID of the Widget
                examples:
                - qMfuk4tmEFd7C-e1CGNH-g
                type: string
              taskId:
                description: The ID of the Task
                examples:
                - qMfuk4tmEFd7C-e1CGNH-g
                type: string
              createdDate:
                description: When the resource was first created. ISO-8601 UTC.
                type: string
                format: date-time
              createdBy:
                description: User who created the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              updatedDate:
                description: When the resource was last modified. ISO-8601 UTC.
                type: string
                format: date-time
              updatedBy:
                description: User who last modified the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              linkedTemplateId:
                title: EntityID
                description: The ID of the linked workflow or page that this CrossLink
                  widget points to.
                type: string
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api`
                  or `App`).
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
              type:
                title: WidgetType
                description: |
                  Widget kind discriminator.

                  - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
                  - `Text` — rich text content displayed on the task.
                  - `Image` — image content displayed on the task.
                  - `File` — downloadable file attached to the task.
                  - `Video` — video content (uploaded or linked from a hosting service).
                  - `Embed` — embedded external content via URL.
                  - `CrossLink` — link to another workflow or page.
                type: string
                enum:
                - FormField
                - Text
                - Image
                - File
                - Video
                - Embed
                - CrossLink
          - title: PublicApiEmbedWidget
            type: object
            required:
            - hiddenByDefault
            - id
            - taskId
            - createdDate
            - createdBy
            - updatedDate
            - updatedBy
            - type
            properties:
              hiddenByDefault:
                description: When `true`, the widget is hidden by default; conditional
                  logic rules can reveal it at runtime. Defaults to `false`.
                type: boolean
              id:
                description: The ID of the Widget
                examples:
                - qfh8qdTqlMEcQW0ssxdACA
                type: string
              taskId:
                description: The ID of the Task
                examples:
                - qfh8qdTqlMEcQW0ssxdACA
                type: string
              createdDate:
                description: When the resource was first created. ISO-8601 UTC.
                type: string
                format: date-time
              createdBy:
                description: User who created the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              updatedDate:
                description: When the resource was last modified. ISO-8601 UTC.
                type: string
                format: date-time
              updatedBy:
                description: User who last modified the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              url:
                description: Target URL.
                type: string
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api`
                  or `App`).
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
              type:
                title: WidgetType
                description: |
                  Widget kind discriminator.

                  - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
                  - `Text` — rich text content displayed on the task.
                  - `Image` — image content displayed on the task.
                  - `File` — downloadable file attached to the task.
                  - `Video` — video content (uploaded or linked from a hosting service).
                  - `Embed` — embedded external content via URL.
                  - `CrossLink` — link to another workflow or page.
                type: string
                enum:
                - FormField
                - Text
                - Image
                - File
                - Video
                - Embed
                - CrossLink
          - title: PublicApiFileWidget
            type: object
            required:
            - hiddenByDefault
            - id
            - taskId
            - createdDate
            - createdBy
            - updatedDate
            - updatedBy
            - type
            properties:
              hiddenByDefault:
                description: When `true`, the widget is hidden by default; conditional
                  logic rules can reveal it at runtime. Defaults to `false`.
                type: boolean
              id:
                description: The ID of the Widget
                examples:
                - luiV_7ndsYJQ8_fGAmxAmw
                type: string
              taskId:
                description: The ID of the Task
                examples:
                - luiV_7ndsYJQ8_fGAmxAmw
                type: string
              createdDate:
                description: When the resource was first created. ISO-8601 UTC.
                type: string
                format: date-time
              createdBy:
                description: User who created the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              updatedDate:
                description: When the resource was last modified. ISO-8601 UTC.
                type: string
                format: date-time
              updatedBy:
                description: User who last modified the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              description:
                description: Optional long-form description.
                type: string
              file:
                title: PublicApiWidgetFile
                description: Uploaded file reference. Use the upload endpoint to attach
                  content.
                type: object
                required:
                - id
                - name
                - mimeType
                - size
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  name:
                    description: Display name.
                    type: string
                  mimeType:
                    description: MIME type detected at upload time (e.g. `image/png`,
                      `application/pdf`).
                    type: string
                  size:
                    description: File size in bytes.
                    type: integer
                    format: int64
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api`
                  or `App`).
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
              type:
                title: WidgetType
                description: |
                  Widget kind discriminator.

                  - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
                  - `Text` — rich text content displayed on the task.
                  - `Image` — image content displayed on the task.
                  - `File` — downloadable file attached to the task.
                  - `Video` — video content (uploaded or linked from a hosting service).
                  - `Embed` — embedded external content via URL.
                  - `CrossLink` — link to another workflow or page.
                type: string
                enum:
                - FormField
                - Text
                - Image
                - File
                - Video
                - Embed
                - CrossLink
          - title: PublicApiFormFieldWidget
            type: object
            required:
            - hiddenByDefault
            - id
            - taskId
            - createdDate
            - createdBy
            - updatedDate
            - updatedBy
            - fieldType
            - key
            - required
            - config
            - type
            properties:
              hiddenByDefault:
                description: When `true`, the widget is hidden by default; conditional
                  logic rules can reveal it at runtime. Defaults to `false`.
                type: boolean
              id:
                description: The ID of the Widget
                examples:
                - muMiIQjdUdiqkwVegyNJlA
                type: string
              taskId:
                description: The ID of the Task
                examples:
                - muMiIQjdUdiqkwVegyNJlA
                type: string
              createdDate:
                description: When the resource was first created. ISO-8601 UTC.
                type: string
                format: date-time
              createdBy:
                description: User who created the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              updatedDate:
                description: When the resource was last modified. ISO-8601 UTC.
                type: string
                format: date-time
              updatedBy:
                description: User who last modified the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
              key:
                description: Unique key used to identify this row across imports —
                  matches the data set column referenced by the webhook's `keyColumn`.
                type: string
              label:
                description: Display label shown to the end user.
                type: string
              required:
                description: When `true`, the form field must have a value before
                  its task can be completed.
                type: boolean
              config:
                title: PublicApiFormFieldConfig
                description: Field-specific configuration. Shape depends on `fieldType`.
                oneOf:
                - title: PublicApiDateFormFieldConfig
                  type: object
                  required:
                  - fieldType
                  properties:
                    defaultValue:
                      description: Default value pre-filled when a new workflow run
                        is created.
                      type: string
                    timeOption:
                      description: |
                        How time-of-day is handled on this Date field.

                        - `Included` — the field always captures both date and time.
                        - `Excluded` — date only; time is never captured.
                        - `Optional` — the user picks whether to include a time.
                      type: string
                      enum:
                      - Included
                      - Excluded
                      - Optional
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: Date
                - title: PublicApiDocumentFormFieldConfig
                  type: object
                  required:
                  - reviewRequest
                  - fieldType
                  properties:
                    reviewRequest:
                      description: When `true`, the email requires explicit user review/send
                        rather than auto-send.
                      type: boolean
                    defaultValue:
                      description: Default value pre-filled when a new workflow run
                        is created.
                      type: string
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: Document
                - title: PublicApiEmailFormFieldConfig
                  type: object
                  required:
                  - fieldType
                  properties:
                    placeholder:
                      description: Placeholder hint shown in the input when no value
                        has been entered.
                      type: string
                    defaultValue:
                      description: Default value pre-filled when a new workflow run
                        is created.
                      type: string
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: Email
                - title: PublicApiFileFormFieldConfig
                  type: object
                  required:
                  - fieldType
                  properties:
                    placeholder:
                      description: Placeholder hint shown in the input when no value
                        has been entered.
                      type: string
                    extractTextContent:
                      description: When `true`, server extracts text from uploaded
                        documents for use in merge tags.
                      type: boolean
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: File
                - title: PublicApiHiddenFormFieldConfig
                  type: object
                  required:
                  - fieldType
                  properties:
                    defaultValue:
                      description: Default value pre-filled when a new workflow run
                        is created.
                      type: string
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: Hidden
                - title: PublicApiMembersFormFieldConfig
                  type: object
                  required:
                  - fieldType
                  properties:
                    defaultValue:
                      description: Default value pre-filled when a new workflow run
                        is created.
                      type: string
                    groupId:
                      title: EntityID
                      description: The ID of an organization group.
                      type: string
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: Members
                - title: PublicApiMultiChoiceFormFieldConfig
                  type: object
                  required:
                  - fieldType
                  properties:
                    items:
                      description: Available options for selection-style form fields.
                      type: array
                      items:
                        title: PublicApiFormFieldItem
                        type: object
                        required:
                        - name
                        properties:
                          id:
                            title: EntityID
                            description: The resource's ID.
                            type: string
                          name:
                            description: Display name.
                            type: string
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: MultiChoice
                - title: PublicApiMultiFileFormFieldConfig
                  type: object
                  required:
                  - fieldType
                  properties:
                    placeholder:
                      description: Placeholder hint shown in the input when no value
                        has been entered.
                      type: string
                    extractTextContent:
                      description: When `true`, server extracts text from uploaded
                        documents for use in merge tags.
                      type: boolean
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: MultiFile
                - title: PublicApiMultiSelectFormFieldConfig
                  type: object
                  required:
                  - fieldType
                  properties:
                    items:
                      description: Available options for selection-style form fields.
                      type: array
                      items:
                        title: PublicApiFormFieldItem
                        type: object
                        required:
                        - name
                        properties:
                          id:
                            title: EntityID
                            description: The resource's ID.
                            type: string
                          name:
                            description: Display name.
                            type: string
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: MultiSelect
                - title: PublicApiNumberFormFieldConfig
                  type: object
                  required:
                  - fieldType
                  properties:
                    placeholder:
                      description: Placeholder hint shown in the input when no value
                        has been entered.
                      type: string
                    defaultValue:
                      description: Default value pre-filled when a new workflow run
                        is created.
                      type: string
                    unit:
                      description: Unit label rendered next to the numeric value (e.g.
                        `kg`, `$`, `%`).
                      type: string
                    unitLocation:
                      description: |
                        Where the unit symbol appears relative to the number.

                        - `prefix` — before the number (e.g. `$100`).
                        - `suffix` — after the number (e.g. `100 USD`).
                      type: string
                      enum:
                      - prefix
                      - suffix
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: Number
                - title: PublicApiSelectFormFieldConfig
                  type: object
                  required:
                  - fieldType
                  properties:
                    items:
                      description: Available options for selection-style form fields.
                      type: array
                      items:
                        title: PublicApiFormFieldItem
                        type: object
                        required:
                        - name
                        properties:
                          id:
                            title: EntityID
                            description: The resource's ID.
                            type: string
                          name:
                            description: Display name.
                            type: string
                    defaultValue:
                      description: Default value pre-filled when a new workflow run
                        is created.
                      type: string
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: Select
                - title: PublicApiSendRichEmailFormFieldConfig
                  type: object
                  required:
                  - bodyEditor
                  - fieldType
                  properties:
                    to:
                      description: Default recipient list (To). Comma-separated email
                        addresses or merge tags.
                      type: array
                      items:
                        type: string
                    cc:
                      description: Default CC list. Comma-separated email addresses
                        or merge tags.
                      type: array
                      items:
                        type: string
                    bcc:
                      description: Default BCC list. Comma-separated email addresses
                        or merge tags.
                      type: array
                      items:
                        type: string
                    replyTo:
                      description: Default Reply-To address. An email address or merge
                        tag.
                      type: array
                      items:
                        type: string
                    subject:
                      description: Default email subject. May contain merge tags.
                      type: string
                    body:
                      description: Default email body. May contain merge tags.
                      type: string
                    bodyEditor:
                      description: |
                        Editor used to author the email body.

                        - `RichText` — rich-text editor with formatting.
                        - `HTML` — raw HTML editor.
                        - `PlainText` — plain text editor.
                      type: string
                      enum:
                      - RichText
                      - HTML
                      - PlainText
                    editAllowed:
                      description: When `true`, users running the workflow can edit
                        the email before sending.
                      type: boolean
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: SendRichEmail
                - title: PublicApiSnippetFormFieldConfig
                  type: object
                  required:
                  - fieldType
                  properties:
                    value:
                      description: The option's stored value.
                      type: string
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: Snippet
                - title: PublicApiTableFormFieldConfig
                  type: object
                  required:
                  - fieldType
                  properties:
                    columnDefs:
                      description: Data set column definitions (name + type per column).
                      type: array
                      items:
                        title: PublicApiTableFormFieldColumn
                        type: object
                        required:
                        - id
                        - name
                        - columnType
                        properties:
                          id:
                            title: EntityID
                            description: The resource's ID.
                            type: string
                          name:
                            description: Display name.
                            type: string
                          columnType:
                            description: |
                              Data type a Table column accepts.

                              - `Text` — free-form short text.
                            type: string
                            enum:
                            - Text
                    defaultValue:
                      description: Default value pre-filled when a new workflow run
                        is created.
                      type: string
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: Table
                - title: PublicApiTextFormFieldConfig
                  type: object
                  required:
                  - fieldType
                  properties:
                    placeholder:
                      description: Placeholder hint shown in the input when no value
                        has been entered.
                      type: string
                    defaultValue:
                      description: Default value pre-filled when a new workflow run
                        is created.
                      type: string
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: Text
                - title: PublicApiTextareaFormFieldConfig
                  type: object
                  required:
                  - fieldType
                  properties:
                    placeholder:
                      description: Placeholder hint shown in the input when no value
                        has been entered.
                      type: string
                    defaultValue:
                      description: Default value pre-filled when a new workflow run
                        is created.
                      type: string
                    format:
                      description: |
                        Editor style for this Textarea field.

                        - `PlainText` — plain text.
                        - `RichText` — rich-text editor with formatting (bold, lists, links, etc.).
                      type: string
                      enum:
                      - PlainText
                      - RichText
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: Textarea
                - title: PublicApiUrlFormFieldConfig
                  type: object
                  required:
                  - fieldType
                  properties:
                    defaultValue:
                      description: Default value pre-filled when a new workflow run
                        is created.
                      type: string
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: Url
                discriminator:
                  propertyName: fieldType
                  mapping:
                    Date: '#/components/schemas/PublicApiDateFormFieldConfig'
                    Document: '#/components/schemas/PublicApiDocumentFormFieldConfig'
                    Email: '#/components/schemas/PublicApiEmailFormFieldConfig'
                    File: '#/components/schemas/PublicApiFileFormFieldConfig'
                    Hidden: '#/components/schemas/PublicApiHiddenFormFieldConfig'
                    Members: '#/components/schemas/PublicApiMembersFormFieldConfig'
                    MultiChoice: '#/components/schemas/PublicApiMultiChoiceFormFieldConfig'
                    MultiFile: '#/components/schemas/PublicApiMultiFileFormFieldConfig'
                    MultiSelect: '#/components/schemas/PublicApiMultiSelectFormFieldConfig'
                    Number: '#/components/schemas/PublicApiNumberFormFieldConfig'
                    Select: '#/components/schemas/PublicApiSelectFormFieldConfig'
                    SendRichEmail: '#/components/schemas/PublicApiSendRichEmailFormFieldConfig'
                    Snippet: '#/components/schemas/PublicApiSnippetFormFieldConfig'
                    Table: '#/components/schemas/PublicApiTableFormFieldConfig'
                    Text: '#/components/schemas/PublicApiTextFormFieldConfig'
                    Textarea: '#/components/schemas/PublicApiTextareaFormFieldConfig'
                    Url: '#/components/schemas/PublicApiUrlFormFieldConfig'
              constraints:
                title: PublicApiFormFieldConstraints
                description: Field-specific validation constraints. Shape depends
                  on `fieldType`.
                oneOf:
                - title: PublicApiDateFormFieldConstraints
                  type: object
                  required:
                  - fieldType
                  properties:
                    afterDate:
                      description: Earliest accepted date (inclusive). Pair with `afterDateSourceType`.
                      type: string
                      format: date-time
                    beforeDate:
                      description: Latest accepted date (inclusive). Pair with `beforeDateSourceType`.
                      type: string
                      format: date-time
                    afterDateFormFieldWidgetGroupId:
                      title: EntityID
                      description: When `afterDateSourceType=FormField`, the ID of
                        the Date form field whose value is the lower bound.
                      type: string
                    beforeDateFormFieldWidgetGroupId:
                      title: EntityID
                      description: When `beforeDateSourceType=FormField`, the ID of
                        the Date form field whose value is the upper bound.
                      type: string
                    afterDateSourceType:
                      description: |
                        How the before/after constraint date is derived.

                        - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
                        - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
                        - `TaskDueDate` — relative to the containing task's due date.
                        - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
                      type: string
                      enum:
                      - SpecificDate
                      - FormFieldValue
                      - TaskDueDate
                      - ChecklistStartDate
                      - ChecklistDueDate
                    beforeDateSourceType:
                      description: |
                        How the before/after constraint date is derived.

                        - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
                        - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
                        - `TaskDueDate` — relative to the containing task's due date.
                        - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
                      type: string
                      enum:
                      - SpecificDate
                      - FormFieldValue
                      - TaskDueDate
                      - ChecklistStartDate
                      - ChecklistDueDate
                    afterDateOffset:
                      description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
                      type: string
                    beforeDateOffset:
                      description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
                      type: string
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: Date
                - title: PublicApiEmailFormFieldConstraints
                  type: object
                  required:
                  - fieldType
                  properties:
                    domains:
                      description: Allowed (or blocked, depending on `restriction`)
                        email domains for this field.
                      type: array
                      items:
                        type: string
                    restriction:
                      description: |
                        How the `domains` list filters allowed email addresses.

                        - `Allow` — only emails whose domain is in the list are accepted.
                        - `Block` — emails whose domain is in the list are rejected; all others accepted.
                      type: string
                      enum:
                      - Allow
                      - Block
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: Email
                - title: PublicApiFileFormFieldConstraints
                  type: object
                  required:
                  - fieldType
                  properties:
                    extensions:
                      description: Allowed file extensions, including the leading
                        dot (e.g. `.pdf`, `.docx`).
                      type: array
                      items:
                        type: string
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: File
                - title: PublicApiMultiFileFormFieldConstraints
                  type: object
                  required:
                  - fieldType
                  properties:
                    extensions:
                      description: Allowed file extensions, including the leading
                        dot (e.g. `.pdf`, `.docx`).
                      type: array
                      items:
                        type: string
                    mode:
                      description: |
                        Whether the field accepts a single file or multiple files.

                        - `Single` — only one file may be uploaded.
                        - `Multiple` — multiple files may be uploaded.
                      type: string
                      enum:
                      - Multiple
                      - Single
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: MultiFile
                - title: PublicApiNumberFormFieldConstraints
                  type: object
                  required:
                  - fieldType
                  properties:
                    minDigits:
                      description: Minimum number of digits.
                      type: integer
                      format: int32
                    maxDigits:
                      description: Maximum number of digits.
                      type: integer
                      format: int32
                    minValue:
                      description: Minimum numeric value.
                      type: integer
                      format: int32
                    maxValue:
                      description: Maximum numeric value.
                      type: integer
                      format: int32
                    decimalPlaces:
                      description: Number of decimal places to accept (0 means integers
                        only).
                      type: integer
                      format: int32
                    allowNegative:
                      description: When `true`, negative numbers are accepted.
                      type: boolean
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: Number
                - title: PublicApiTextFormFieldConstraints
                  type: object
                  required:
                  - fieldType
                  properties:
                    min:
                      description: Inclusive lower bound.
                      type: integer
                      format: int32
                    max:
                      description: Inclusive upper bound.
                      type: integer
                      format: int32
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: Text
                - title: PublicApiTextareaFormFieldConstraints
                  type: object
                  required:
                  - fieldType
                  properties:
                    min:
                      description: Inclusive lower bound.
                      type: integer
                      format: int32
                    max:
                      description: Inclusive upper bound.
                      type: integer
                      format: int32
                    fieldType:
                      description: |
                        Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                        - `Text` — short text input (≤255 characters).
                        - `Textarea` — long-form text.
                        - `Email` — email address.
                        - `Url` — website / URL.
                        - `Number` — numeric input with optional unit and constraints.
                        - `Date` — date or date+time picker.
                        - `Select` — dropdown; user picks one option.
                        - `MultiChoice` — checkboxes; user picks one or more options.
                        - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                        - `Members` — assignee picker (selects organization users).
                        - `File` — single file upload.
                        - `MultiFile` — multi-file upload (in-app "File Upload").
                        - `Document` — document approval field; links the task to a document review.
                        - `Table` — rows × columns of cells; users fill cell values.
                        - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                          automatically when the task is completed.
                        - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                        - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                      type: string
                      enum:
                      - Date
                      - Document
                      - Email
                      - File
                      - Hidden
                      - Members
                      - MultiChoice
                      - MultiFile
                      - MultiSelect
                      - Number
                      - Select
                      - SendRichEmail
                      - Snippet
                      - Table
                      - Text
                      - Textarea
                      - Url
                      const: Textarea
                discriminator:
                  propertyName: fieldType
                  mapping:
                    Date: '#/components/schemas/PublicApiDateFormFieldConstraints'
                    Email: '#/components/schemas/PublicApiEmailFormFieldConstraints'
                    File: '#/components/schemas/PublicApiFileFormFieldConstraints'
                    MultiFile: '#/components/schemas/PublicApiMultiFileFormFieldConstraints'
                    Number: '#/components/schemas/PublicApiNumberFormFieldConstraints'
                    Text: '#/components/schemas/PublicApiTextFormFieldConstraints'
                    Textarea: '#/components/schemas/PublicApiTextareaFormFieldConstraints'
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api`
                  or `App`).
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
              type:
                title: WidgetType
                description: |
                  Widget kind discriminator.

                  - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
                  - `Text` — rich text content displayed on the task.
                  - `Image` — image content displayed on the task.
                  - `File` — downloadable file attached to the task.
                  - `Video` — video content (uploaded or linked from a hosting service).
                  - `Embed` — embedded external content via URL.
                  - `CrossLink` — link to another workflow or page.
                type: string
                enum:
                - FormField
                - Text
                - Image
                - File
                - Video
                - Embed
                - CrossLink
          - title: PublicApiImageWidget
            type: object
            required:
            - hiddenByDefault
            - id
            - taskId
            - createdDate
            - createdBy
            - updatedDate
            - updatedBy
            - type
            properties:
              hiddenByDefault:
                description: When `true`, the widget is hidden by default; conditional
                  logic rules can reveal it at runtime. Defaults to `false`.
                type: boolean
              id:
                description: The ID of the Widget
                examples:
                - oiQKJE_vcnbbo0bGolJI8A
                type: string
              taskId:
                description: The ID of the Task
                examples:
                - oiQKJE_vcnbbo0bGolJI8A
                type: string
              createdDate:
                description: When the resource was first created. ISO-8601 UTC.
                type: string
                format: date-time
              createdBy:
                description: User who created the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              updatedDate:
                description: When the resource was last modified. ISO-8601 UTC.
                type: string
                format: date-time
              updatedBy:
                description: User who last modified the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              caption:
                description: Caption text rendered with the image.
                type: string
              file:
                title: PublicApiWidgetFile
                description: Uploaded file reference. Use the upload endpoint to attach
                  content.
                type: object
                required:
                - id
                - name
                - mimeType
                - size
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  name:
                    description: Display name.
                    type: string
                  mimeType:
                    description: MIME type detected at upload time (e.g. `image/png`,
                      `application/pdf`).
                    type: string
                  size:
                    description: File size in bytes.
                    type: integer
                    format: int64
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api`
                  or `App`).
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
              type:
                title: WidgetType
                description: |
                  Widget kind discriminator.

                  - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
                  - `Text` — rich text content displayed on the task.
                  - `Image` — image content displayed on the task.
                  - `File` — downloadable file attached to the task.
                  - `Video` — video content (uploaded or linked from a hosting service).
                  - `Embed` — embedded external content via URL.
                  - `CrossLink` — link to another workflow or page.
                type: string
                enum:
                - FormField
                - Text
                - Image
                - File
                - Video
                - Embed
                - CrossLink
          - title: PublicApiTextWidget
            type: object
            required:
            - hiddenByDefault
            - id
            - taskId
            - createdDate
            - createdBy
            - updatedDate
            - updatedBy
            - type
            properties:
              hiddenByDefault:
                description: When `true`, the widget is hidden by default; conditional
                  logic rules can reveal it at runtime. Defaults to `false`.
                type: boolean
              id:
                description: The ID of the Widget
                examples:
                - uMyEwJTg0CAPKh-XTupKwg
                type: string
              taskId:
                description: The ID of the Task
                examples:
                - uMyEwJTg0CAPKh-XTupKwg
                type: string
              createdDate:
                description: When the resource was first created. ISO-8601 UTC.
                type: string
                format: date-time
              createdBy:
                description: User who created the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              updatedDate:
                description: When the resource was last modified. ISO-8601 UTC.
                type: string
                format: date-time
              updatedBy:
                description: User who last modified the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              content:
                description: Rich text content. May contain merge tags.
                type: string
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api`
                  or `App`).
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
              type:
                title: WidgetType
                description: |
                  Widget kind discriminator.

                  - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
                  - `Text` — rich text content displayed on the task.
                  - `Image` — image content displayed on the task.
                  - `File` — downloadable file attached to the task.
                  - `Video` — video content (uploaded or linked from a hosting service).
                  - `Embed` — embedded external content via URL.
                  - `CrossLink` — link to another workflow or page.
                type: string
                enum:
                - FormField
                - Text
                - Image
                - File
                - Video
                - Embed
                - CrossLink
          - title: PublicApiVideoWidget
            type: object
            required:
            - hiddenByDefault
            - id
            - taskId
            - createdDate
            - createdBy
            - updatedDate
            - updatedBy
            - type
            properties:
              hiddenByDefault:
                description: When `true`, the widget is hidden by default; conditional
                  logic rules can reveal it at runtime. Defaults to `false`.
                type: boolean
              id:
                description: The ID of the Widget
                examples:
                - ulkt40IrZGWrOnmPoEFFyQ
                type: string
              taskId:
                description: The ID of the Task
                examples:
                - ulkt40IrZGWrOnmPoEFFyQ
                type: string
              createdDate:
                description: When the resource was first created. ISO-8601 UTC.
                type: string
                format: date-time
              createdBy:
                description: User who created the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              updatedDate:
                description: When the resource was last modified. ISO-8601 UTC.
                type: string
                format: date-time
              updatedBy:
                description: User who last modified the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              description:
                description: Optional long-form description.
                type: string
              url:
                description: Target URL.
                type: string
              file:
                title: PublicApiWidgetFile
                description: Uploaded file reference. Use the upload endpoint to attach
                  content.
                type: object
                required:
                - id
                - name
                - mimeType
                - size
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  name:
                    description: Display name.
                    type: string
                  mimeType:
                    description: MIME type detected at upload time (e.g. `image/png`,
                      `application/pdf`).
                    type: string
                  size:
                    description: File size in bytes.
                    type: integer
                    format: int64
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api`
                  or `App`).
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
              type:
                title: WidgetType
                description: |
                  Widget kind discriminator.

                  - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
                  - `Text` — rich text content displayed on the task.
                  - `Image` — image content displayed on the task.
                  - `File` — downloadable file attached to the task.
                  - `Video` — video content (uploaded or linked from a hosting service).
                  - `Embed` — embedded external content via URL.
                  - `CrossLink` — link to another workflow or page.
                type: string
                enum:
                - FormField
                - Text
                - Image
                - File
                - Video
                - Embed
                - CrossLink
          discriminator:
            propertyName: type
            mapping:
              CrossLink: '#/components/schemas/PublicApiCrossLinkWidget'
              Embed: '#/components/schemas/PublicApiEmbedWidget'
              File: '#/components/schemas/PublicApiFileWidget'
              FormField: '#/components/schemas/PublicApiFormFieldWidget'
              Image: '#/components/schemas/PublicApiImageWidget'
              Text: '#/components/schemas/PublicApiTextWidget'
              Video: '#/components/schemas/PublicApiVideoWidget'
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiWorkflow:
      title: PublicApiWorkflow
      type: object
      required:
      - id
      - audit
      - name
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        audit:
          title: PublicApiAudit
          description: Creation and last-modification metadata.
          type: object
          required:
          - createdDate
          - createdBy
          - updatedDate
          - updatedBy
          properties:
            createdDate:
              description: When the resource was first created. ISO-8601 UTC.
              type: string
              format: date-time
            createdBy:
              title: PublicApiUser
              description: User who created the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            updatedDate:
              description: When the resource was last modified. ISO-8601 UTC.
              type: string
              format: date-time
            updatedBy:
              title: PublicApiUser
              description: User who last modified the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
        name:
          description: The workflow's name.
          type: string
        description:
          description: Optional long-form description of the workflow.
          type: string
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 link relation like `self`, `edit`, `related`), an `href`
            URL, and a `type` (`Api` for callable endpoints, `App` for browser-facing
            URLs). Prefer following these `href` values over constructing URLs by
            hand.
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiWorkflowPermission:
      title: PublicApiWorkflowPermission
      type: object
      required:
      - email
      - accessLevel
      - permissions
      properties:
        email:
          description: Email address.
          type: string
        accessLevel:
          description: Access level a user or group has on this workflow. `Edit` —
            edit the workflow, run new workflow runs, and view all runs created from
            it. `EditViewOwn` — edit the workflow and run new runs, but only view
            runs assigned to them (available on some plans). `ViewAll` — view the
            workflow and all runs, plus run new runs; cannot edit the workflow. `Run`
            — view the workflow, run new runs, and view runs assigned to them. `View`
            — view the workflow and only runs assigned to them; cannot run. `Custom`
            — the user's underlying permission atoms don't match any predefined level;
            inspect the `permissions` object on the same entry for the actual atoms.
          type: string
          enum:
          - Edit
          - EditViewOwn
          - ViewAll
          - Run
          - View
          - Custom
        permissions:
          title: PublicApiWorkflowPermissionAtoms
          description: Granular permission flags this user or group has on the workflow.
          type: object
          required:
          - templateRead
          - templateUpdate
          - templateDelete
          - checklistCreate
          - checklistRead
          - checklistUpdate
          - checklistDelete
          - doodadCreate
          - doodadRead
          - doodadUpdate
          properties:
            templateRead:
              description: Can view the workflow.
              type: boolean
            templateUpdate:
              description: Can edit the workflow.
              type: boolean
            templateDelete:
              description: Can delete the workflow.
              type: boolean
            checklistCreate:
              description: Can start new workflow runs from the workflow.
              type: boolean
            checklistRead:
              description: Can view workflow runs of this workflow.
              type: boolean
            checklistUpdate:
              description: Can edit workflow runs (e.g. complete tasks, fill form
                fields, change due dates).
              type: boolean
            checklistDelete:
              description: Can delete workflow runs.
              type: boolean
            doodadCreate:
              description: Can add comments and attachments to workflow runs.
              type: boolean
            doodadRead:
              description: Can view comments and attachments on workflow runs.
              type: boolean
            doodadUpdate:
              description: Can edit comments and attachments on workflow runs.
              type: boolean
    PublicApiWorkflowPermissionAtoms:
      title: PublicApiWorkflowPermissionAtoms
      description: Granular permission flags this user or group has on the workflow.
      type: object
      required:
      - templateRead
      - templateUpdate
      - templateDelete
      - checklistCreate
      - checklistRead
      - checklistUpdate
      - checklistDelete
      - doodadCreate
      - doodadRead
      - doodadUpdate
      properties:
        templateRead:
          description: Can view the workflow.
          type: boolean
        templateUpdate:
          description: Can edit the workflow.
          type: boolean
        templateDelete:
          description: Can delete the workflow.
          type: boolean
        checklistCreate:
          description: Can start new workflow runs from the workflow.
          type: boolean
        checklistRead:
          description: Can view workflow runs of this workflow.
          type: boolean
        checklistUpdate:
          description: Can edit workflow runs (e.g. complete tasks, fill form fields,
            change due dates).
          type: boolean
        checklistDelete:
          description: Can delete workflow runs.
          type: boolean
        doodadCreate:
          description: Can add comments and attachments to workflow runs.
          type: boolean
        doodadRead:
          description: Can view comments and attachments on workflow runs.
          type: boolean
        doodadUpdate:
          description: Can edit comments and attachments on workflow runs.
          type: boolean
    PublicApiWorkflowPermissionListResponse:
      title: PublicApiWorkflowPermissionListResponse
      type: object
      properties:
        data:
          description: The list of resources returned by this request.
          type: array
          items:
            title: PublicApiWorkflowPermission
            type: object
            required:
            - email
            - accessLevel
            - permissions
            properties:
              email:
                description: Email address.
                type: string
              accessLevel:
                description: Access level a user or group has on this workflow. `Edit`
                  — edit the workflow, run new workflow runs, and view all runs created
                  from it. `EditViewOwn` — edit the workflow and run new runs, but
                  only view runs assigned to them (available on some plans). `ViewAll`
                  — view the workflow and all runs, plus run new runs; cannot edit
                  the workflow. `Run` — view the workflow, run new runs, and view
                  runs assigned to them. `View` — view the workflow and only runs
                  assigned to them; cannot run. `Custom` — the user's underlying permission
                  atoms don't match any predefined level; inspect the `permissions`
                  object on the same entry for the actual atoms.
                type: string
                enum:
                - Edit
                - EditViewOwn
                - ViewAll
                - Run
                - View
                - Custom
              permissions:
                title: PublicApiWorkflowPermissionAtoms
                description: Granular permission flags this user or group has on the
                  workflow.
                type: object
                required:
                - templateRead
                - templateUpdate
                - templateDelete
                - checklistCreate
                - checklistRead
                - checklistUpdate
                - checklistDelete
                - doodadCreate
                - doodadRead
                - doodadUpdate
                properties:
                  templateRead:
                    description: Can view the workflow.
                    type: boolean
                  templateUpdate:
                    description: Can edit the workflow.
                    type: boolean
                  templateDelete:
                    description: Can delete the workflow.
                    type: boolean
                  checklistCreate:
                    description: Can start new workflow runs from the workflow.
                    type: boolean
                  checklistRead:
                    description: Can view workflow runs of this workflow.
                    type: boolean
                  checklistUpdate:
                    description: Can edit workflow runs (e.g. complete tasks, fill
                      form fields, change due dates).
                    type: boolean
                  checklistDelete:
                    description: Can delete workflow runs.
                    type: boolean
                  doodadCreate:
                    description: Can add comments and attachments to workflow runs.
                    type: boolean
                  doodadRead:
                    description: Can view comments and attachments on workflow runs.
                    type: boolean
                  doodadUpdate:
                    description: Can edit comments and attachments on workflow runs.
                    type: boolean
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiWorkflowResponse:
      title: PublicApiWorkflowResponse
      type: object
      required:
      - data
      properties:
        data:
          title: PublicApiWorkflow
          type: object
          required:
          - id
          - audit
          - name
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            audit:
              title: PublicApiAudit
              description: Creation and last-modification metadata.
              type: object
              required:
              - createdDate
              - createdBy
              - updatedDate
              - updatedBy
              properties:
                createdDate:
                  description: When the resource was first created. ISO-8601 UTC.
                  type: string
                  format: date-time
                createdBy:
                  title: PublicApiUser
                  description: User who created the resource.
                  examples:
                  - id: lZBrdUpCPxKLORVf_RBMQA
                    email: jane.doe@example.com
                    username: Jane Doe
                  type: object
                  required:
                  - id
                  - email
                  - username
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    email:
                      description: The user's email address (also their login identifier).
                      type: string
                    username:
                      description: The user's display name (e.g. `Jane Doe`).
                      type: string
                updatedDate:
                  description: When the resource was last modified. ISO-8601 UTC.
                  type: string
                  format: date-time
                updatedBy:
                  title: PublicApiUser
                  description: User who last modified the resource.
                  examples:
                  - id: lZBrdUpCPxKLORVf_RBMQA
                    email: jane.doe@example.com
                    username: Jane Doe
                  type: object
                  required:
                  - id
                  - email
                  - username
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    email:
                      description: The user's email address (also their login identifier).
                      type: string
                    username:
                      description: The user's display name (e.g. `Jane Doe`).
                      type: string
            name:
              description: The workflow's name.
              type: string
            description:
              description: Optional long-form description of the workflow.
              type: string
            links:
              description: Navigable HATEOAS links to related resources. Each entry
                has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                an `href` URL, and a `type` (`Api` for callable endpoints, `App` for
                browser-facing URLs). Prefer following these `href` values over constructing
                URLs by hand.
              type: array
              items:
                title: Link
                description: A HATEOAS link to a related resource. Use these to navigate
                  between resources without constructing URLs by hand.
                type: object
                required:
                - name
                - href
                - type
                properties:
                  name:
                    description: Standard link relation name (RFC 5988) indicating
                      this link's role. Common values include `self`, `edit`, `related`,
                      `previous`, `next`.
                    type: string
                  href:
                    title: Uri
                    description: URL of the linked resource.
                    examples:
                    - https://api.process.st/api/v1.1/resource/XXX
                    type: string
                  rel:
                    description: Optional. The kind of resource this link points to
                      (e.g. `Workflow`, `Task`, `Comment`).
                    type: string
                    enum:
                    - Approval Task
                    - Approvals
                    - Assignees
                    - Comment
                    - Data Set Records
                    - Data Sets
                    - Form Field Values
                    - Subject Task
                    - Task
                    - Tasks
                    - Users
                    - Webhook
                    - Workflow
                    - Workflow Run
                  type:
                    description: Whether this link targets an API endpoint or a Process
                      Street app URL. `Api` — a callable API endpoint you can fetch
                      directly. `App` — a browser-facing URL in the Process Street
                      UI.
                    type: string
                    enum:
                    - Api
                    - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiWorkflowRevision:
      title: PublicApiWorkflowRevision
      type: object
      required:
      - id
      - createdDate
      - createdBy
      - updatedDate
      - updatedBy
      - workflowId
      - version
      - status
      properties:
        id:
          description: The ID of the Revision
          examples:
          - uQdmMG68FtJ9oPTXfOZHfQ
          type: string
        createdDate:
          description: When the resource was first created. ISO-8601 UTC.
          type: string
          format: date-time
        createdBy:
          description: User who created the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        workflowId:
          description: The ID of the Workflow
          examples:
          - uQdmMG68FtJ9oPTXfOZHfQ
          type: string
        version:
          description: Revision version number; monotonically increasing per template.
          type: string
        status:
          description: Status of this revision. `Draft` — being edited; not yet published.
            `Finished` — currently published version (only one Finished revision per
            workflow/page at a time). `Revised` — was previously the published version
            but has been replaced by a newer Finished revision.
          type: string
          enum:
          - Draft
          - Finished
          - Revised
    PublicApiWorkflowRevisionListResponse:
      title: PublicApiWorkflowRevisionListResponse
      type: object
      properties:
        data:
          description: The list of resources returned by this request.
          type: array
          items:
            title: PublicApiWorkflowRevision
            type: object
            required:
            - id
            - createdDate
            - createdBy
            - updatedDate
            - updatedBy
            - workflowId
            - version
            - status
            properties:
              id:
                description: The ID of the Revision
                examples:
                - uQdmMG68FtJ9oPTXfOZHfQ
                type: string
              createdDate:
                description: When the resource was first created. ISO-8601 UTC.
                type: string
                format: date-time
              createdBy:
                description: User who created the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              updatedDate:
                description: When the resource was last modified. ISO-8601 UTC.
                type: string
                format: date-time
              updatedBy:
                description: User who last modified the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              workflowId:
                description: The ID of the Workflow
                examples:
                - uQdmMG68FtJ9oPTXfOZHfQ
                type: string
              version:
                description: Revision version number; monotonically increasing per
                  template.
                type: string
              status:
                description: Status of this revision. `Draft` — being edited; not
                  yet published. `Finished` — currently published version (only one
                  Finished revision per workflow/page at a time). `Revised` — was
                  previously the published version but has been replaced by a newer
                  Finished revision.
                type: string
                enum:
                - Draft
                - Finished
                - Revised
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiWorkflowRevisionResponse:
      title: PublicApiWorkflowRevisionResponse
      type: object
      required:
      - data
      properties:
        data:
          title: PublicApiWorkflowRevision
          type: object
          required:
          - id
          - createdDate
          - createdBy
          - updatedDate
          - updatedBy
          - workflowId
          - version
          - status
          properties:
            id:
              description: The ID of the Revision
              examples:
              - uQdmMG68FtJ9oPTXfOZHfQ
              type: string
            createdDate:
              description: When the resource was first created. ISO-8601 UTC.
              type: string
              format: date-time
            createdBy:
              description: User who created the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            updatedDate:
              description: When the resource was last modified. ISO-8601 UTC.
              type: string
              format: date-time
            updatedBy:
              description: User who last modified the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            workflowId:
              description: The ID of the Workflow
              examples:
              - uQdmMG68FtJ9oPTXfOZHfQ
              type: string
            version:
              description: Revision version number; monotonically increasing per template.
              type: string
            status:
              description: Status of this revision. `Draft` — being edited; not yet
                published. `Finished` — currently published version (only one Finished
                revision per workflow/page at a time). `Revised` — was previously
                the published version but has been replaced by a newer Finished revision.
              type: string
              enum:
              - Draft
              - Finished
              - Revised
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiWorkflowRevisionVariable:
      title: PublicApiWorkflowRevisionVariable
      type: object
      required:
      - key
      - label
      - variableType
      properties:
        key:
          description: Unique key used to identify this row across imports — matches
            the data set column referenced by the webhook's `keyColumn`.
          type: string
        label:
          description: Display label shown to the end user.
          type: string
        variableType:
          title: VariableType
          description: |
            The kind of merge tag variable this is.

            - `Standard` — built-in variable like `{{workflow.name}}` or `{{run.startedDate}}`.
            - `FormField` — resolves to a form field value on the workflow run.
            - `DataSet` — resolves to a column from a linked data set row.
            - `EmailTrigger` — populated from an inbound email that triggered the workflow run.
            - `DocumentReview` — available on workflows using the Document Approvals feature
              (see https://www.process.st/help/docs/document-approvals/).
          type: string
          enum:
          - Standard
          - FormField
          - DataSet
          - EmailTrigger
          - DocumentReview
    PublicApiWorkflowRevisionVariableListResponse:
      title: PublicApiWorkflowRevisionVariableListResponse
      type: object
      properties:
        data:
          description: The list of resources returned by this request.
          type: array
          items:
            title: PublicApiWorkflowRevisionVariable
            type: object
            required:
            - key
            - label
            - variableType
            properties:
              key:
                description: Unique key used to identify this row across imports —
                  matches the data set column referenced by the webhook's `keyColumn`.
                type: string
              label:
                description: Display label shown to the end user.
                type: string
              variableType:
                title: VariableType
                description: |
                  The kind of merge tag variable this is.

                  - `Standard` — built-in variable like `{{workflow.name}}` or `{{run.startedDate}}`.
                  - `FormField` — resolves to a form field value on the workflow run.
                  - `DataSet` — resolves to a column from a linked data set row.
                  - `EmailTrigger` — populated from an inbound email that triggered the workflow run.
                  - `DocumentReview` — available on workflows using the Document Approvals feature
                    (see https://www.process.st/help/docs/document-approvals/).
                type: string
                enum:
                - Standard
                - FormField
                - DataSet
                - EmailTrigger
                - DocumentReview
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiWorkflowRun:
      title: PublicApiWorkflowRun
      type: object
      required:
      - id
      - audit
      - status
      - workflowId
      - shared
      - migrationStatus
      properties:
        id:
          description: The ID of the Workflow Run
          examples:
          - t-Du98Rwi7eo3qpO-85Nzw
          type: string
        audit:
          title: AuditInfo
          description: Creation and last-modification metadata.
          type: object
          required:
          - createdDate
          - createdById
          - updatedDate
          - updatedById
          properties:
            createdDate:
              description: When the resource was first created. ISO-8601 UTC.
              type: string
              format: date-time
            createdById:
              title: EntityID
              description: ID of the user who created the resource.
              type: string
            updatedDate:
              description: When the resource was last modified. ISO-8601 UTC.
              type: string
              format: date-time
            updatedById:
              title: EntityID
              description: ID of the user who last modified the resource.
              type: string
        name:
          description: Display name of the workflow run (often interpolated from a
            name template).
          type: string
        status:
          description: |
            Lifecycle status of a workflow run.

            - `Active` — the run is in progress.
            - `Completed` — all tasks were completed and the run was finalised.
            - `Archived` — the run was archived from the active list (no further task progress is recorded but the run stays queryable).
            - `Deleted` — the run was soft-deleted.

            List endpoints return only `Active` runs unless otherwise indicated.
          type: string
          enum:
          - Active
          - Completed
          - Archived
          - Deleted
        workflowId:
          description: The ID of the Workflow
          examples:
          - t-Du98Rwi7eo3qpO-85Nzw
          type: string
        shared:
          description: When `true`, this run is visible via its share link.
          type: boolean
        dueDate:
          description: Optional workflow-level due date. ISO-8601 UTC.
          type: string
          format: date-time
        migrationStatus:
          description: |
            Whether this run is currently being migrated to a newer workflow revision.

            - `Inactive` — not in a migration; this is the normal state.
            - `Scheduled` — a migration to a newer revision has been requested and is queued.
            - `Migrating` — migration is in progress; some fields may change shortly.
          type: string
          enum:
          - Inactive
          - Scheduled
          - Migrating
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 link relation like `self`, `edit`, `related`), an `href`
            URL, and a `type` (`Api` for callable endpoints, `App` for browser-facing
            URLs). Prefer following these `href` values over constructing URLs by
            hand.
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    PublicApiWorkflowRunListResponse:
      title: PublicApiWorkflowRunListResponse
      type: object
      properties:
        data:
          description: The list of resources returned by this request.
          type: array
          items:
            title: PublicApiWorkflowRun
            type: object
            required:
            - id
            - audit
            - status
            - workflowId
            - shared
            - migrationStatus
            properties:
              id:
                description: The ID of the Workflow Run
                examples:
                - t-Du98Rwi7eo3qpO-85Nzw
                type: string
              audit:
                title: AuditInfo
                description: Creation and last-modification metadata.
                type: object
                required:
                - createdDate
                - createdById
                - updatedDate
                - updatedById
                properties:
                  createdDate:
                    description: When the resource was first created. ISO-8601 UTC.
                    type: string
                    format: date-time
                  createdById:
                    title: EntityID
                    description: ID of the user who created the resource.
                    type: string
                  updatedDate:
                    description: When the resource was last modified. ISO-8601 UTC.
                    type: string
                    format: date-time
                  updatedById:
                    title: EntityID
                    description: ID of the user who last modified the resource.
                    type: string
              name:
                description: Display name of the workflow run (often interpolated
                  from a name template).
                type: string
              status:
                description: |
                  Lifecycle status of a workflow run.

                  - `Active` — the run is in progress.
                  - `Completed` — all tasks were completed and the run was finalised.
                  - `Archived` — the run was archived from the active list (no further task progress is recorded but the run stays queryable).
                  - `Deleted` — the run was soft-deleted.

                  List endpoints return only `Active` runs unless otherwise indicated.
                type: string
                enum:
                - Active
                - Completed
                - Archived
                - Deleted
              workflowId:
                description: The ID of the Workflow
                examples:
                - t-Du98Rwi7eo3qpO-85Nzw
                type: string
              shared:
                description: When `true`, this run is visible via its share link.
                type: boolean
              dueDate:
                description: Optional workflow-level due date. ISO-8601 UTC.
                type: string
                format: date-time
              migrationStatus:
                description: |
                  Whether this run is currently being migrated to a newer workflow revision.

                  - `Inactive` — not in a migration; this is the normal state.
                  - `Scheduled` — a migration to a newer revision has been requested and is queued.
                  - `Migrating` — migration is in progress; some fields may change shortly.
                type: string
                enum:
                - Inactive
                - Scheduled
                - Migrating
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 link relation like `self`, `edit`, `related`),
                  an `href` URL, and a `type` (`Api` for callable endpoints, `App`
                  for browser-facing URLs). Prefer following these `href` values over
                  constructing URLs by hand.
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
        links:
          description: 'Pagination links. When the result has more pages, look for
            an entry with `name: "next"` — its `href` is the URL to fetch the next
            page. Absence of `next` means there are no more pages. For single-resource
            responses this array is typically empty.'
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    RulePosition:
      title: RulePosition
      description: Where to place this logic rule in the workflow revision. `Top`
        — before all existing rules. `Bottom` — after all existing rules (default
        when `position` is omitted). `After` — immediately after the rule identified
        by `ruleId`.
      oneOf:
      - title: RulePositionAfter
        type: object
        required:
        - ruleId
        - type
        properties:
          ruleId:
            title: EntityID
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            const: After
      - title: RulePositionBottom
        type: object
        required:
        - type
        properties:
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            const: Bottom
      - title: RulePositionTop
        type: object
        required:
        - type
        properties:
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            const: Top
      discriminator:
        propertyName: type
        mapping:
          After: '#/components/schemas/RulePositionAfter'
          Bottom: '#/components/schemas/RulePositionBottom'
          Top: '#/components/schemas/RulePositionTop'
    RulePositionAfter:
      title: RulePositionAfter
      type: object
      required:
      - ruleId
      - type
      properties:
        ruleId:
          title: EntityID
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          const: After
    RulePositionBottom:
      title: RulePositionBottom
      type: object
      required:
      - type
      properties:
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          const: Bottom
    RulePositionTop:
      title: RulePositionTop
      type: object
      required:
      - type
      properties:
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          const: Top
    SearchMyWorkItemsRequest:
      title: SearchMyWorkItemsRequest
      type: object
      properties:
        assigneeEmails:
          description: Filter results to items assigned to one or more user emails.
            Unknown emails are silently ignored (the search returns whatever the known
            assignees have). Defaults to the authenticated user if empty.
          type: array
          items:
            type: string
        types:
          type: array
          items:
            title: InboxItemType
            description: |
              Kind of My Work item.

              - `Checklist` — a workflow run assigned to the user.
              - `StandardTask` — a regular task within a workflow run.
              - `ApprovalTask` — an approval task awaiting the user's review.
              - `OneOffTask` — a standalone one-off task.
              - `Acknowledgment` — a revision-acknowledgment request after a workflow update.
            type: string
            enum:
            - Checklist
            - StandardTask
            - ApprovalTask
            - OneOffTask
            - Acknowledgment
        workflowIds:
          description: Filter to specific workflows. Unknown/inaccessible workflow
            IDs are silently ignored.
          type: array
          items:
            title: EntityID
            type: string
        dueDateFrom:
          description: Due date range start (ISO-8601, e.g. 2024-01-15).
          type: string
          format: date-time
        dueDateTo:
          description: Due date range end (ISO-8601, e.g. 2024-01-31).
          type: string
          format: date-time
        snoozeStatus:
          title: SnoozeStatus
          description: |
            Snooze filter for the search.

            - `Active` — non-snoozed items only.
            - `Snoozed` — items currently snoozed.
          type: string
          enum:
          - Active
          - Snoozed
        includeCompleted:
          description: Include completed items. Defaults to false.
          type: boolean
        searchTerm:
          description: Free-text search term applied to task and workflow names.
          type: string
        sortBy:
          title: MyWorkSortBy
          description: |
            Sort key.

            - `DueDate` — sort by assignment due date.
            - `Name` — sort by task name (falls back to workflow run name if the task has no name).
          type: string
          enum:
          - DueDate
          - Name
        sortOrder:
          title: MyWorkSortOrder
          description: |
            Sort direction.

            - `Asc` — ascending.
            - `Desc` — descending.
          type: string
          enum:
          - Asc
          - Desc
    SimplifiedApproval:
      title: SimplifiedApproval
      type: object
      required:
      - id
      - audit
      - organizationId
      - workflowRunId
      - approvalTaskId
      - subjectTaskId
      - status
      - reviewedBy
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        audit:
          title: PublicApiAudit
          description: Creation and last-modification metadata.
          type: object
          required:
          - createdDate
          - createdBy
          - updatedDate
          - updatedBy
          properties:
            createdDate:
              description: When the resource was first created. ISO-8601 UTC.
              type: string
              format: date-time
            createdBy:
              title: PublicApiUser
              description: User who created the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            updatedDate:
              description: When the resource was last modified. ISO-8601 UTC.
              type: string
              format: date-time
            updatedBy:
              title: PublicApiUser
              description: User who last modified the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
        organizationId:
          title: EntityID
          description: The ID of the organization this resource belongs to.
          type: string
        workflowRunId:
          title: EntityID
          description: The ID of the Workflow Run.
          type: string
        approvalTaskId:
          title: EntityID
          type: string
        subjectTaskId:
          title: EntityID
          type: string
        status:
          description: |
            Outcome of an approval task review.

            - `Approved` — the reviewer accepted the subject task(s).
            - `Rejected` — the reviewer rejected; subject tasks return to the assignee for rework.
          type: string
          enum:
          - Approved
          - Rejected
        reviewedBy:
          title: PublicApiUser
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        comment:
          type: string
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    SimplifiedCell:
      title: SimplifiedCell
      type: object
      required:
      - fieldId
      - value
      properties:
        fieldId:
          title: EntityID
          description: The ID of the form field.
          type: string
        value:
          description: The option's stored value.
          oneOf:
          - type: 'null'
          - type: number
          - type: string
    SimplifiedDataSet:
      title: SimplifiedDataSet
      type: object
      required:
      - id
      - audit
      - organizationId
      - name
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        audit:
          title: PublicApiAudit
          description: Creation and last-modification metadata.
          type: object
          required:
          - createdDate
          - createdBy
          - updatedDate
          - updatedBy
          properties:
            createdDate:
              description: When the resource was first created. ISO-8601 UTC.
              type: string
              format: date-time
            createdBy:
              title: PublicApiUser
              description: User who created the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            updatedDate:
              description: When the resource was last modified. ISO-8601 UTC.
              type: string
              format: date-time
            updatedBy:
              title: PublicApiUser
              description: User who last modified the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
        deletedDate:
          type: string
          format: date-time
        deletedBy:
          title: PublicApiUser
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        organizationId:
          title: EntityID
          description: The ID of the organization this resource belongs to.
          type: string
        name:
          description: Display name.
          type: string
        fields:
          description: Form field definitions or column definitions, depending on
            context.
          type: array
          items:
            title: DataSetField
            type: object
            required:
            - id
            - audit
            - name
            - fieldType
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              audit:
                title: PublicApiAudit
                description: Creation and last-modification metadata.
                type: object
                required:
                - createdDate
                - createdBy
                - updatedDate
                - updatedBy
                properties:
                  createdDate:
                    description: When the resource was first created. ISO-8601 UTC.
                    type: string
                    format: date-time
                  createdBy:
                    title: PublicApiUser
                    description: User who created the resource.
                    examples:
                    - id: lZBrdUpCPxKLORVf_RBMQA
                      email: jane.doe@example.com
                      username: Jane Doe
                    type: object
                    required:
                    - id
                    - email
                    - username
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      email:
                        description: The user's email address (also their login identifier).
                        type: string
                      username:
                        description: The user's display name (e.g. `Jane Doe`).
                        type: string
                  updatedDate:
                    description: When the resource was last modified. ISO-8601 UTC.
                    type: string
                    format: date-time
                  updatedBy:
                    title: PublicApiUser
                    description: User who last modified the resource.
                    examples:
                    - id: lZBrdUpCPxKLORVf_RBMQA
                      email: jane.doe@example.com
                      username: Jane Doe
                    type: object
                    required:
                    - id
                    - email
                    - username
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      email:
                        description: The user's email address (also their login identifier).
                        type: string
                      username:
                        description: The user's display name (e.g. `Jane Doe`).
                        type: string
              name:
                description: Display name.
                type: string
              fieldType:
                title: ColumnType
                description: |
                  Data type of the column.

                  - `Text` — free-form string.
                  - `Number` — numeric value.
                  - `DateTime` — ISO-8601 date-time.
                type: string
                enum:
                - Text
                - DateTime
                - Number
    SimplifiedFormField:
      title: SimplifiedFormField
      type: object
      required:
      - id
      - audit
      - taskId
      - fieldType
      - key
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        audit:
          title: PublicApiAudit
          description: Creation and last-modification metadata.
          type: object
          required:
          - createdDate
          - createdBy
          - updatedDate
          - updatedBy
          properties:
            createdDate:
              description: When the resource was first created. ISO-8601 UTC.
              type: string
              format: date-time
            createdBy:
              title: PublicApiUser
              description: User who created the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            updatedDate:
              description: When the resource was last modified. ISO-8601 UTC.
              type: string
              format: date-time
            updatedBy:
              title: PublicApiUser
              description: User who last modified the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
        taskId:
          title: EntityID
          description: The ID of the Task.
          type: string
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
        key:
          description: Unique key based on the label. This is used when referencing
            the form field as a [variable](https://www.process.st/help/docs/variables/)
          type: string
        label:
          description: User defined label
          type: string
        dataSetLinked:
          type: boolean
    SimplifiedFormFieldValue:
      title: SimplifiedFormFieldValue
      type: object
      required:
      - id
      - workflowRunId
      - taskId
      - key
      - data
      - fieldType
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        updatedDate:
          description: When the resource was last modified. ISO-8601 UTC.
          type: string
          format: date-time
        updatedBy:
          title: PublicApiUser
          description: User who last modified the resource.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        workflowRunId:
          title: EntityID
          description: The ID of the Workflow Run.
          type: string
        taskId:
          title: EntityID
          description: The ID of the Task.
          type: string
        key:
          description: Unique key based on the label. This is used when referencing
            the form field as a [variable](https://www.process.st/help/docs/variables/)
          type: string
        label:
          description: User defined label
          type: string
        data:
          description: The form field's value, encoded as JSON. Shape depends on `fieldType`
            — e.g. a string for `Text`, a number for `Number`, an array of selected
            option keys for `MultiChoice`.
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
        dataSetLinked:
          description: When `true`, this field is bound to a data set row; its value
            is synchronised from the linked record.
          type: boolean
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    SimplifiedRow:
      title: SimplifiedRow
      type: object
      required:
      - id
      - audit
      - organizationId
      - dataSetId
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        audit:
          title: PublicApiAudit
          description: Creation and last-modification metadata.
          type: object
          required:
          - createdDate
          - createdBy
          - updatedDate
          - updatedBy
          properties:
            createdDate:
              description: When the resource was first created. ISO-8601 UTC.
              type: string
              format: date-time
            createdBy:
              title: PublicApiUser
              description: User who created the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
            updatedDate:
              description: When the resource was last modified. ISO-8601 UTC.
              type: string
              format: date-time
            updatedBy:
              title: PublicApiUser
              description: User who last modified the resource.
              examples:
              - id: lZBrdUpCPxKLORVf_RBMQA
                email: jane.doe@example.com
                username: Jane Doe
              type: object
              required:
              - id
              - email
              - username
              properties:
                id:
                  title: EntityID
                  description: The resource's ID.
                  type: string
                email:
                  description: The user's email address (also their login identifier).
                  type: string
                username:
                  description: The user's display name (e.g. `Jane Doe`).
                  type: string
        organizationId:
          title: EntityID
          description: The ID of the organization this resource belongs to.
          type: string
        dataSetId:
          title: EntityID
          type: string
        cells:
          type: array
          items:
            title: SimplifiedCell
            type: object
            required:
            - fieldId
            - value
            properties:
              fieldId:
                title: EntityID
                description: The ID of the form field.
                type: string
              value:
                description: The option's stored value.
                oneOf:
                - type: 'null'
                - type: number
                - type: string
    SnoozeMyWorkItemRequest:
      title: SnoozeMyWorkItemRequest
      type: object
      required:
      - until
      properties:
        until:
          description: Snooze until this date (ISO-8601, e.g. 2024-06-01). Must be
            in the future.
          type: string
          format: date-time
    SnoozeStatus:
      title: SnoozeStatus
      type: string
      enum:
      - Active
      - Snoozed
    SnoozeStatus1:
      title: SnoozeStatus
      description: |
        Snooze filter for the search.

        - `Active` — non-snoozed items only.
        - `Snoozed` — items currently snoozed.
      type: string
      enum:
      - Active
      - Snoozed
    SourceType:
      title: SourceType
      description: |
        Where the user(s) that get task access are pulled from at runtime.

        - `ChecklistInitiator` — grants access to the user who started the workflow run.
        - `FormField` — grants access to users referenced by a form field on the run (`sourceWidgetId`
          identifies which Members form field).
      type: string
      enum:
      - ChecklistInitiator
      - FormField
    StaticAssignmentRule:
      title: StaticAssignmentRule
      type: object
      required:
      - email
      - type
      properties:
        email:
          description: Email address.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          const: Static
    StaticAssignmentRuleRequest:
      title: StaticAssignmentRuleRequest
      type: object
      required:
      - email
      - type
      properties:
        email:
          description: Email address.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          const: Static
    StaticPermissionRule:
      title: StaticPermissionRule
      type: object
      required:
      - user
      - taskRead
      - taskUpdate
      - type
      properties:
        user:
          title: PublicApiUser
          description: User this entry refers to.
          examples:
          - id: lZBrdUpCPxKLORVf_RBMQA
            email: jane.doe@example.com
            username: Jane Doe
          type: object
          required:
          - id
          - email
          - username
          properties:
            id:
              title: EntityID
              description: The resource's ID.
              type: string
            email:
              description: The user's email address (also their login identifier).
              type: string
            username:
              description: The user's display name (e.g. `Jane Doe`).
              type: string
        taskRead:
          description: When `true`, the rule grants read access to the task.
          type: boolean
        taskUpdate:
          description: When `true`, the rule grants update access to the task (check
            off, edit form fields).
          type: boolean
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          const: Static
    StaticPermissionRuleRequest:
      title: StaticPermissionRuleRequest
      type: object
      required:
      - email
      - taskRead
      - taskUpdate
      - type
      properties:
        email:
          description: Email address.
          type: string
        taskRead:
          description: When `true`, the rule grants read access to the task.
          type: boolean
        taskUpdate:
          description: When `true`, the rule grants update access to the task (check
            off, edit form fields).
          type: boolean
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          const: Static
    Status:
      title: Status
      type: string
      enum:
      - NotCompleted
      - Completed
    Status1:
      title: Status
      description: |
        Whether this subtask has been checked off.

        - `Completed` — the subtask is checked.
        - `NotCompleted` — the subtask is unchecked.
      type: string
      enum:
      - Completed
      - NotCompleted
    TaskDueDateRuleBody:
      title: TaskDueDateRuleBody
      description: The rule to set; omit or send `null` to clear the existing rule.
      type: object
      required:
      - sourceType
      - offsetDirection
      - dueOffset
      - businessDaysHandlingMode
      properties:
        sourceType:
          description: How the task's due date is derived. `ChecklistStartDate` /
            `ChecklistDueDate` — relative to the workflow run's start or due date.
            `TaskCompletedDate` / `TaskDueDate` — relative to a specific source task
            (requires `sourceTaskId`). `PreviousTaskCompletedDate` — relative to the
            task immediately before this one. `FormFieldValue` — relative to a Date
            form field value (requires `sourceWidgetId`).
          type: string
          enum:
          - FormFieldValue
          - TaskCompletedDate
          - PreviousTaskCompletedDate
          - TaskDueDate
          - ChecklistStartDate
          - ChecklistDueDate
        sourceWidgetId:
          title: EntityID
          description: 'For `sourceType=FormField`: the ID of the Members form field
            whose value drives the rule''s assignees at runtime. Absent for `sourceType=ChecklistInitiator`.'
          type: string
        sourceTaskId:
          title: EntityID
          type: string
        offsetDirection:
          description: Whether the offset applies before or after the source date.
          type: string
          enum:
          - Before
          - After
        dueOffset:
          description: ISO-8601 duration (e.g. `P7D`, `PT4H30M`).
          type: string
        businessDaysHandlingMode:
          title: BusinessDaysHandlingMode
          description: How non-business days are handled when calculating the due
            date. `AllDays` counts every day. `BusinessDaysOnly` counts only Monday–Friday.
            `ShiftToNextBusinessDay` calculates using all days then moves a Saturday/Sunday
            result to the next Monday.
          type: string
          enum:
          - AllDays
          - BusinessDaysOnly
          - ShiftToNextBusinessDay
    TaskPosition:
      title: TaskPosition
      description: Where to place this task in the workflow revision. `Top` — before
        all existing tasks. `Bottom` — after all existing tasks (default when `position`
        is omitted). `After` — immediately after the task identified by `taskId`.
      oneOf:
      - title: TaskPositionAfter
        type: object
        required:
        - taskId
        - type
        properties:
          taskId:
            title: EntityID
            description: The ID of the Task.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            const: After
      - title: TaskPositionBottom
        type: object
        required:
        - type
        properties:
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            const: Bottom
      - title: TaskPositionTop
        type: object
        required:
        - type
        properties:
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            const: Top
      discriminator:
        propertyName: type
        mapping:
          After: '#/components/schemas/TaskPositionAfter'
          Bottom: '#/components/schemas/TaskPositionBottom'
          Top: '#/components/schemas/TaskPositionTop'
    TaskPositionAfter:
      title: TaskPositionAfter
      type: object
      required:
      - taskId
      - type
      properties:
        taskId:
          title: EntityID
          description: The ID of the Task.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          const: After
    TaskPositionBottom:
      title: TaskPositionBottom
      type: object
      required:
      - type
      properties:
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          const: Bottom
    TaskPositionTop:
      title: TaskPositionTop
      type: object
      required:
      - type
      properties:
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          const: Top
    TaskType:
      title: TaskType
      description: |
        What the task does.

        - `Standard` — a regular task that a user manually checks off when done.
        - `Approval` — an approval task; a reviewer approves or rejects it, gating subsequent tasks.
        - `AI` — an automated task that runs an AI prompt to populate form field values.
        - `Code` — an automated task that runs a custom code snippet.
      type: string
      enum:
      - Standard
      - Approval
      - AI
      - Code
    TaskType1:
      title: TaskType
      description: |
        What the task does.

        - `Standard` — a regular task that a user manually checks off when done.
        - `Approval` — an approval task; a reviewer approves or rejects it, gating subsequent tasks.
        - `AI` — an automated task that runs an AI prompt to populate form field values.
        - `Code` — an automated task that runs a custom code snippet.
      type: string
      enum:
      - Standard
      - Approval
      - AI
      - Code
    TestAuthResponse:
      title: TestAuthResponse
      type: object
      required:
      - apiKeyLabel
      properties:
        apiKeyLabel:
          type: string
    Type:
      title: Type
      type: string
      enum:
      - CrossLink
      - Email
      - Embed
      - File
      - FormField
      - Image
      - Text
      - Video
    UpdateChecklistDueDateRuleRequest:
      title: UpdateChecklistDueDateRuleRequest
      type: object
      properties:
        rule:
          title: DueDateRuleBody
          description: The rule to set; omit or send `null` to clear the existing
            rule.
          type: object
          required:
          - sourceType
          - offsetDirection
          - dueOffset
          - businessDaysHandlingMode
          properties:
            sourceType:
              description: How the workflow run's due date is derived. `ChecklistStartDate`
                bases the due date on the workflow run's start date. `FormFieldValue`
                bases it on a Date form field value (requires `sourceWidgetId`).
              type: string
              enum:
              - FormFieldValue
              - ChecklistStartDate
            sourceWidgetId:
              title: EntityID
              description: 'For `sourceType=FormField`: the ID of the Members form
                field whose value drives the rule''s assignees at runtime. Absent
                for `sourceType=ChecklistInitiator`.'
              type: string
            offsetDirection:
              description: Whether the offset applies before or after the source date.
              type: string
              enum:
              - Before
              - After
            dueOffset:
              description: ISO-8601 duration (e.g. `P7D`, `PT4H30M`).
              type: string
            businessDaysHandlingMode:
              title: BusinessDaysHandlingMode
              description: How non-business days are handled when calculating the
                due date. `AllDays` counts every day. `BusinessDaysOnly` counts only
                Monday–Friday. `ShiftToNextBusinessDay` calculates using all days
                then moves a Saturday/Sunday result to the next Monday.
              type: string
              enum:
              - AllDays
              - BusinessDaysOnly
              - ShiftToNextBusinessDay
    UpdateCommentRequest:
      title: UpdateCommentRequest
      type: object
      required:
      - text
      properties:
        text:
          type: string
          minLength: 1
    UpdateDataSetField:
      title: UpdateDataSetField
      type: object
      required:
      - name
      - fieldType
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        name:
          description: Display name.
          type: string
          minLength: 1
        fieldType:
          title: ColumnType
          description: |
            Data type of the column.

            - `Text` — free-form string.
            - `Number` — numeric value.
            - `DateTime` — ISO-8601 date-time.
          type: string
          enum:
          - Text
          - DateTime
          - Number
    UpdateDataSetIncomingWebhookRequest:
      title: UpdateDataSetIncomingWebhookRequest
      type: object
      required:
      - name
      - automationApp
      - status
      - config
      properties:
        name:
          description: Display name.
          type: string
        automationApp:
          type: string
        status:
          description: |
            Incoming webhook lifecycle.

            - `Active` — the webhook accepts and processes incoming payloads.
            - `Disabled` — the URL still resolves but payloads are dropped without writing to the data set.
            - `Deleted` — the webhook is soft-deleted; only returned by endpoints that explicitly include
              deleted records.
          type: string
          enum:
          - Active
          - Disabled
          - Deleted
        config:
          title: DataSetIncomingWebhookConfigRequest
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          required:
          - columns
          properties:
            columns:
              description: Cell values keyed by column ID.
              type: object
              additionalProperties:
                type: string
            keyColumn:
              description: Name of the column used as the unique key when reconciling
                rows on upsert.
              type: string
    UpdateDataSetRequest:
      title: UpdateDataSetRequest
      type: object
      required:
      - name
      properties:
        name:
          description: Display name.
          type: string
          minLength: 1
        fields:
          description: Form field definitions or column definitions, depending on
            context.
          type: array
          minItems: 1
          items:
            title: UpdateDataSetField
            type: object
            required:
            - name
            - fieldType
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              name:
                description: Display name.
                type: string
                minLength: 1
              fieldType:
                title: ColumnType
                description: |
                  Data type of the column.

                  - `Text` — free-form string.
                  - `Number` — numeric value.
                  - `DateTime` — ISO-8601 date-time.
                type: string
                enum:
                - Text
                - DateTime
                - Number
    UpdateDataSetRowRequest:
      title: UpdateDataSetRowRequest
      type: object
      properties:
        cells:
          type: array
          items:
            title: SimplifiedCell
            type: object
            required:
            - fieldId
            - value
            properties:
              fieldId:
                title: EntityID
                description: The ID of the form field.
                type: string
              value:
                description: The option's stored value.
                oneOf:
                - type: 'null'
                - type: number
                - type: string
    UpdateDateFormFieldRequest:
      title: UpdateDateFormFieldRequest
      type: object
      required:
      - hiddenByDefault
      - required
      - config
      - constraints
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        required:
          description: When `true`, the form field must have a value before its task
            can be completed.
          type: boolean
        config:
          title: PublicApiDateFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            defaultValue:
              description: Default value pre-filled when a new workflow run is created.
              type: string
            timeOption:
              description: |
                How time-of-day is handled on this Date field.

                - `Included` — the field always captures both date and time.
                - `Excluded` — date only; time is never captured.
                - `Optional` — the user picks whether to include a time.
              type: string
              enum:
              - Included
              - Excluded
              - Optional
        constraints:
          title: PublicApiDateFormFieldConstraints
          description: Field-specific validation constraints. Shape depends on `fieldType`.
          type: object
          properties:
            afterDate:
              description: Earliest accepted date (inclusive). Pair with `afterDateSourceType`.
              type: string
              format: date-time
            beforeDate:
              description: Latest accepted date (inclusive). Pair with `beforeDateSourceType`.
              type: string
              format: date-time
            afterDateFormFieldWidgetGroupId:
              title: EntityID
              description: When `afterDateSourceType=FormField`, the ID of the Date
                form field whose value is the lower bound.
              type: string
            beforeDateFormFieldWidgetGroupId:
              title: EntityID
              description: When `beforeDateSourceType=FormField`, the ID of the Date
                form field whose value is the upper bound.
              type: string
            afterDateSourceType:
              description: |
                How the before/after constraint date is derived.

                - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
                - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
                - `TaskDueDate` — relative to the containing task's due date.
                - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
              type: string
              enum:
              - SpecificDate
              - FormFieldValue
              - TaskDueDate
              - ChecklistStartDate
              - ChecklistDueDate
            beforeDateSourceType:
              description: |
                How the before/after constraint date is derived.

                - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
                - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
                - `TaskDueDate` — relative to the containing task's due date.
                - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
              type: string
              enum:
              - SpecificDate
              - FormFieldValue
              - TaskDueDate
              - ChecklistStartDate
              - ChecklistDueDate
            afterDateOffset:
              description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
              type: string
            beforeDateOffset:
              description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
              type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Date
    UpdateDocumentFormFieldRequest:
      title: UpdateDocumentFormFieldRequest
      type: object
      required:
      - hiddenByDefault
      - required
      - config
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        required:
          description: When `true`, the form field must have a value before its task
            can be completed.
          type: boolean
        config:
          title: PublicApiDocumentFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          required:
          - reviewRequest
          properties:
            reviewRequest:
              description: When `true`, the email requires explicit user review/send
                rather than auto-send.
              type: boolean
            defaultValue:
              description: Default value pre-filled when a new workflow run is created.
              type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Document
    UpdateEmailFormFieldRequest:
      title: UpdateEmailFormFieldRequest
      type: object
      required:
      - hiddenByDefault
      - required
      - config
      - constraints
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        required:
          description: When `true`, the form field must have a value before its task
            can be completed.
          type: boolean
        config:
          title: PublicApiEmailFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            placeholder:
              description: Placeholder hint shown in the input when no value has been
                entered.
              type: string
            defaultValue:
              description: Default value pre-filled when a new workflow run is created.
              type: string
        constraints:
          title: PublicApiEmailFormFieldConstraints
          description: Field-specific validation constraints. Shape depends on `fieldType`.
          type: object
          properties:
            domains:
              description: Allowed (or blocked, depending on `restriction`) email
                domains for this field.
              type: array
              items:
                type: string
            restriction:
              description: |
                How the `domains` list filters allowed email addresses.

                - `Allow` — only emails whose domain is in the list are accepted.
                - `Block` — emails whose domain is in the list are rejected; all others accepted.
              type: string
              enum:
              - Allow
              - Block
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Email
    UpdateFileFormFieldRequest:
      title: UpdateFileFormFieldRequest
      type: object
      required:
      - hiddenByDefault
      - required
      - config
      - constraints
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        required:
          description: When `true`, the form field must have a value before its task
            can be completed.
          type: boolean
        config:
          title: PublicApiFileFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            placeholder:
              description: Placeholder hint shown in the input when no value has been
                entered.
              type: string
            extractTextContent:
              description: When `true`, server extracts text from uploaded documents
                for use in merge tags.
              type: boolean
        constraints:
          title: PublicApiFileFormFieldConstraints
          description: Field-specific validation constraints. Shape depends on `fieldType`.
          type: object
          properties:
            extensions:
              description: Allowed file extensions, including the leading dot (e.g.
                `.pdf`, `.docx`).
              type: array
              items:
                type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: File
    UpdateFolderRequest:
      title: UpdateFolderRequest
      type: object
      required:
      - name
      properties:
        name:
          description: Display name.
          type: string
          minLength: 1
    UpdateFormFieldWidgetRequest:
      title: UpdateFormFieldWidgetRequest
      description: Update payload for a form field widget. The `fieldType` discriminator
        selects the variant — see `fieldType` for what each value collects.
      oneOf:
      - title: UpdateDateFormFieldRequest
        type: object
        required:
        - hiddenByDefault
        - required
        - config
        - constraints
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          required:
            description: When `true`, the form field must have a value before its
              task can be completed.
            type: boolean
          config:
            title: PublicApiDateFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
              timeOption:
                description: |
                  How time-of-day is handled on this Date field.

                  - `Included` — the field always captures both date and time.
                  - `Excluded` — date only; time is never captured.
                  - `Optional` — the user picks whether to include a time.
                type: string
                enum:
                - Included
                - Excluded
                - Optional
          constraints:
            title: PublicApiDateFormFieldConstraints
            description: Field-specific validation constraints. Shape depends on `fieldType`.
            type: object
            properties:
              afterDate:
                description: Earliest accepted date (inclusive). Pair with `afterDateSourceType`.
                type: string
                format: date-time
              beforeDate:
                description: Latest accepted date (inclusive). Pair with `beforeDateSourceType`.
                type: string
                format: date-time
              afterDateFormFieldWidgetGroupId:
                title: EntityID
                description: When `afterDateSourceType=FormField`, the ID of the Date
                  form field whose value is the lower bound.
                type: string
              beforeDateFormFieldWidgetGroupId:
                title: EntityID
                description: When `beforeDateSourceType=FormField`, the ID of the
                  Date form field whose value is the upper bound.
                type: string
              afterDateSourceType:
                description: |
                  How the before/after constraint date is derived.

                  - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
                  - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
                  - `TaskDueDate` — relative to the containing task's due date.
                  - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
                type: string
                enum:
                - SpecificDate
                - FormFieldValue
                - TaskDueDate
                - ChecklistStartDate
                - ChecklistDueDate
              beforeDateSourceType:
                description: |
                  How the before/after constraint date is derived.

                  - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
                  - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
                  - `TaskDueDate` — relative to the containing task's due date.
                  - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
                type: string
                enum:
                - SpecificDate
                - FormFieldValue
                - TaskDueDate
                - ChecklistStartDate
                - ChecklistDueDate
              afterDateOffset:
                description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
                type: string
              beforeDateOffset:
                description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
                type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Date
      - title: UpdateDocumentFormFieldRequest
        type: object
        required:
        - hiddenByDefault
        - required
        - config
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          required:
            description: When `true`, the form field must have a value before its
              task can be completed.
            type: boolean
          config:
            title: PublicApiDocumentFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            required:
            - reviewRequest
            properties:
              reviewRequest:
                description: When `true`, the email requires explicit user review/send
                  rather than auto-send.
                type: boolean
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Document
      - title: UpdateEmailFormFieldRequest
        type: object
        required:
        - hiddenByDefault
        - required
        - config
        - constraints
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          required:
            description: When `true`, the form field must have a value before its
              task can be completed.
            type: boolean
          config:
            title: PublicApiEmailFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              placeholder:
                description: Placeholder hint shown in the input when no value has
                  been entered.
                type: string
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
          constraints:
            title: PublicApiEmailFormFieldConstraints
            description: Field-specific validation constraints. Shape depends on `fieldType`.
            type: object
            properties:
              domains:
                description: Allowed (or blocked, depending on `restriction`) email
                  domains for this field.
                type: array
                items:
                  type: string
              restriction:
                description: |
                  How the `domains` list filters allowed email addresses.

                  - `Allow` — only emails whose domain is in the list are accepted.
                  - `Block` — emails whose domain is in the list are rejected; all others accepted.
                type: string
                enum:
                - Allow
                - Block
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Email
      - title: UpdateFileFormFieldRequest
        type: object
        required:
        - hiddenByDefault
        - required
        - config
        - constraints
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          required:
            description: When `true`, the form field must have a value before its
              task can be completed.
            type: boolean
          config:
            title: PublicApiFileFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              placeholder:
                description: Placeholder hint shown in the input when no value has
                  been entered.
                type: string
              extractTextContent:
                description: When `true`, server extracts text from uploaded documents
                  for use in merge tags.
                type: boolean
          constraints:
            title: PublicApiFileFormFieldConstraints
            description: Field-specific validation constraints. Shape depends on `fieldType`.
            type: object
            properties:
              extensions:
                description: Allowed file extensions, including the leading dot (e.g.
                  `.pdf`, `.docx`).
                type: array
                items:
                  type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: File
      - title: UpdateHiddenFormFieldRequest
        type: object
        required:
        - hiddenByDefault
        - required
        - config
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          required:
            description: When `true`, the form field must have a value before its
              task can be completed.
            type: boolean
          config:
            title: PublicApiHiddenFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Hidden
      - title: UpdateMembersFormFieldRequest
        type: object
        required:
        - hiddenByDefault
        - required
        - config
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          required:
            description: When `true`, the form field must have a value before its
              task can be completed.
            type: boolean
          config:
            title: PublicApiMembersFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
              groupId:
                title: EntityID
                description: The ID of an organization group.
                type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Members
      - title: UpdateMultiChoiceFormFieldRequest
        type: object
        required:
        - hiddenByDefault
        - required
        - config
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          required:
            description: When `true`, the form field must have a value before its
              task can be completed.
            type: boolean
          config:
            title: PublicApiMultiChoiceFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              items:
                description: Available options for selection-style form fields.
                type: array
                items:
                  title: PublicApiFormFieldItem
                  type: object
                  required:
                  - name
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    name:
                      description: Display name.
                      type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: MultiChoice
      - title: UpdateMultiFileFormFieldRequest
        type: object
        required:
        - hiddenByDefault
        - required
        - config
        - constraints
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          required:
            description: When `true`, the form field must have a value before its
              task can be completed.
            type: boolean
          config:
            title: PublicApiMultiFileFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              placeholder:
                description: Placeholder hint shown in the input when no value has
                  been entered.
                type: string
              extractTextContent:
                description: When `true`, server extracts text from uploaded documents
                  for use in merge tags.
                type: boolean
          constraints:
            title: PublicApiMultiFileFormFieldConstraints
            description: Field-specific validation constraints. Shape depends on `fieldType`.
            type: object
            properties:
              extensions:
                description: Allowed file extensions, including the leading dot (e.g.
                  `.pdf`, `.docx`).
                type: array
                items:
                  type: string
              mode:
                description: |
                  Whether the field accepts a single file or multiple files.

                  - `Single` — only one file may be uploaded.
                  - `Multiple` — multiple files may be uploaded.
                type: string
                enum:
                - Multiple
                - Single
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: MultiFile
      - title: UpdateMultiSelectFormFieldRequest
        type: object
        required:
        - hiddenByDefault
        - required
        - config
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          required:
            description: When `true`, the form field must have a value before its
              task can be completed.
            type: boolean
          config:
            title: PublicApiMultiSelectFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              items:
                description: Available options for selection-style form fields.
                type: array
                items:
                  title: PublicApiFormFieldItem
                  type: object
                  required:
                  - name
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    name:
                      description: Display name.
                      type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: MultiSelect
      - title: UpdateNumberFormFieldRequest
        type: object
        required:
        - hiddenByDefault
        - required
        - config
        - constraints
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          required:
            description: When `true`, the form field must have a value before its
              task can be completed.
            type: boolean
          config:
            title: PublicApiNumberFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              placeholder:
                description: Placeholder hint shown in the input when no value has
                  been entered.
                type: string
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
              unit:
                description: Unit label rendered next to the numeric value (e.g. `kg`,
                  `$`, `%`).
                type: string
              unitLocation:
                description: |
                  Where the unit symbol appears relative to the number.

                  - `prefix` — before the number (e.g. `$100`).
                  - `suffix` — after the number (e.g. `100 USD`).
                type: string
                enum:
                - prefix
                - suffix
          constraints:
            title: PublicApiNumberFormFieldConstraints
            description: Field-specific validation constraints. Shape depends on `fieldType`.
            type: object
            properties:
              minDigits:
                description: Minimum number of digits.
                type: integer
                format: int32
              maxDigits:
                description: Maximum number of digits.
                type: integer
                format: int32
              minValue:
                description: Minimum numeric value.
                type: integer
                format: int32
              maxValue:
                description: Maximum numeric value.
                type: integer
                format: int32
              decimalPlaces:
                description: Number of decimal places to accept (0 means integers
                  only).
                type: integer
                format: int32
              allowNegative:
                description: When `true`, negative numbers are accepted.
                type: boolean
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Number
      - title: UpdateSelectFormFieldRequest
        type: object
        required:
        - hiddenByDefault
        - required
        - config
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          required:
            description: When `true`, the form field must have a value before its
              task can be completed.
            type: boolean
          config:
            title: PublicApiSelectFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              items:
                description: Available options for selection-style form fields.
                type: array
                items:
                  title: PublicApiFormFieldItem
                  type: object
                  required:
                  - name
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    name:
                      description: Display name.
                      type: string
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Select
      - title: UpdateSendRichEmailFormFieldRequest
        type: object
        required:
        - hiddenByDefault
        - required
        - config
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          required:
            description: When `true`, the form field must have a value before its
              task can be completed.
            type: boolean
          config:
            title: PublicApiSendRichEmailFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            required:
            - bodyEditor
            properties:
              to:
                description: Default recipient list (To). Comma-separated email addresses
                  or merge tags.
                type: array
                items:
                  type: string
              cc:
                description: Default CC list. Comma-separated email addresses or merge
                  tags.
                type: array
                items:
                  type: string
              bcc:
                description: Default BCC list. Comma-separated email addresses or
                  merge tags.
                type: array
                items:
                  type: string
              replyTo:
                description: Default Reply-To address. An email address or merge tag.
                type: array
                items:
                  type: string
              subject:
                description: Default email subject. May contain merge tags.
                type: string
              body:
                description: Default email body. May contain merge tags.
                type: string
              bodyEditor:
                description: |
                  Editor used to author the email body.

                  - `RichText` — rich-text editor with formatting.
                  - `HTML` — raw HTML editor.
                  - `PlainText` — plain text editor.
                type: string
                enum:
                - RichText
                - HTML
                - PlainText
              editAllowed:
                description: When `true`, users running the workflow can edit the
                  email before sending.
                type: boolean
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: SendRichEmail
      - title: UpdateSnippetFormFieldRequest
        type: object
        required:
        - hiddenByDefault
        - required
        - config
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          required:
            description: When `true`, the form field must have a value before its
              task can be completed.
            type: boolean
          config:
            title: PublicApiSnippetFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              value:
                description: The option's stored value.
                type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Snippet
      - title: UpdateTableFormFieldRequest
        type: object
        required:
        - hiddenByDefault
        - required
        - config
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          required:
            description: When `true`, the form field must have a value before its
              task can be completed.
            type: boolean
          config:
            title: PublicApiTableFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              columnDefs:
                description: Data set column definitions (name + type per column).
                type: array
                items:
                  title: PublicApiTableFormFieldColumn
                  type: object
                  required:
                  - id
                  - name
                  - columnType
                  properties:
                    id:
                      title: EntityID
                      description: The resource's ID.
                      type: string
                    name:
                      description: Display name.
                      type: string
                    columnType:
                      description: |
                        Data type a Table column accepts.

                        - `Text` — free-form short text.
                      type: string
                      enum:
                      - Text
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Table
      - title: UpdateTextFormFieldRequest
        type: object
        required:
        - hiddenByDefault
        - required
        - config
        - constraints
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          required:
            description: When `true`, the form field must have a value before its
              task can be completed.
            type: boolean
          config:
            title: PublicApiTextFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              placeholder:
                description: Placeholder hint shown in the input when no value has
                  been entered.
                type: string
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
          constraints:
            title: PublicApiTextFormFieldConstraints
            description: Field-specific validation constraints. Shape depends on `fieldType`.
            type: object
            properties:
              min:
                description: Inclusive lower bound.
                type: integer
                format: int32
              max:
                description: Inclusive upper bound.
                type: integer
                format: int32
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Text
      - title: UpdateTextareaFormFieldRequest
        type: object
        required:
        - hiddenByDefault
        - required
        - config
        - constraints
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          required:
            description: When `true`, the form field must have a value before its
              task can be completed.
            type: boolean
          config:
            title: PublicApiTextareaFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              placeholder:
                description: Placeholder hint shown in the input when no value has
                  been entered.
                type: string
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
              format:
                description: |
                  Editor style for this Textarea field.

                  - `PlainText` — plain text.
                  - `RichText` — rich-text editor with formatting (bold, lists, links, etc.).
                type: string
                enum:
                - PlainText
                - RichText
          constraints:
            title: PublicApiTextareaFormFieldConstraints
            description: Field-specific validation constraints. Shape depends on `fieldType`.
            type: object
            properties:
              min:
                description: Inclusive lower bound.
                type: integer
                format: int32
              max:
                description: Inclusive upper bound.
                type: integer
                format: int32
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Textarea
      - title: UpdateUrlFormFieldRequest
        type: object
        required:
        - hiddenByDefault
        - required
        - config
        - type
        - fieldType
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          label:
            description: Display label shown to the end user.
            type: string
            maxLength: 255
          required:
            description: When `true`, the form field must have a value before its
              task can be completed.
            type: boolean
          config:
            title: PublicApiUrlFormFieldConfig
            description: Field-specific configuration. Shape depends on `fieldType`.
            type: object
            properties:
              defaultValue:
                description: Default value pre-filled when a new workflow run is created.
                type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            examples:
            - FormField
            type: string
            enum:
            - FormField
          fieldType:
            description: |
              Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

              - `Text` — short text input (≤255 characters).
              - `Textarea` — long-form text.
              - `Email` — email address.
              - `Url` — website / URL.
              - `Number` — numeric input with optional unit and constraints.
              - `Date` — date or date+time picker.
              - `Select` — dropdown; user picks one option.
              - `MultiChoice` — checkboxes; user picks one or more options.
              - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
              - `Members` — assignee picker (selects organization users).
              - `File` — single file upload.
              - `MultiFile` — multi-file upload (in-app "File Upload").
              - `Document` — document approval field; links the task to a document review.
              - `Table` — rows × columns of cells; users fill cell values.
              - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                automatically when the task is completed.
              - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
              - `Snippet` — only visible when editing; passes static text or merge tags into automations.
            type: string
            enum:
            - Date
            - Document
            - Email
            - File
            - Hidden
            - Members
            - MultiChoice
            - MultiFile
            - MultiSelect
            - Number
            - Select
            - SendRichEmail
            - Snippet
            - Table
            - Text
            - Textarea
            - Url
            const: Url
      discriminator:
        propertyName: fieldType
        mapping:
          Date: '#/components/schemas/UpdateDateFormFieldRequest'
          Document: '#/components/schemas/UpdateDocumentFormFieldRequest'
          Email: '#/components/schemas/UpdateEmailFormFieldRequest'
          File: '#/components/schemas/UpdateFileFormFieldRequest'
          Hidden: '#/components/schemas/UpdateHiddenFormFieldRequest'
          Members: '#/components/schemas/UpdateMembersFormFieldRequest'
          MultiChoice: '#/components/schemas/UpdateMultiChoiceFormFieldRequest'
          MultiFile: '#/components/schemas/UpdateMultiFileFormFieldRequest'
          MultiSelect: '#/components/schemas/UpdateMultiSelectFormFieldRequest'
          Number: '#/components/schemas/UpdateNumberFormFieldRequest'
          Select: '#/components/schemas/UpdateSelectFormFieldRequest'
          SendRichEmail: '#/components/schemas/UpdateSendRichEmailFormFieldRequest'
          Snippet: '#/components/schemas/UpdateSnippetFormFieldRequest'
          Table: '#/components/schemas/UpdateTableFormFieldRequest'
          Text: '#/components/schemas/UpdateTextFormFieldRequest'
          Textarea: '#/components/schemas/UpdateTextareaFormFieldRequest'
          Url: '#/components/schemas/UpdateUrlFormFieldRequest'
    UpdateHiddenFormFieldRequest:
      title: UpdateHiddenFormFieldRequest
      type: object
      required:
      - hiddenByDefault
      - required
      - config
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        required:
          description: When `true`, the form field must have a value before its task
            can be completed.
          type: boolean
        config:
          title: PublicApiHiddenFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            defaultValue:
              description: Default value pre-filled when a new workflow run is created.
              type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Hidden
    UpdateMembersFormFieldRequest:
      title: UpdateMembersFormFieldRequest
      type: object
      required:
      - hiddenByDefault
      - required
      - config
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        required:
          description: When `true`, the form field must have a value before its task
            can be completed.
          type: boolean
        config:
          title: PublicApiMembersFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            defaultValue:
              description: Default value pre-filled when a new workflow run is created.
              type: string
            groupId:
              title: EntityID
              description: The ID of an organization group.
              type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Members
    UpdateMultiChoiceFormFieldRequest:
      title: UpdateMultiChoiceFormFieldRequest
      type: object
      required:
      - hiddenByDefault
      - required
      - config
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        required:
          description: When `true`, the form field must have a value before its task
            can be completed.
          type: boolean
        config:
          title: PublicApiMultiChoiceFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            items:
              description: Available options for selection-style form fields.
              type: array
              items:
                title: PublicApiFormFieldItem
                type: object
                required:
                - name
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  name:
                    description: Display name.
                    type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: MultiChoice
    UpdateMultiFileFormFieldRequest:
      title: UpdateMultiFileFormFieldRequest
      type: object
      required:
      - hiddenByDefault
      - required
      - config
      - constraints
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        required:
          description: When `true`, the form field must have a value before its task
            can be completed.
          type: boolean
        config:
          title: PublicApiMultiFileFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            placeholder:
              description: Placeholder hint shown in the input when no value has been
                entered.
              type: string
            extractTextContent:
              description: When `true`, server extracts text from uploaded documents
                for use in merge tags.
              type: boolean
        constraints:
          title: PublicApiMultiFileFormFieldConstraints
          description: Field-specific validation constraints. Shape depends on `fieldType`.
          type: object
          properties:
            extensions:
              description: Allowed file extensions, including the leading dot (e.g.
                `.pdf`, `.docx`).
              type: array
              items:
                type: string
            mode:
              description: |
                Whether the field accepts a single file or multiple files.

                - `Single` — only one file may be uploaded.
                - `Multiple` — multiple files may be uploaded.
              type: string
              enum:
              - Multiple
              - Single
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: MultiFile
    UpdateMultiSelectFormFieldRequest:
      title: UpdateMultiSelectFormFieldRequest
      type: object
      required:
      - hiddenByDefault
      - required
      - config
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        required:
          description: When `true`, the form field must have a value before its task
            can be completed.
          type: boolean
        config:
          title: PublicApiMultiSelectFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            items:
              description: Available options for selection-style form fields.
              type: array
              items:
                title: PublicApiFormFieldItem
                type: object
                required:
                - name
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  name:
                    description: Display name.
                    type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: MultiSelect
    UpdateMultipleFormFieldValuesRequest:
      title: UpdateMultipleFormFieldValuesRequest
      type: object
      properties:
        fields:
          description: Form field definitions or column definitions, depending on
            context.
          type: array
          items:
            type: object
            required:
            - id
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              value:
                description: The form field value (e.g. text, date as ISO string,
                  URL or user email for Users field)
                type: string
              values:
                description: List of form field values
                type: array
                items:
                  type: string
              timeHidden:
                description: Whether to hide the time portion and display the date
                  only for Date form fields.
                type: boolean
              dataSetRowId:
                title: EntityID
                type: string
    UpdateMultipleFormFieldValuesResponse:
      title: UpdateMultipleFormFieldValuesResponse
      type: object
      properties:
        fields:
          description: Form field definitions or column definitions, depending on
            context.
          type: array
          items:
            title: SimplifiedFormFieldValue
            type: object
            required:
            - id
            - workflowRunId
            - taskId
            - key
            - data
            - fieldType
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              updatedDate:
                description: When the resource was last modified. ISO-8601 UTC.
                type: string
                format: date-time
              updatedBy:
                title: PublicApiUser
                description: User who last modified the resource.
                examples:
                - id: lZBrdUpCPxKLORVf_RBMQA
                  email: jane.doe@example.com
                  username: Jane Doe
                type: object
                required:
                - id
                - email
                - username
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  email:
                    description: The user's email address (also their login identifier).
                    type: string
                  username:
                    description: The user's display name (e.g. `Jane Doe`).
                    type: string
              workflowRunId:
                title: EntityID
                description: The ID of the Workflow Run.
                type: string
              taskId:
                title: EntityID
                description: The ID of the Task.
                type: string
              key:
                description: Unique key based on the label. This is used when referencing
                  the form field as a [variable](https://www.process.st/help/docs/variables/)
                type: string
              label:
                description: User defined label
                type: string
              data:
                description: The form field's value, encoded as JSON. Shape depends
                  on `fieldType` — e.g. a string for `Text`, a number for `Number`,
                  an array of selected option keys for `MultiChoice`.
              fieldType:
                description: |
                  Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                  - `Text` — short text input (≤255 characters).
                  - `Textarea` — long-form text.
                  - `Email` — email address.
                  - `Url` — website / URL.
                  - `Number` — numeric input with optional unit and constraints.
                  - `Date` — date or date+time picker.
                  - `Select` — dropdown; user picks one option.
                  - `MultiChoice` — checkboxes; user picks one or more options.
                  - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                  - `Members` — assignee picker (selects organization users).
                  - `File` — single file upload.
                  - `MultiFile` — multi-file upload (in-app "File Upload").
                  - `Document` — document approval field; links the task to a document review.
                  - `Table` — rows × columns of cells; users fill cell values.
                  - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                    automatically when the task is completed.
                  - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                  - `Snippet` — only visible when editing; passes static text or merge tags into automations.
                type: string
                enum:
                - Date
                - Document
                - Email
                - File
                - Hidden
                - Members
                - MultiChoice
                - MultiFile
                - MultiSelect
                - Number
                - Select
                - SendRichEmail
                - Snippet
                - Table
                - Text
                - Textarea
                - Url
              dataSetLinked:
                description: When `true`, this field is bound to a data set row; its
                  value is synchronised from the linked record.
                type: boolean
              links:
                description: Navigable HATEOAS links to related resources. Each entry
                  has a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api`
                  or `App`).
                type: array
                items:
                  title: Link
                  description: A HATEOAS link to a related resource. Use these to
                    navigate between resources without constructing URLs by hand.
                  type: object
                  required:
                  - name
                  - href
                  - type
                  properties:
                    name:
                      description: Standard link relation name (RFC 5988) indicating
                        this link's role. Common values include `self`, `edit`, `related`,
                        `previous`, `next`.
                      type: string
                    href:
                      title: Uri
                      description: URL of the linked resource.
                      examples:
                      - https://api.process.st/api/v1.1/resource/XXX
                      type: string
                    rel:
                      description: Optional. The kind of resource this link points
                        to (e.g. `Workflow`, `Task`, `Comment`).
                      type: string
                      enum:
                      - Approval Task
                      - Approvals
                      - Assignees
                      - Comment
                      - Data Set Records
                      - Data Sets
                      - Form Field Values
                      - Subject Task
                      - Task
                      - Tasks
                      - Users
                      - Webhook
                      - Workflow
                      - Workflow Run
                    type:
                      description: Whether this link targets an API endpoint or a
                        Process Street app URL. `Api` — a callable API endpoint you
                        can fetch directly. `App` — a browser-facing URL in the Process
                        Street UI.
                      type: string
                      enum:
                      - Api
                      - App
    UpdateNumberFormFieldRequest:
      title: UpdateNumberFormFieldRequest
      type: object
      required:
      - hiddenByDefault
      - required
      - config
      - constraints
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        required:
          description: When `true`, the form field must have a value before its task
            can be completed.
          type: boolean
        config:
          title: PublicApiNumberFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            placeholder:
              description: Placeholder hint shown in the input when no value has been
                entered.
              type: string
            defaultValue:
              description: Default value pre-filled when a new workflow run is created.
              type: string
            unit:
              description: Unit label rendered next to the numeric value (e.g. `kg`,
                `$`, `%`).
              type: string
            unitLocation:
              description: |
                Where the unit symbol appears relative to the number.

                - `prefix` — before the number (e.g. `$100`).
                - `suffix` — after the number (e.g. `100 USD`).
              type: string
              enum:
              - prefix
              - suffix
        constraints:
          title: PublicApiNumberFormFieldConstraints
          description: Field-specific validation constraints. Shape depends on `fieldType`.
          type: object
          properties:
            minDigits:
              description: Minimum number of digits.
              type: integer
              format: int32
            maxDigits:
              description: Maximum number of digits.
              type: integer
              format: int32
            minValue:
              description: Minimum numeric value.
              type: integer
              format: int32
            maxValue:
              description: Maximum numeric value.
              type: integer
              format: int32
            decimalPlaces:
              description: Number of decimal places to accept (0 means integers only).
              type: integer
              format: int32
            allowNegative:
              description: When `true`, negative numbers are accepted.
              type: boolean
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Number
    UpdateOneOffTaskRequest:
      title: UpdateOneOffTaskRequest
      type: object
      required:
      - name
      - required
      properties:
        name:
          description: Display name.
          type: string
          minLength: 1
        description:
          description: Optional long-form description.
          type: string
        dueDate:
          description: Due date. ISO-8601 UTC.
          type: string
          format: date-time
        required:
          description: When `true`, the form field must have a value before its task
            can be completed.
          type: boolean
        linkedWorkflowRunId:
          title: EntityID
          type: string
        assigneeEmails:
          type: array
          minItems: 1
          items:
            type: string
        subtasks:
          type: array
          items:
            title: UpdateSubtaskRequest
            type: object
            required:
            - name
            - status
            properties:
              id:
                title: EntityID
                description: The resource's ID.
                type: string
              name:
                description: Display name.
                type: string
                minLength: 1
              status:
                title: Status
                description: |
                  Whether this subtask has been checked off.

                  - `Completed` — the subtask is checked.
                  - `NotCompleted` — the subtask is unchecked.
                type: string
                enum:
                - Completed
                - NotCompleted
    UpdatePageCrossLinkWidgetRequest:
      title: UpdatePageCrossLinkWidgetRequest
      type: object
      required:
      - hiddenByDefault
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        linkedTemplateId:
          title: EntityID
          description: The ID of the linked workflow or page that this CrossLink widget
            points to.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: CrossLink
    UpdatePageEmbedWidgetRequest:
      title: UpdatePageEmbedWidgetRequest
      type: object
      required:
      - hiddenByDefault
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        url:
          description: Target URL.
          type: string
          maxLength: 4000
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: Embed
    UpdatePageFileWidgetRequest:
      title: UpdatePageFileWidgetRequest
      type: object
      required:
      - hiddenByDefault
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        description:
          description: Optional long-form description.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: File
    UpdatePageImageWidgetRequest:
      title: UpdatePageImageWidgetRequest
      type: object
      required:
      - hiddenByDefault
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        caption:
          description: Caption text rendered with the image.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: Image
    UpdatePageRequest:
      title: UpdatePageRequest
      type: object
      required:
      - name
      - folderId
      - shareLevel
      properties:
        name:
          description: Display name.
          type: string
          maxLength: 255
          minLength: 1
        description:
          description: Optional free-form description of the page.
          type: string
          maxLength: 255
        folderId:
          title: EntityID
          description: The ID of the Folder.
          type: string
        shareLevel:
          description: Controls who can view this page. `None` — only organization
            members can view this page. `View` — anyone with the link can view this
            page.
          type: string
          enum:
          - None
          - View
        referenceId:
          description: Version prefix used when version control is enabled on this
            page. Combined with the version number to form the full version identifier.
          type: string
    UpdatePageRevisionRequest:
      title: UpdatePageRevisionRequest
      type: object
      required:
      - changeType
      properties:
        changeType:
          title: ChangeType
          description: Whether the changes in this revision are significant. `Material`
            — substantial changes; bumps the major version (e.g. `1.3` → `2.0`). `NonMaterial`
            — minor edits like wording or typo fixes; bumps the minor version (e.g.
            `1.3` → `1.4`).
          type: string
          enum:
          - Material
          - NonMaterial
        changeExplanation:
          description: Optional human-readable explanation of what changed in this
            revision; surfaced in revision history.
          type: string
          maxLength: 1000
    UpdatePageTextWidgetRequest:
      title: UpdatePageTextWidgetRequest
      type: object
      required:
      - hiddenByDefault
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        content:
          description: Rich text content. May contain merge tags.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: Text
    UpdatePageVideoWidgetRequest:
      title: UpdatePageVideoWidgetRequest
      type: object
      required:
      - hiddenByDefault
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        description:
          description: Optional long-form description.
          type: string
        url:
          description: Target URL.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: Video
    UpdatePageWidgetRequest:
      title: UpdatePageWidgetRequest
      description: Update payload for a page widget. The `type` discriminator selects
        the widget kind — `Text`, `Image`, `File`, `Video`, `Embed`, or `CrossLink`.
        Pages do not support form-field widgets.
      oneOf:
      - title: UpdatePageCrossLinkWidgetRequest
        type: object
        required:
        - hiddenByDefault
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          linkedTemplateId:
            title: EntityID
            description: The ID of the linked workflow or page that this CrossLink
              widget points to.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: CrossLink
      - title: UpdatePageEmbedWidgetRequest
        type: object
        required:
        - hiddenByDefault
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          url:
            description: Target URL.
            type: string
            maxLength: 4000
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: Embed
      - title: UpdatePageFileWidgetRequest
        type: object
        required:
        - hiddenByDefault
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          description:
            description: Optional long-form description.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: File
      - title: UpdatePageImageWidgetRequest
        type: object
        required:
        - hiddenByDefault
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          caption:
            description: Caption text rendered with the image.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: Image
      - title: UpdatePageTextWidgetRequest
        type: object
        required:
        - hiddenByDefault
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          content:
            description: Rich text content. May contain merge tags.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: Text
      - title: UpdatePageVideoWidgetRequest
        type: object
        required:
        - hiddenByDefault
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          description:
            description: Optional long-form description.
            type: string
          url:
            description: Target URL.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: Video
      discriminator:
        propertyName: type
        mapping:
          CrossLink: '#/components/schemas/UpdatePageCrossLinkWidgetRequest'
          Embed: '#/components/schemas/UpdatePageEmbedWidgetRequest'
          File: '#/components/schemas/UpdatePageFileWidgetRequest'
          Image: '#/components/schemas/UpdatePageImageWidgetRequest'
          Text: '#/components/schemas/UpdatePageTextWidgetRequest'
          Video: '#/components/schemas/UpdatePageVideoWidgetRequest'
    UpdateSelectFormFieldRequest:
      title: UpdateSelectFormFieldRequest
      type: object
      required:
      - hiddenByDefault
      - required
      - config
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        required:
          description: When `true`, the form field must have a value before its task
            can be completed.
          type: boolean
        config:
          title: PublicApiSelectFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            items:
              description: Available options for selection-style form fields.
              type: array
              items:
                title: PublicApiFormFieldItem
                type: object
                required:
                - name
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  name:
                    description: Display name.
                    type: string
            defaultValue:
              description: Default value pre-filled when a new workflow run is created.
              type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Select
    UpdateSendRichEmailFormFieldRequest:
      title: UpdateSendRichEmailFormFieldRequest
      type: object
      required:
      - hiddenByDefault
      - required
      - config
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        required:
          description: When `true`, the form field must have a value before its task
            can be completed.
          type: boolean
        config:
          title: PublicApiSendRichEmailFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          required:
          - bodyEditor
          properties:
            to:
              description: Default recipient list (To). Comma-separated email addresses
                or merge tags.
              type: array
              items:
                type: string
            cc:
              description: Default CC list. Comma-separated email addresses or merge
                tags.
              type: array
              items:
                type: string
            bcc:
              description: Default BCC list. Comma-separated email addresses or merge
                tags.
              type: array
              items:
                type: string
            replyTo:
              description: Default Reply-To address. An email address or merge tag.
              type: array
              items:
                type: string
            subject:
              description: Default email subject. May contain merge tags.
              type: string
            body:
              description: Default email body. May contain merge tags.
              type: string
            bodyEditor:
              description: |
                Editor used to author the email body.

                - `RichText` — rich-text editor with formatting.
                - `HTML` — raw HTML editor.
                - `PlainText` — plain text editor.
              type: string
              enum:
              - RichText
              - HTML
              - PlainText
            editAllowed:
              description: When `true`, users running the workflow can edit the email
                before sending.
              type: boolean
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: SendRichEmail
    UpdateSnippetFormFieldRequest:
      title: UpdateSnippetFormFieldRequest
      type: object
      required:
      - hiddenByDefault
      - required
      - config
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        required:
          description: When `true`, the form field must have a value before its task
            can be completed.
          type: boolean
        config:
          title: PublicApiSnippetFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            value:
              description: The option's stored value.
              type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Snippet
    UpdateSubtaskRequest:
      title: UpdateSubtaskRequest
      type: object
      required:
      - name
      - status
      properties:
        id:
          title: EntityID
          description: The resource's ID.
          type: string
        name:
          description: Display name.
          type: string
          minLength: 1
        status:
          title: Status
          description: |
            Whether this subtask has been checked off.

            - `Completed` — the subtask is checked.
            - `NotCompleted` — the subtask is unchecked.
          type: string
          enum:
          - Completed
          - NotCompleted
    UpdateTableFormFieldRequest:
      title: UpdateTableFormFieldRequest
      type: object
      required:
      - hiddenByDefault
      - required
      - config
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        required:
          description: When `true`, the form field must have a value before its task
            can be completed.
          type: boolean
        config:
          title: PublicApiTableFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            columnDefs:
              description: Data set column definitions (name + type per column).
              type: array
              items:
                title: PublicApiTableFormFieldColumn
                type: object
                required:
                - id
                - name
                - columnType
                properties:
                  id:
                    title: EntityID
                    description: The resource's ID.
                    type: string
                  name:
                    description: Display name.
                    type: string
                  columnType:
                    description: |
                      Data type a Table column accepts.

                      - `Text` — free-form short text.
                    type: string
                    enum:
                    - Text
            defaultValue:
              description: Default value pre-filled when a new workflow run is created.
              type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Table
    UpdateTaskAssignmentRuleRequest:
      title: UpdateTaskAssignmentRuleRequest
      description: 'An assignment rule. The `type` discriminator field selects the
        variant: `Static` — assigns a specific named user (requires `email`). `Dynamic`
        — derives the assignee at runtime from a source like the workflow run initiator
        or a form field (requires `sourceType`).'
      oneOf:
      - title: DynamicAssignmentRuleRequest
        type: object
        required:
        - sourceType
        - type
        properties:
          sourceType:
            description: How assignees are derived. `ChecklistInitiator` assigns the
              user who started the workflow run; `FormField` pulls assignees from
              a Members or Email form field (requires `sourceWidgetId`); `DocumentOwner`
              and `DocumentAuthor` pull from the source document.
            type: string
            enum:
            - ChecklistInitiator
            - FormField
            - DocumentOwner
            - DocumentAuthor
          sourceWidgetId:
            title: EntityID
            description: 'For `sourceType=FormField`: the ID of the Members form field
              whose value drives the rule''s assignees at runtime. Absent for `sourceType=ChecklistInitiator`.'
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            const: Dynamic
      - title: StaticAssignmentRuleRequest
        type: object
        required:
        - email
        - type
        properties:
          email:
            description: Email address.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            const: Static
      discriminator:
        propertyName: type
        mapping:
          Dynamic: '#/components/schemas/DynamicAssignmentRuleRequest'
          Static: '#/components/schemas/StaticAssignmentRuleRequest'
    UpdateTaskDueDateRuleRequest:
      title: UpdateTaskDueDateRuleRequest
      type: object
      properties:
        rule:
          title: TaskDueDateRuleBody
          description: The rule to set; omit or send `null` to clear the existing
            rule.
          type: object
          required:
          - sourceType
          - offsetDirection
          - dueOffset
          - businessDaysHandlingMode
          properties:
            sourceType:
              description: How the task's due date is derived. `ChecklistStartDate`
                / `ChecklistDueDate` — relative to the workflow run's start or due
                date. `TaskCompletedDate` / `TaskDueDate` — relative to a specific
                source task (requires `sourceTaskId`). `PreviousTaskCompletedDate`
                — relative to the task immediately before this one. `FormFieldValue`
                — relative to a Date form field value (requires `sourceWidgetId`).
              type: string
              enum:
              - FormFieldValue
              - TaskCompletedDate
              - PreviousTaskCompletedDate
              - TaskDueDate
              - ChecklistStartDate
              - ChecklistDueDate
            sourceWidgetId:
              title: EntityID
              description: 'For `sourceType=FormField`: the ID of the Members form
                field whose value drives the rule''s assignees at runtime. Absent
                for `sourceType=ChecklistInitiator`.'
              type: string
            sourceTaskId:
              title: EntityID
              type: string
            offsetDirection:
              description: Whether the offset applies before or after the source date.
              type: string
              enum:
              - Before
              - After
            dueOffset:
              description: ISO-8601 duration (e.g. `P7D`, `PT4H30M`).
              type: string
            businessDaysHandlingMode:
              title: BusinessDaysHandlingMode
              description: How non-business days are handled when calculating the
                due date. `AllDays` counts every day. `BusinessDaysOnly` counts only
                Monday–Friday. `ShiftToNextBusinessDay` calculates using all days
                then moves a Saturday/Sunday result to the next Monday.
              type: string
              enum:
              - AllDays
              - BusinessDaysOnly
              - ShiftToNextBusinessDay
    UpdateTaskPermissionRuleRequest:
      title: UpdateTaskPermissionRuleRequest
      oneOf:
      - title: DynamicPermissionRuleRequest
        type: object
        required:
        - sourceType
        - taskRead
        - taskUpdate
        - type
        properties:
          sourceType:
            title: SourceType
            description: |
              Where the user(s) that get task access are pulled from at runtime.

              - `ChecklistInitiator` — grants access to the user who started the workflow run.
              - `FormField` — grants access to users referenced by a form field on the run (`sourceWidgetId`
                identifies which Members form field).
            type: string
            enum:
            - ChecklistInitiator
            - FormField
          sourceWidgetId:
            title: EntityID
            description: 'For `sourceType=FormField`: the ID of the Members form field
              whose value drives the rule''s assignees at runtime. Absent for `sourceType=ChecklistInitiator`.'
            type: string
          taskRead:
            description: When `true`, the rule grants read access to the task.
            type: boolean
          taskUpdate:
            description: When `true`, the rule grants update access to the task (check
              off, edit form fields).
            type: boolean
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            const: Dynamic
      - title: StaticPermissionRuleRequest
        type: object
        required:
        - email
        - taskRead
        - taskUpdate
        - type
        properties:
          email:
            description: Email address.
            type: string
          taskRead:
            description: When `true`, the rule grants read access to the task.
            type: boolean
          taskUpdate:
            description: When `true`, the rule grants update access to the task (check
              off, edit form fields).
            type: boolean
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            const: Static
      discriminator:
        propertyName: type
        mapping:
          Dynamic: '#/components/schemas/DynamicPermissionRuleRequest'
          Static: '#/components/schemas/StaticPermissionRuleRequest'
    UpdateTaskRequest:
      title: UpdateTaskRequest
      type: object
      required:
      - status
      properties:
        status:
          description: |
            Whether the task is complete.

            - `NotCompleted` — the task has not yet been checked off.
            - `Completed` — the task has been checked off.
          type: string
          enum:
          - NotCompleted
          - Completed
        dueDate:
          description: Due date. ISO-8601 UTC.
          type: string
          format: date-time
    UpdateTextFormFieldRequest:
      title: UpdateTextFormFieldRequest
      type: object
      required:
      - hiddenByDefault
      - required
      - config
      - constraints
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        required:
          description: When `true`, the form field must have a value before its task
            can be completed.
          type: boolean
        config:
          title: PublicApiTextFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            placeholder:
              description: Placeholder hint shown in the input when no value has been
                entered.
              type: string
            defaultValue:
              description: Default value pre-filled when a new workflow run is created.
              type: string
        constraints:
          title: PublicApiTextFormFieldConstraints
          description: Field-specific validation constraints. Shape depends on `fieldType`.
          type: object
          properties:
            min:
              description: Inclusive lower bound.
              type: integer
              format: int32
            max:
              description: Inclusive upper bound.
              type: integer
              format: int32
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Text
    UpdateTextareaFormFieldRequest:
      title: UpdateTextareaFormFieldRequest
      type: object
      required:
      - hiddenByDefault
      - required
      - config
      - constraints
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        required:
          description: When `true`, the form field must have a value before its task
            can be completed.
          type: boolean
        config:
          title: PublicApiTextareaFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            placeholder:
              description: Placeholder hint shown in the input when no value has been
                entered.
              type: string
            defaultValue:
              description: Default value pre-filled when a new workflow run is created.
              type: string
            format:
              description: |
                Editor style for this Textarea field.

                - `PlainText` — plain text.
                - `RichText` — rich-text editor with formatting (bold, lists, links, etc.).
              type: string
              enum:
              - PlainText
              - RichText
        constraints:
          title: PublicApiTextareaFormFieldConstraints
          description: Field-specific validation constraints. Shape depends on `fieldType`.
          type: object
          properties:
            min:
              description: Inclusive lower bound.
              type: integer
              format: int32
            max:
              description: Inclusive upper bound.
              type: integer
              format: int32
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Textarea
    UpdateUrlFormFieldRequest:
      title: UpdateUrlFormFieldRequest
      type: object
      required:
      - hiddenByDefault
      - required
      - config
      - type
      - fieldType
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        label:
          description: Display label shown to the end user.
          type: string
          maxLength: 255
        required:
          description: When `true`, the form field must have a value before its task
            can be completed.
          type: boolean
        config:
          title: PublicApiUrlFormFieldConfig
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            defaultValue:
              description: Default value pre-filled when a new workflow run is created.
              type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          examples:
          - FormField
          type: string
          enum:
          - FormField
        fieldType:
          description: |
            Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

            - `Text` — short text input (≤255 characters).
            - `Textarea` — long-form text.
            - `Email` — email address.
            - `Url` — website / URL.
            - `Number` — numeric input with optional unit and constraints.
            - `Date` — date or date+time picker.
            - `Select` — dropdown; user picks one option.
            - `MultiChoice` — checkboxes; user picks one or more options.
            - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
            - `Members` — assignee picker (selects organization users).
            - `File` — single file upload.
            - `MultiFile` — multi-file upload (in-app "File Upload").
            - `Document` — document approval field; links the task to a document review.
            - `Table` — rows × columns of cells; users fill cell values.
            - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
              automatically when the task is completed.
            - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
            - `Snippet` — only visible when editing; passes static text or merge tags into automations.
          type: string
          enum:
          - Date
          - Document
          - Email
          - File
          - Hidden
          - Members
          - MultiChoice
          - MultiFile
          - MultiSelect
          - Number
          - Select
          - SendRichEmail
          - Snippet
          - Table
          - Text
          - Textarea
          - Url
          const: Url
    UpdateWebhookRequest:
      title: UpdateWebhookRequest
      type: object
      required:
      - url
      properties:
        url:
          description: Target URL.
          type: string
        triggers:
          type: array
          uniqueItems: true
          items:
            description: |
              Event that fires the outgoing webhook.

              - `TaskChecked` — a task is marked complete.
              - `TaskUnchecked` — a task is marked incomplete after having been completed.
              - `TaskCheckedUnchecked` — fires for either of the above (single subscription for both).
              - `TaskReady` — all prerequisite tasks/stop tasks are clear and this task becomes actionable.
              - `WorkflowRunCreated` — a new workflow run is created.
              - `WorkflowRunCompleted` — all tasks on a run are complete.
            type: string
            enum:
            - TaskChecked
            - TaskUnchecked
            - TaskCheckedUnchecked
            - TaskReady
            - WorkflowRunCreated
            - WorkflowRunCompleted
        workflowId:
          title: EntityID
          description: The ID of the Workflow.
          type: string
        taskId:
          title: EntityID
          description: The ID of the Task.
          type: string
    UpdateWidgetRequest:
      title: UpdateWidgetRequest
      description: Update payload for a workflow widget. The `type` discriminator
        selects the widget kind — `FormField` (further discriminated by `fieldType`),
        `Text`, `Image`, `File`, `Video`, `Embed`, or `CrossLink`.
      oneOf:
      - title: UpdateFormFieldWidgetRequest
        description: Update payload for a form field widget. The `fieldType` discriminator
          selects the variant — see `fieldType` for what each value collects.
        oneOf:
        - title: UpdateDateFormFieldRequest
          type: object
          required:
          - hiddenByDefault
          - required
          - config
          - constraints
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            required:
              description: When `true`, the form field must have a value before its
                task can be completed.
              type: boolean
            config:
              title: PublicApiDateFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
                timeOption:
                  description: |
                    How time-of-day is handled on this Date field.

                    - `Included` — the field always captures both date and time.
                    - `Excluded` — date only; time is never captured.
                    - `Optional` — the user picks whether to include a time.
                  type: string
                  enum:
                  - Included
                  - Excluded
                  - Optional
            constraints:
              title: PublicApiDateFormFieldConstraints
              description: Field-specific validation constraints. Shape depends on
                `fieldType`.
              type: object
              properties:
                afterDate:
                  description: Earliest accepted date (inclusive). Pair with `afterDateSourceType`.
                  type: string
                  format: date-time
                beforeDate:
                  description: Latest accepted date (inclusive). Pair with `beforeDateSourceType`.
                  type: string
                  format: date-time
                afterDateFormFieldWidgetGroupId:
                  title: EntityID
                  description: When `afterDateSourceType=FormField`, the ID of the
                    Date form field whose value is the lower bound.
                  type: string
                beforeDateFormFieldWidgetGroupId:
                  title: EntityID
                  description: When `beforeDateSourceType=FormField`, the ID of the
                    Date form field whose value is the upper bound.
                  type: string
                afterDateSourceType:
                  description: |
                    How the before/after constraint date is derived.

                    - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
                    - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
                    - `TaskDueDate` — relative to the containing task's due date.
                    - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
                  type: string
                  enum:
                  - SpecificDate
                  - FormFieldValue
                  - TaskDueDate
                  - ChecklistStartDate
                  - ChecklistDueDate
                beforeDateSourceType:
                  description: |
                    How the before/after constraint date is derived.

                    - `SpecificDate` — an absolute date supplied as `afterDate` / `beforeDate`.
                    - `FormFieldValue` — derived from another Date form field (`afterDateField` / `beforeDateField`).
                    - `TaskDueDate` — relative to the containing task's due date.
                    - `ChecklistStartDate` / `ChecklistDueDate` — relative to the workflow run's start or due date.
                  type: string
                  enum:
                  - SpecificDate
                  - FormFieldValue
                  - TaskDueDate
                  - ChecklistStartDate
                  - ChecklistDueDate
                afterDateOffset:
                  description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
                  type: string
                beforeDateOffset:
                  description: ISO 8601 duration (e.g. `P7D`, `P1Y2M`).
                  type: string
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Date
        - title: UpdateDocumentFormFieldRequest
          type: object
          required:
          - hiddenByDefault
          - required
          - config
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            required:
              description: When `true`, the form field must have a value before its
                task can be completed.
              type: boolean
            config:
              title: PublicApiDocumentFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              required:
              - reviewRequest
              properties:
                reviewRequest:
                  description: When `true`, the email requires explicit user review/send
                    rather than auto-send.
                  type: boolean
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Document
        - title: UpdateEmailFormFieldRequest
          type: object
          required:
          - hiddenByDefault
          - required
          - config
          - constraints
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            required:
              description: When `true`, the form field must have a value before its
                task can be completed.
              type: boolean
            config:
              title: PublicApiEmailFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                placeholder:
                  description: Placeholder hint shown in the input when no value has
                    been entered.
                  type: string
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
            constraints:
              title: PublicApiEmailFormFieldConstraints
              description: Field-specific validation constraints. Shape depends on
                `fieldType`.
              type: object
              properties:
                domains:
                  description: Allowed (or blocked, depending on `restriction`) email
                    domains for this field.
                  type: array
                  items:
                    type: string
                restriction:
                  description: |
                    How the `domains` list filters allowed email addresses.

                    - `Allow` — only emails whose domain is in the list are accepted.
                    - `Block` — emails whose domain is in the list are rejected; all others accepted.
                  type: string
                  enum:
                  - Allow
                  - Block
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Email
        - title: UpdateFileFormFieldRequest
          type: object
          required:
          - hiddenByDefault
          - required
          - config
          - constraints
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            required:
              description: When `true`, the form field must have a value before its
                task can be completed.
              type: boolean
            config:
              title: PublicApiFileFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                placeholder:
                  description: Placeholder hint shown in the input when no value has
                    been entered.
                  type: string
                extractTextContent:
                  description: When `true`, server extracts text from uploaded documents
                    for use in merge tags.
                  type: boolean
            constraints:
              title: PublicApiFileFormFieldConstraints
              description: Field-specific validation constraints. Shape depends on
                `fieldType`.
              type: object
              properties:
                extensions:
                  description: Allowed file extensions, including the leading dot
                    (e.g. `.pdf`, `.docx`).
                  type: array
                  items:
                    type: string
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: File
        - title: UpdateHiddenFormFieldRequest
          type: object
          required:
          - hiddenByDefault
          - required
          - config
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            required:
              description: When `true`, the form field must have a value before its
                task can be completed.
              type: boolean
            config:
              title: PublicApiHiddenFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Hidden
        - title: UpdateMembersFormFieldRequest
          type: object
          required:
          - hiddenByDefault
          - required
          - config
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            required:
              description: When `true`, the form field must have a value before its
                task can be completed.
              type: boolean
            config:
              title: PublicApiMembersFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
                groupId:
                  title: EntityID
                  description: The ID of an organization group.
                  type: string
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Members
        - title: UpdateMultiChoiceFormFieldRequest
          type: object
          required:
          - hiddenByDefault
          - required
          - config
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            required:
              description: When `true`, the form field must have a value before its
                task can be completed.
              type: boolean
            config:
              title: PublicApiMultiChoiceFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                items:
                  description: Available options for selection-style form fields.
                  type: array
                  items:
                    title: PublicApiFormFieldItem
                    type: object
                    required:
                    - name
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      name:
                        description: Display name.
                        type: string
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: MultiChoice
        - title: UpdateMultiFileFormFieldRequest
          type: object
          required:
          - hiddenByDefault
          - required
          - config
          - constraints
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            required:
              description: When `true`, the form field must have a value before its
                task can be completed.
              type: boolean
            config:
              title: PublicApiMultiFileFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                placeholder:
                  description: Placeholder hint shown in the input when no value has
                    been entered.
                  type: string
                extractTextContent:
                  description: When `true`, server extracts text from uploaded documents
                    for use in merge tags.
                  type: boolean
            constraints:
              title: PublicApiMultiFileFormFieldConstraints
              description: Field-specific validation constraints. Shape depends on
                `fieldType`.
              type: object
              properties:
                extensions:
                  description: Allowed file extensions, including the leading dot
                    (e.g. `.pdf`, `.docx`).
                  type: array
                  items:
                    type: string
                mode:
                  description: |
                    Whether the field accepts a single file or multiple files.

                    - `Single` — only one file may be uploaded.
                    - `Multiple` — multiple files may be uploaded.
                  type: string
                  enum:
                  - Multiple
                  - Single
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: MultiFile
        - title: UpdateMultiSelectFormFieldRequest
          type: object
          required:
          - hiddenByDefault
          - required
          - config
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            required:
              description: When `true`, the form field must have a value before its
                task can be completed.
              type: boolean
            config:
              title: PublicApiMultiSelectFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                items:
                  description: Available options for selection-style form fields.
                  type: array
                  items:
                    title: PublicApiFormFieldItem
                    type: object
                    required:
                    - name
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      name:
                        description: Display name.
                        type: string
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: MultiSelect
        - title: UpdateNumberFormFieldRequest
          type: object
          required:
          - hiddenByDefault
          - required
          - config
          - constraints
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            required:
              description: When `true`, the form field must have a value before its
                task can be completed.
              type: boolean
            config:
              title: PublicApiNumberFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                placeholder:
                  description: Placeholder hint shown in the input when no value has
                    been entered.
                  type: string
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
                unit:
                  description: Unit label rendered next to the numeric value (e.g.
                    `kg`, `$`, `%`).
                  type: string
                unitLocation:
                  description: |
                    Where the unit symbol appears relative to the number.

                    - `prefix` — before the number (e.g. `$100`).
                    - `suffix` — after the number (e.g. `100 USD`).
                  type: string
                  enum:
                  - prefix
                  - suffix
            constraints:
              title: PublicApiNumberFormFieldConstraints
              description: Field-specific validation constraints. Shape depends on
                `fieldType`.
              type: object
              properties:
                minDigits:
                  description: Minimum number of digits.
                  type: integer
                  format: int32
                maxDigits:
                  description: Maximum number of digits.
                  type: integer
                  format: int32
                minValue:
                  description: Minimum numeric value.
                  type: integer
                  format: int32
                maxValue:
                  description: Maximum numeric value.
                  type: integer
                  format: int32
                decimalPlaces:
                  description: Number of decimal places to accept (0 means integers
                    only).
                  type: integer
                  format: int32
                allowNegative:
                  description: When `true`, negative numbers are accepted.
                  type: boolean
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Number
        - title: UpdateSelectFormFieldRequest
          type: object
          required:
          - hiddenByDefault
          - required
          - config
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            required:
              description: When `true`, the form field must have a value before its
                task can be completed.
              type: boolean
            config:
              title: PublicApiSelectFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                items:
                  description: Available options for selection-style form fields.
                  type: array
                  items:
                    title: PublicApiFormFieldItem
                    type: object
                    required:
                    - name
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      name:
                        description: Display name.
                        type: string
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Select
        - title: UpdateSendRichEmailFormFieldRequest
          type: object
          required:
          - hiddenByDefault
          - required
          - config
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            required:
              description: When `true`, the form field must have a value before its
                task can be completed.
              type: boolean
            config:
              title: PublicApiSendRichEmailFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              required:
              - bodyEditor
              properties:
                to:
                  description: Default recipient list (To). Comma-separated email
                    addresses or merge tags.
                  type: array
                  items:
                    type: string
                cc:
                  description: Default CC list. Comma-separated email addresses or
                    merge tags.
                  type: array
                  items:
                    type: string
                bcc:
                  description: Default BCC list. Comma-separated email addresses or
                    merge tags.
                  type: array
                  items:
                    type: string
                replyTo:
                  description: Default Reply-To address. An email address or merge
                    tag.
                  type: array
                  items:
                    type: string
                subject:
                  description: Default email subject. May contain merge tags.
                  type: string
                body:
                  description: Default email body. May contain merge tags.
                  type: string
                bodyEditor:
                  description: |
                    Editor used to author the email body.

                    - `RichText` — rich-text editor with formatting.
                    - `HTML` — raw HTML editor.
                    - `PlainText` — plain text editor.
                  type: string
                  enum:
                  - RichText
                  - HTML
                  - PlainText
                editAllowed:
                  description: When `true`, users running the workflow can edit the
                    email before sending.
                  type: boolean
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: SendRichEmail
        - title: UpdateSnippetFormFieldRequest
          type: object
          required:
          - hiddenByDefault
          - required
          - config
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            required:
              description: When `true`, the form field must have a value before its
                task can be completed.
              type: boolean
            config:
              title: PublicApiSnippetFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                value:
                  description: The option's stored value.
                  type: string
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Snippet
        - title: UpdateTableFormFieldRequest
          type: object
          required:
          - hiddenByDefault
          - required
          - config
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            required:
              description: When `true`, the form field must have a value before its
                task can be completed.
              type: boolean
            config:
              title: PublicApiTableFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                columnDefs:
                  description: Data set column definitions (name + type per column).
                  type: array
                  items:
                    title: PublicApiTableFormFieldColumn
                    type: object
                    required:
                    - id
                    - name
                    - columnType
                    properties:
                      id:
                        title: EntityID
                        description: The resource's ID.
                        type: string
                      name:
                        description: Display name.
                        type: string
                      columnType:
                        description: |
                          Data type a Table column accepts.

                          - `Text` — free-form short text.
                        type: string
                        enum:
                        - Text
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Table
        - title: UpdateTextFormFieldRequest
          type: object
          required:
          - hiddenByDefault
          - required
          - config
          - constraints
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            required:
              description: When `true`, the form field must have a value before its
                task can be completed.
              type: boolean
            config:
              title: PublicApiTextFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                placeholder:
                  description: Placeholder hint shown in the input when no value has
                    been entered.
                  type: string
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
            constraints:
              title: PublicApiTextFormFieldConstraints
              description: Field-specific validation constraints. Shape depends on
                `fieldType`.
              type: object
              properties:
                min:
                  description: Inclusive lower bound.
                  type: integer
                  format: int32
                max:
                  description: Inclusive upper bound.
                  type: integer
                  format: int32
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Text
        - title: UpdateTextareaFormFieldRequest
          type: object
          required:
          - hiddenByDefault
          - required
          - config
          - constraints
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            required:
              description: When `true`, the form field must have a value before its
                task can be completed.
              type: boolean
            config:
              title: PublicApiTextareaFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                placeholder:
                  description: Placeholder hint shown in the input when no value has
                    been entered.
                  type: string
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
                format:
                  description: |
                    Editor style for this Textarea field.

                    - `PlainText` — plain text.
                    - `RichText` — rich-text editor with formatting (bold, lists, links, etc.).
                  type: string
                  enum:
                  - PlainText
                  - RichText
            constraints:
              title: PublicApiTextareaFormFieldConstraints
              description: Field-specific validation constraints. Shape depends on
                `fieldType`.
              type: object
              properties:
                min:
                  description: Inclusive lower bound.
                  type: integer
                  format: int32
                max:
                  description: Inclusive upper bound.
                  type: integer
                  format: int32
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Textarea
        - title: UpdateUrlFormFieldRequest
          type: object
          required:
          - hiddenByDefault
          - required
          - config
          - type
          - fieldType
          properties:
            hiddenByDefault:
              description: When `true`, the widget is hidden by default; conditional
                logic rules can reveal it at runtime. Defaults to `false`.
              type: boolean
            position:
              title: WidgetPosition
              description: Where to place this widget on the task. `Top` — before
                all existing widgets. `Bottom` — after all existing widgets (default
                when `position` is omitted). `After` — immediately after the widget
                identified by `widgetId`.
              oneOf:
              - title: WidgetPositionAfter
                type: object
                required:
                - widgetId
                - type
                properties:
                  widgetId:
                    title: EntityID
                    description: The ID of the widget.
                    type: string
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: After
              - title: WidgetPositionBottom
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Bottom
              - title: WidgetPositionTop
                type: object
                required:
                - type
                properties:
                  type:
                    description: Discriminator value for this variant. See the parent
                      oneOf for the full set of values.
                    type: string
                    const: Top
              discriminator:
                propertyName: type
                mapping:
                  After: '#/components/schemas/WidgetPositionAfter'
                  Bottom: '#/components/schemas/WidgetPositionBottom'
                  Top: '#/components/schemas/WidgetPositionTop'
            label:
              description: Display label shown to the end user.
              type: string
              maxLength: 255
            required:
              description: When `true`, the form field must have a value before its
                task can be completed.
              type: boolean
            config:
              title: PublicApiUrlFormFieldConfig
              description: Field-specific configuration. Shape depends on `fieldType`.
              type: object
              properties:
                defaultValue:
                  description: Default value pre-filled when a new workflow run is
                    created.
                  type: string
            type:
              description: Discriminator value for this variant. See the parent oneOf
                for the full set of values.
              examples:
              - FormField
              type: string
              enum:
              - FormField
            fieldType:
              description: |
                Form-field subtype discriminator (only relevant when widget `type` is `FormField`).

                - `Text` — short text input (≤255 characters).
                - `Textarea` — long-form text.
                - `Email` — email address.
                - `Url` — website / URL.
                - `Number` — numeric input with optional unit and constraints.
                - `Date` — date or date+time picker.
                - `Select` — dropdown; user picks one option.
                - `MultiChoice` — checkboxes; user picks one or more options.
                - `MultiSelect` — Subtasks: a checklist of sub-items inside the task.
                - `Members` — assignee picker (selects organization users).
                - `File` — single file upload.
                - `MultiFile` — multi-file upload (in-app "File Upload").
                - `Document` — document approval field; links the task to a document review.
                - `Table` — rows × columns of cells; users fill cell values.
                - `SendRichEmail` — pre-written email embedded in the task; sent manually by the user or
                  automatically when the task is completed.
                - `Hidden` — only visible when editing the workflow; populated by integrations or default values.
                - `Snippet` — only visible when editing; passes static text or merge tags into automations.
              type: string
              enum:
              - Date
              - Document
              - Email
              - File
              - Hidden
              - Members
              - MultiChoice
              - MultiFile
              - MultiSelect
              - Number
              - Select
              - SendRichEmail
              - Snippet
              - Table
              - Text
              - Textarea
              - Url
              const: Url
        discriminator:
          propertyName: fieldType
          mapping:
            Date: '#/components/schemas/UpdateDateFormFieldRequest'
            Document: '#/components/schemas/UpdateDocumentFormFieldRequest'
            Email: '#/components/schemas/UpdateEmailFormFieldRequest'
            File: '#/components/schemas/UpdateFileFormFieldRequest'
            Hidden: '#/components/schemas/UpdateHiddenFormFieldRequest'
            Members: '#/components/schemas/UpdateMembersFormFieldRequest'
            MultiChoice: '#/components/schemas/UpdateMultiChoiceFormFieldRequest'
            MultiFile: '#/components/schemas/UpdateMultiFileFormFieldRequest'
            MultiSelect: '#/components/schemas/UpdateMultiSelectFormFieldRequest'
            Number: '#/components/schemas/UpdateNumberFormFieldRequest'
            Select: '#/components/schemas/UpdateSelectFormFieldRequest'
            SendRichEmail: '#/components/schemas/UpdateSendRichEmailFormFieldRequest'
            Snippet: '#/components/schemas/UpdateSnippetFormFieldRequest'
            Table: '#/components/schemas/UpdateTableFormFieldRequest'
            Text: '#/components/schemas/UpdateTextFormFieldRequest'
            Textarea: '#/components/schemas/UpdateTextareaFormFieldRequest'
            Url: '#/components/schemas/UpdateUrlFormFieldRequest'
      - title: UpdateWorkflowCrossLinkWidgetRequest
        type: object
        required:
        - hiddenByDefault
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          linkedTemplateId:
            title: EntityID
            description: The ID of the linked workflow or page that this CrossLink
              widget points to.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - FormField
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: CrossLink
      - title: UpdateWorkflowEmbedWidgetRequest
        type: object
        required:
        - hiddenByDefault
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          url:
            description: Target URL.
            type: string
            maxLength: 4000
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - FormField
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: Embed
      - title: UpdateWorkflowFileWidgetRequest
        type: object
        required:
        - hiddenByDefault
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          description:
            description: Optional long-form description.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - FormField
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: File
      - title: UpdateWorkflowImageWidgetRequest
        type: object
        required:
        - hiddenByDefault
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          caption:
            description: Caption text rendered with the image.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - FormField
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: Image
      - title: UpdateWorkflowTextWidgetRequest
        type: object
        required:
        - hiddenByDefault
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          content:
            description: Rich text content. May contain merge tags.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - FormField
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: Text
      - title: UpdateWorkflowVideoWidgetRequest
        type: object
        required:
        - hiddenByDefault
        - type
        properties:
          hiddenByDefault:
            description: When `true`, the widget is hidden by default; conditional
              logic rules can reveal it at runtime. Defaults to `false`.
            type: boolean
          position:
            title: WidgetPosition
            description: Where to place this widget on the task. `Top` — before all
              existing widgets. `Bottom` — after all existing widgets (default when
              `position` is omitted). `After` — immediately after the widget identified
              by `widgetId`.
            oneOf:
            - title: WidgetPositionAfter
              type: object
              required:
              - widgetId
              - type
              properties:
                widgetId:
                  title: EntityID
                  description: The ID of the widget.
                  type: string
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: After
            - title: WidgetPositionBottom
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Bottom
            - title: WidgetPositionTop
              type: object
              required:
              - type
              properties:
                type:
                  description: Discriminator value for this variant. See the parent
                    oneOf for the full set of values.
                  type: string
                  const: Top
            discriminator:
              propertyName: type
              mapping:
                After: '#/components/schemas/WidgetPositionAfter'
                Bottom: '#/components/schemas/WidgetPositionBottom'
                Top: '#/components/schemas/WidgetPositionTop'
          description:
            description: Optional long-form description.
            type: string
          url:
            description: Target URL.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            enum:
            - FormField
            - Text
            - Image
            - File
            - Video
            - Embed
            - CrossLink
            const: Video
      discriminator:
        propertyName: type
        mapping:
          CrossLink: '#/components/schemas/UpdateWorkflowCrossLinkWidgetRequest'
          Embed: '#/components/schemas/UpdateWorkflowEmbedWidgetRequest'
          File: '#/components/schemas/UpdateWorkflowFileWidgetRequest'
          FormField: '#/components/schemas/UpdateFormFieldWidgetRequest'
          Image: '#/components/schemas/UpdateWorkflowImageWidgetRequest'
          Text: '#/components/schemas/UpdateWorkflowTextWidgetRequest'
          Video: '#/components/schemas/UpdateWorkflowVideoWidgetRequest'
    UpdateWorkflowCrossLinkWidgetRequest:
      title: UpdateWorkflowCrossLinkWidgetRequest
      type: object
      required:
      - hiddenByDefault
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        linkedTemplateId:
          title: EntityID
          description: The ID of the linked workflow or page that this CrossLink widget
            points to.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - FormField
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: CrossLink
    UpdateWorkflowEmbedWidgetRequest:
      title: UpdateWorkflowEmbedWidgetRequest
      type: object
      required:
      - hiddenByDefault
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        url:
          description: Target URL.
          type: string
          maxLength: 4000
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - FormField
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: Embed
    UpdateWorkflowFileWidgetRequest:
      title: UpdateWorkflowFileWidgetRequest
      type: object
      required:
      - hiddenByDefault
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        description:
          description: Optional long-form description.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - FormField
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: File
    UpdateWorkflowImageWidgetRequest:
      title: UpdateWorkflowImageWidgetRequest
      type: object
      required:
      - hiddenByDefault
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        caption:
          description: Caption text rendered with the image.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - FormField
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: Image
    UpdateWorkflowIncomingWebhookRequest:
      title: UpdateWorkflowIncomingWebhookRequest
      type: object
      required:
      - name
      - automationApp
      - status
      - config
      properties:
        name:
          description: Display name.
          type: string
        automationApp:
          type: string
        status:
          description: |
            Incoming webhook lifecycle.

            - `Active` — the webhook accepts and processes incoming payloads.
            - `Disabled` — the URL still resolves but payloads are dropped without triggering a run.
            - `Deleted` — the webhook is soft-deleted; only returned by endpoints that explicitly include deleted records.
          type: string
          enum:
          - Active
          - Disabled
          - Deleted
        config:
          title: CreateWorkflowIncomingWebhookConfigRequest
          description: Field-specific configuration. Shape depends on `fieldType`.
          type: object
          properties:
            properties:
              description: Mapping from workflow-run property names (e.g. `Name`,
                `DueDate`, `Assignees`) to JSONPath expressions in the incoming payload.
              type: object
              additionalProperties:
                type: string
            formFields:
              description: Mapping from form-field IDs to JSONPath expressions in
                the incoming payload.
              type: object
              additionalProperties:
                type: string
    UpdateWorkflowLogicRuleRequest:
      title: UpdateWorkflowLogicRuleRequest
      type: object
      required:
      - condition
      - action
      - targets
      properties:
        condition:
          title: OrCondition
          type: object
          properties:
            or:
              description: List of AND-groups; the OR-condition matches if any group
                matches.
              type: array
              items:
                title: AndGroup
                type: object
                properties:
                  and:
                    description: List of conditions that must all match (AND combined
                      within a group).
                    type: array
                    items:
                      title: LeafCondition
                      type: object
                      required:
                      - widgetId
                      - operator
                      properties:
                        widgetId:
                          title: EntityID
                          description: The ID of the widget.
                          type: string
                        operator:
                          description: Comparison operator (e.g. `Is`, `IsNot`, `Contains`,
                            `IsEmpty`).
                          type: string
                        value:
                          description: The option's stored value.
                          type: string
        action:
          title: WorkflowLogicRuleAction
          description: What the rule does to its targets when conditions match. `Show`
            reveals tasks/widgets that are hidden by default. `Hide` conceals tasks/widgets
            that are visible by default.
          type: string
          enum:
          - Show
          - Hide
        targets:
          title: PublicApiTargets
          type: object
          properties:
            taskIds:
              description: IDs of the tasks this rule applies to.
              type: array
              items:
                title: EntityID
                type: string
            widgetIds:
              description: IDs of the widgets (form fields) this rule applies to.
              type: array
              items:
                title: EntityID
                type: string
        position:
          title: RulePosition
          description: Where to place this logic rule in the workflow revision. `Top`
            — before all existing rules. `Bottom` — after all existing rules (default
            when `position` is omitted). `After` — immediately after the rule identified
            by `ruleId`.
          oneOf:
          - title: RulePositionAfter
            type: object
            required:
            - ruleId
            - type
            properties:
              ruleId:
                title: EntityID
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: RulePositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: RulePositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/RulePositionAfter'
              Bottom: '#/components/schemas/RulePositionBottom'
              Top: '#/components/schemas/RulePositionTop'
        description:
          description: Optional long-form description.
          type: string
          maxLength: 255
    UpdateWorkflowRequest:
      title: UpdateWorkflowRequest
      type: object
      required:
      - name
      - folderId
      - shareLevel
      - runLinkShareLevel
      - allowComments
      - sharedRunsByDefault
      properties:
        name:
          description: Display name.
          type: string
          maxLength: 255
          minLength: 1
        description:
          description: Optional free-form description of the workflow.
          type: string
          maxLength: 255
        folderId:
          description: The ID of the Folder
          examples:
          - qs35zqcsOC0L6XEMmylI2Q
          type: string
        shareLevel:
          description: Controls who can access this workflow. `None` — only organization
            members can view and run this workflow (when permitted). `Overview` —
            used only for Forms; viewers see the form name and background image but
            not the content. `View` — anyone with the link can view this workflow.
            `Run` — anyone with the link can view and run this workflow.
          type: string
          enum:
          - None
          - Overview
          - View
          - Run
        runLinkShareLevel:
          description: Controls who can run this workflow via a run link. `Organization`
            — only authenticated organization members with run permission can use
            the run link. `Public` — anyone with the link can run the workflow without
            a Process Street account; all runs created from a public link are automatically
            shared.
          type: string
          enum:
          - Organization
          - Public
        allowComments:
          description: When `true`, comments are enabled on workflow runs created
            from this workflow.
          type: boolean
        sharedRunsByDefault:
          description: When `true`, new workflow runs created from this workflow have
            their share link enabled by default. Recipients of the share link can
            fill in form fields and complete tasks without a Process Street account.
          type: boolean
        referenceId:
          description: Version prefix used when version control is enabled on this
            workflow. Combined with the version number to form the full version identifier.
          type: string
          maxLength: 100
    UpdateWorkflowRevisionRequest:
      title: UpdateWorkflowRevisionRequest
      type: object
      required:
      - changeType
      properties:
        changeType:
          title: ChangeType
          description: Whether the changes in this revision are significant. `Material`
            — substantial changes; bumps the major version (e.g. `1.3` → `2.0`). `NonMaterial`
            — minor edits like wording or typo fixes; bumps the minor version (e.g.
            `1.3` → `1.4`).
          type: string
          enum:
          - Material
          - NonMaterial
        changeExplanation:
          description: Optional human-readable explanation of what changed in this
            revision; surfaced in revision history.
          type: string
          maxLength: 1000
        defaultChecklistName:
          description: Default name applied to new workflow runs created from this
            revision when the caller does not provide one. Supports merge tags (e.g.
            `{{form.customer_name}}`).
          type: string
          maxLength: 500
    UpdateWorkflowRunRequest:
      title: UpdateWorkflowRunRequest
      type: object
      required:
      - name
      - status
      - shared
      properties:
        name:
          description: The new name for the Workflow Run
          type: string
        status:
          description: The status for the Workflow Run
          type: string
          enum:
          - Active
          - Completed
          - Archived
          - Deleted
        shared:
          description: Whether or not the Workflow Run is shared (i.e. can be seen
            without logging in)
          type: boolean
        dueDate:
          description: The due date for the Workflow Run
          type: string
          format: date-time
    UpdateWorkflowTaskRequest:
      title: UpdateWorkflowTaskRequest
      type: object
      required:
      - stop
      - hiddenByDefault
      properties:
        name:
          description: Display name.
          type: string
          maxLength: 255
        stop:
          type: boolean
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        dueOffset:
          type: string
        position:
          title: TaskPosition
          description: Where to place this task in the workflow revision. `Top` —
            before all existing tasks. `Bottom` — after all existing tasks (default
            when `position` is omitted). `After` — immediately after the task identified
            by `taskId`.
          oneOf:
          - title: TaskPositionAfter
            type: object
            required:
            - taskId
            - type
            properties:
              taskId:
                title: EntityID
                description: The ID of the Task.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: TaskPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: TaskPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/TaskPositionAfter'
              Bottom: '#/components/schemas/TaskPositionBottom'
              Top: '#/components/schemas/TaskPositionTop'
    UpdateWorkflowTextWidgetRequest:
      title: UpdateWorkflowTextWidgetRequest
      type: object
      required:
      - hiddenByDefault
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        content:
          description: Rich text content. May contain merge tags.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - FormField
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: Text
    UpdateWorkflowVideoWidgetRequest:
      title: UpdateWorkflowVideoWidgetRequest
      type: object
      required:
      - hiddenByDefault
      - type
      properties:
        hiddenByDefault:
          description: When `true`, the widget is hidden by default; conditional logic
            rules can reveal it at runtime. Defaults to `false`.
          type: boolean
        position:
          title: WidgetPosition
          description: Where to place this widget on the task. `Top` — before all
            existing widgets. `Bottom` — after all existing widgets (default when
            `position` is omitted). `After` — immediately after the widget identified
            by `widgetId`.
          oneOf:
          - title: WidgetPositionAfter
            type: object
            required:
            - widgetId
            - type
            properties:
              widgetId:
                title: EntityID
                description: The ID of the widget.
                type: string
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: After
          - title: WidgetPositionBottom
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Bottom
          - title: WidgetPositionTop
            type: object
            required:
            - type
            properties:
              type:
                description: Discriminator value for this variant. See the parent
                  oneOf for the full set of values.
                type: string
                const: Top
          discriminator:
            propertyName: type
            mapping:
              After: '#/components/schemas/WidgetPositionAfter'
              Bottom: '#/components/schemas/WidgetPositionBottom'
              Top: '#/components/schemas/WidgetPositionTop'
        description:
          description: Optional long-form description.
          type: string
        url:
          description: Target URL.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          enum:
          - FormField
          - Text
          - Image
          - File
          - Video
          - Embed
          - CrossLink
          const: Video
    UploadAttachmentRequest:
      title: UploadAttachmentRequest
      type: object
      required:
      - workflowRunId
      - taskId
      properties:
        workflowRunId:
          title: EntityID
          description: The ID of the Workflow Run.
          type: string
        taskId:
          title: EntityID
          description: The ID of the Task.
          type: string
        file:
          description: Uploaded file reference. Use the upload endpoint to attach
            content.
          type: string
          format: binary
        fileBase64:
          title: FileBase64
          type: object
          required:
          - content
          - filename
          properties:
            content:
              description: Rich text content. May contain merge tags.
              type: string
            filename:
              type: string
        fileUploadId:
          type: string
    UploadFormFieldValueRequest:
      title: UploadFormFieldValueRequest
      type: object
      properties:
        file:
          description: Uploaded file reference. Use the upload endpoint to attach
            content.
          type: array
          items:
            type: string
            format: binary
        fileBase64:
          type: array
          items:
            title: FileBase64
            type: object
            required:
            - content
            - filename
            properties:
              content:
                description: Rich text content. May contain merge tags.
                type: string
              filename:
                type: string
        fileUploadId:
          type: string
    UploadWidgetFileRequest:
      title: UploadWidgetFileRequest
      type: object
      properties:
        file:
          description: Uploaded file reference. Use the upload endpoint to attach
            content.
          type: string
          format: binary
        fileBase64:
          title: FileBase64
          type: object
          required:
          - content
          - filename
          properties:
            content:
              description: Rich text content. May contain merge tags.
              type: string
            filename:
              type: string
        fileUploadId:
          type: string
    UpsertApprovalRequest:
      title: UpsertApprovalRequest
      type: object
      required:
      - approvalTaskId
      - status
      properties:
        approvalTaskId:
          examples:
          - jFWRK2e7Lwyk9QlQHZdPWw
          type: string
        subjectTaskId:
          examples:
          - jFWRK2e7Lwyk9QlQHZdPWw
          type: string
        status:
          description: |
            Outcome of an approval task review.

            - `Approved` — the reviewer accepted the subject task(s).
            - `Rejected` — the reviewer rejected; subject tasks return to the assignee for rework.
          type: string
          enum:
          - Approved
          - Rejected
        comment:
          type: string
    Uri:
      title: Uri
      description: URL of the linked resource.
      examples:
      - https://api.process.st/api/v1.1/resource/XXX
      type: string
    VariableType:
      title: VariableType
      description: |
        The kind of merge tag variable this is.

        - `Standard` — built-in variable like `{{workflow.name}}` or `{{run.startedDate}}`.
        - `FormField` — resolves to a form field value on the workflow run.
        - `DataSet` — resolves to a column from a linked data set row.
        - `EmailTrigger` — populated from an inbound email that triggered the workflow run.
        - `DocumentReview` — available on workflows using the Document Approvals feature.
      type: string
      enum:
      - Standard
      - FormField
      - DataSet
      - EmailTrigger
      - DocumentReview
    VariableType1:
      title: VariableType
      description: |
        The kind of merge tag variable this is.

        - `Standard` — built-in variable like `{{workflow.name}}` or `{{run.startedDate}}`.
        - `FormField` — resolves to a form field value on the workflow run.
        - `DataSet` — resolves to a column from a linked data set row.
        - `EmailTrigger` — populated from an inbound email that triggered the workflow run.
        - `DocumentReview` — available on workflows using the Document Approvals feature
          (see https://www.process.st/help/docs/document-approvals/).
      type: string
      enum:
      - Standard
      - FormField
      - DataSet
      - EmailTrigger
      - DocumentReview
    Visibility:
      title: Visibility
      description: Who can see this one-off task. `Private` — only the creator and
        assignees. `Public` — visible to anyone in the organization.
      type: string
      enum:
      - Private
      - Public
    WebhookResponse:
      title: WebhookResponse
      type: object
      required:
      - id
      properties:
        id:
          description: The ID of the Webhook
          examples:
          - nst-6c7P3Kmy8IhtGd1GZQ
          type: string
        links:
          description: Navigable HATEOAS links to related resources. Each entry has
            a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
          type: array
          items:
            title: Link
            description: A HATEOAS link to a related resource. Use these to navigate
              between resources without constructing URLs by hand.
            type: object
            required:
            - name
            - href
            - type
            properties:
              name:
                description: Standard link relation name (RFC 5988) indicating this
                  link's role. Common values include `self`, `edit`, `related`, `previous`,
                  `next`.
                type: string
              href:
                title: Uri
                description: URL of the linked resource.
                examples:
                - https://api.process.st/api/v1.1/resource/XXX
                type: string
              rel:
                description: Optional. The kind of resource this link points to (e.g.
                  `Workflow`, `Task`, `Comment`).
                type: string
                enum:
                - Approval Task
                - Approvals
                - Assignees
                - Comment
                - Data Set Records
                - Data Sets
                - Form Field Values
                - Subject Task
                - Task
                - Tasks
                - Users
                - Webhook
                - Workflow
                - Workflow Run
              type:
                description: Whether this link targets an API endpoint or a Process
                  Street app URL. `Api` — a callable API endpoint you can fetch directly.
                  `App` — a browser-facing URL in the Process Street UI.
                type: string
                enum:
                - Api
                - App
    Weekly:
      title: Weekly
      type: object
      required:
      - interval
      - weekDay
      - frequency
      properties:
        interval:
          description: Recurrence interval. For a Weekly schedule with `interval=2`,
            fires every other week.
          type: integer
          format: int32
        weekDay:
          description: Day of the week the workflow runs on. Only used by `Weekly`
            rules.
          type: string
          enum:
          - Sunday
          - Monday
          - Tuesday
          - Wednesday
          - Thursday
          - Friday
          - Saturday
        frequency:
          description: |-
            How often the workflow runs. The other fields on the rule depend on this value:
            `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
          type: string
          enum:
          - Daily
          - Weekly
          - Monthly
          - Yearly
          const: Weekly
    WidgetPosition:
      title: WidgetPosition
      description: Where to place this widget on the task. `Top` — before all existing
        widgets. `Bottom` — after all existing widgets (default when `position` is
        omitted). `After` — immediately after the widget identified by `widgetId`.
      oneOf:
      - title: WidgetPositionAfter
        type: object
        required:
        - widgetId
        - type
        properties:
          widgetId:
            title: EntityID
            description: The ID of the widget.
            type: string
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            const: After
      - title: WidgetPositionBottom
        type: object
        required:
        - type
        properties:
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            const: Bottom
      - title: WidgetPositionTop
        type: object
        required:
        - type
        properties:
          type:
            description: Discriminator value for this variant. See the parent oneOf
              for the full set of values.
            type: string
            const: Top
      discriminator:
        propertyName: type
        mapping:
          After: '#/components/schemas/WidgetPositionAfter'
          Bottom: '#/components/schemas/WidgetPositionBottom'
          Top: '#/components/schemas/WidgetPositionTop'
    WidgetPositionAfter:
      title: WidgetPositionAfter
      type: object
      required:
      - widgetId
      - type
      properties:
        widgetId:
          title: EntityID
          description: The ID of the widget.
          type: string
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          const: After
    WidgetPositionBottom:
      title: WidgetPositionBottom
      type: object
      required:
      - type
      properties:
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          const: Bottom
    WidgetPositionTop:
      title: WidgetPositionTop
      type: object
      required:
      - type
      properties:
        type:
          description: Discriminator value for this variant. See the parent oneOf
            for the full set of values.
          type: string
          const: Top
    WidgetType:
      title: WidgetType
      description: |
        Widget kind discriminator.

        - `FormField` — collects user input (Text, Number, Date, etc. — see `fieldType`).
        - `Text` — rich text content displayed on the task.
        - `Image` — image content displayed on the task.
        - `File` — downloadable file attached to the task.
        - `Video` — video content (uploaded or linked from a hosting service).
        - `Embed` — embedded external content via URL.
        - `CrossLink` — link to another workflow or page.
      type: string
      enum:
      - FormField
      - Text
      - Image
      - File
      - Video
      - Embed
      - CrossLink
    WorkflowLogicRuleAction:
      title: WorkflowLogicRuleAction
      description: What the rule does to its targets when conditions match. `Show`
        reveals tasks/widgets that are hidden by default. `Hide` conceals tasks/widgets
        that are visible by default.
      type: string
      enum:
      - Show
      - Hide
    WorkflowPermissionEntry:
      title: WorkflowPermissionEntry
      type: object
      required:
      - email
      - accessLevel
      properties:
        email:
          description: Email address.
          type: string
        accessLevel:
          description: Access level granted to a user or group on this workflow. `Edit`
            — edit the workflow, run new workflow runs, and view all runs created
            from it. `EditViewOwn` — edit the workflow and run new runs, but only
            view runs assigned to them (available on some plans). `ViewAll` — view
            the workflow and all runs, plus run new runs; cannot edit the workflow.
            `Run` — view the workflow, run new runs, and view runs assigned to them.
            `View` — view the workflow and only runs assigned to them; cannot run.
          type: string
          enum:
          - Edit
          - EditViewOwn
          - ViewAll
          - Run
          - View
    Yearly:
      title: Yearly
      type: object
      required:
      - interval
      - frequency
      properties:
        interval:
          description: Recurrence interval. For a Weekly schedule with `interval=2`,
            fires every other week.
          type: integer
          format: int32
        frequency:
          description: |-
            How often the workflow runs. The other fields on the rule depend on this value:
            `Daily` uses only `interval`, `Weekly` adds `weekDay`, `Monthly` adds `by`, `Yearly` uses only `interval`.
          type: string
          enum:
          - Daily
          - Weekly
          - Monthly
          - Yearly
          const: Yearly
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      name: X-API-Key
      in: header
    httpAuth:
      type: http
      description: Bearer token (beta)
      scheme: bearer
x-tagGroups:
- name: Workflows
  tags:
  - Workflows
  - Workflow Revisions
  - Form Fields
  - Workflow Logic Rules
  - Workflow Tasks
  - Workflow Task Assignment Rules
  - Workflow Widgets
  - Workflow Due Date Rules
  - Workflow Task Due Date Rules
  - Workflow Incoming Webhooks
  - Scheduled Workflows
- name: Workflow Runs
  tags:
  - Workflow Runs
  - Tasks
  - Form Field Values
  - Comments
  - Attachments
- name: Pages
  tags:
  - Pages
  - Page Revisions
  - Page Widgets
- name: Data Sets
  tags:
  - Data Sets
  - Data Set Incoming Webhooks
- name: Other
  tags:
  - Folders
  - One-Off Tasks
  - Users
  - Webhooks
  - File Uploads
  - Utilities
  - My Work
