SlashID Workflows API

The Workflows API from SlashID — 10 operation(s) for workflows.

OpenAPI Specification

slashid-workflows-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: SlashID Groups Workflows API
  description: "This is the [OpenAPI](https://www.openapis.org/) specification for communicating with the [SlashID](https://www.slashid.dev/) service.\n\nThe latest version of the OpenAPI API spec can be fetched from [our CDN](https://cdn.slashid.com/slashid-openapi-latest.yaml).\n\nWe recommend you use an [OpenAPI SDK generator](https://openapi.tools/#sdk) to create a client library in your programming language,\nbut you can also use this documentation to make HTTP calls directly.\n\n> **Compatibility note**: We aim to keep wire compatibility whenever we update the API, but parts of the specification may occasionally be refactored.\n  If you use an SDK generator, your code may require minor changes between versions.\n"
  version: '1.1'
  termsOfService: https://www.slashid.dev/terms-of-use/
  contact:
    name: API Support
    email: contact@slashid.dev
servers:
- url: https://api.slashid.com
  description: Production
- url: https://api.sandbox.slashid.com
  description: Sandbox
security:
- ApiKeyAuth: []
tags:
- name: Workflows
paths:
  /workflows:
    parameters:
    - $ref: '#/components/parameters/OrgIDHeader'
    post:
      operationId: PostWorkflows
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin
      tags:
      - Workflows
      summary: Create a new workflow
      description: Creates a new workflow for automated response actions
      requestBody:
        description: Workflow creation request
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowCreateRequest'
            examples:
              critical_detections_workflow:
                summary: Workflow for critical detections
                description: Create a workflow with just name and description. Actions and data input can be added via UPDATE endpoint.
                value:
                  name: Critical Detection Response
                  description: Automated response workflow for critical severity detections
      responses:
        '201':
          description: Workflow created successfully
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/APIResponseBase'
                - type: object
                  properties:
                    result:
                      $ref: '#/components/schemas/Workflow'
                  required:
                  - result
        '400':
          $ref: '#/components/responses/BadRequest'
        '409':
          $ref: '#/components/responses/Conflict'
    get:
      operationId: GetWorkflows
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin,member
      tags:
      - Workflows
      summary: List workflows
      description: Retrieve a list of workflows for the organization
      parameters:
      - name: status
        in: query
        description: Filter by workflow status
        schema:
          $ref: '#/components/schemas/WorkflowStatus'
      - name: limit
        in: query
        description: Maximum number of workflows to return
        schema:
          type: integer
          default: 50
          minimum: 1
          maximum: 100
      - name: offset
        in: query
        description: Offset for pagination
        schema:
          type: integer
          default: 0
          minimum: 0
      - name: sort
        in: query
        description: 'Sort parameter in format "field:order".

          Valid fields: created_at, updated_at, name.

          Valid orders: asc, desc.

          Example: "created_at:desc" (default)

          '
        schema:
          type: string
          example: created_at:desc
      - name: type
        in: query
        description: Filter by workflow data input type
        schema:
          $ref: '#/components/schemas/WorkflowDataInputType'
      responses:
        '200':
          description: List of workflows
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/APIResponseBase'
                - type: object
                  properties:
                    result:
                      type: object
                      properties:
                        workflows:
                          type: array
                          items:
                            $ref: '#/components/schemas/Workflow'
                      required:
                      - workflows
                  required:
                  - result
        '400':
          $ref: '#/components/responses/BadRequest'
  /workflows/{workflow_id}:
    parameters:
    - name: workflow_id
      in: path
      required: true
      description: Workflow identifier
      schema:
        type: string
    - $ref: '#/components/parameters/OrgIDHeader'
    get:
      operationId: GetWorkflowsWorkflowId
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin,member
      tags:
      - Workflows
      summary: Get workflow details
      description: 'Retrieve details of a specific workflow.

        When include_configuration=true, the response also includes the latest workflow configuration

        (data_input_config, actions, version, etc.).

        '
      parameters:
      - name: include_configuration
        in: query
        description: Include latest workflow configuration in response
        required: false
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Workflow details
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/APIResponseBase'
                - type: object
                  properties:
                    result:
                      oneOf:
                      - $ref: '#/components/schemas/Workflow'
                      - $ref: '#/components/schemas/WorkflowWithConfiguration'
                      discriminator:
                        propertyName: kind
                        mapping:
                          workflow: '#/components/schemas/Workflow'
                          workflow_with_configuration: '#/components/schemas/WorkflowWithConfiguration'
                  required:
                  - result
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: PatchWorkflowsWorkflowId
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin
      tags:
      - Workflows
      summary: Update workflow
      description: Update a workflow and create a new version
      requestBody:
        description: Workflow update request
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowUpdateRequest'
      responses:
        '200':
          description: Workflow updated successfully
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/APIResponseBase'
                - type: object
                  properties:
                    result:
                      $ref: '#/components/schemas/WorkflowWithConfiguration'
                  required:
                  - result
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: DeleteWorkflowsWorkflowId
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin
      tags:
      - Workflows
      summary: Delete workflow
      description: Soft delete a workflow (marks as deleted)
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '404':
          $ref: '#/components/responses/NotFound'
  /workflows/{workflow_id}/versions:
    parameters:
    - name: workflow_id
      in: path
      required: true
      description: Workflow identifier
      schema:
        type: string
    - $ref: '#/components/parameters/OrgIDHeader'
    get:
      operationId: GetWorkflowsWorkflowIdVersions
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin,member
      tags:
      - Workflows
      summary: List workflow versions
      description: Retrieve all versions of a workflow
      responses:
        '200':
          description: List of workflow versions
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/APIResponseBase'
                - type: object
                  properties:
                    result:
                      type: object
                      properties:
                        versions:
                          type: array
                          items:
                            $ref: '#/components/schemas/WorkflowConfiguration'
                      required:
                      - versions
                  required:
                  - result
        '404':
          $ref: '#/components/responses/NotFound'
  /workflows/{workflow_id}/versions/{version}:
    parameters:
    - name: workflow_id
      in: path
      required: true
      description: Workflow identifier
      schema:
        type: string
    - name: version
      in: path
      required: true
      description: Workflow version number
      schema:
        type: integer
        minimum: 1
    - $ref: '#/components/parameters/OrgIDHeader'
    get:
      operationId: GetWorkflowsWorkflowIdVersionsVersion
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin,member
      tags:
      - Workflows
      summary: Get specific workflow version
      description: Retrieve a specific version of a workflow
      responses:
        '200':
          description: Workflow version details
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/APIResponseBase'
                - type: object
                  properties:
                    result:
                      $ref: '#/components/schemas/WorkflowConfiguration'
                  required:
                  - result
        '404':
          $ref: '#/components/responses/NotFound'
    post:
      operationId: PostWorkflowsWorkflowIdVersionsVersionRestore
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin
      tags:
      - Workflows
      summary: Restore workflow version
      description: Restore a previous version of a workflow as the latest version
      responses:
        '200':
          description: Workflow version restored successfully
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/APIResponseBase'
                - type: object
                  properties:
                    result:
                      $ref: '#/components/schemas/WorkflowConfiguration'
                  required:
                  - result
        '404':
          $ref: '#/components/responses/NotFound'
  /workflows/{workflow_id}/activate:
    parameters:
    - name: workflow_id
      in: path
      required: true
      description: Workflow identifier
      schema:
        type: string
    - $ref: '#/components/parameters/OrgIDHeader'
    post:
      operationId: PostWorkflowsWorkflowIdActivate
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin
      tags:
      - Workflows
      summary: Activate workflow
      description: Activate a workflow to make it operational
      responses:
        '204':
          description: Workflow activated successfully
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
  /workflows/{workflow_id}/pause:
    parameters:
    - name: workflow_id
      in: path
      required: true
      description: Workflow identifier
      schema:
        type: string
    - $ref: '#/components/parameters/OrgIDHeader'
    post:
      operationId: PostWorkflowsWorkflowIdPause
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin
      tags:
      - Workflows
      summary: Pause workflow
      description: Pause an active workflow
      responses:
        '204':
          description: Workflow paused successfully
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
  /workflows/{workflow_id}/resume:
    parameters:
    - name: workflow_id
      in: path
      required: true
      description: Workflow identifier
      schema:
        type: string
    - $ref: '#/components/parameters/OrgIDHeader'
    post:
      operationId: PostWorkflowsWorkflowIdResume
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin
      tags:
      - Workflows
      summary: Resume workflow
      description: Resume a paused workflow
      responses:
        '204':
          description: Workflow resumed successfully
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
  /workflows/{workflow_id}/execute:
    parameters:
    - name: workflow_id
      in: path
      required: true
      description: Workflow identifier
      schema:
        type: string
    - $ref: '#/components/parameters/OrgIDHeader'
    post:
      operationId: PostWorkflowsWorkflowIdExecute
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin
      tags:
      - Workflows
      summary: Execute workflow
      description: Manually trigger workflow execution
      responses:
        '204':
          description: Workflow execution triggered successfully
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
  /workflows/{workflow_id}/scheduled-execute:
    parameters:
    - name: workflow_id
      in: path
      required: true
      description: Workflow identifier
      schema:
        type: string
    - $ref: '#/components/parameters/OrgIDHeader'
    post:
      operationId: PostWorkflowsWorkflowIdScheduledExecute
      tags:
      - Workflows
      summary: Internal endpoint for scheduled workflow execution
      description: 'Internal endpoint invoked by the workflow scheduler (GCP Cloud Scheduler in production, the docker-scheduler in dev) on each cron tick. Publishes a workflow execute event with trigger_source=scheduled. Not intended for external callers.

        '
      responses:
        '200':
          description: Tick accepted (or skipped if the workflow is not active)
          content:
            application/json:
              schema:
                type: object
                properties:
                  skipped:
                    type: string
                  status:
                    type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
  /workflows/cypher-preview:
    parameters:
    - $ref: '#/components/parameters/OrgIDHeader'
    post:
      operationId: PostWorkflowsCypherPreview
      tags:
      - Workflows
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin
      summary: Run a read-only Cypher query and return the first 50 rows
      description: 'Synchronous preview for the Query Workflows UI. Validates the query

        (same validator as scheduled runs), runs it against the caller''s org

        graph with a 10-second timeout and a hard 50-row cap. Read-only —

        write keywords are rejected. Not intended for batch use; use the

        scheduled-execute path for production reads.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowCypherPreviewRequest'
      responses:
        '200':
          description: Preview results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowCypherPreviewResponse'
        '400':
          description: Validation error (query empty, missing MATCH/RETURN, write keyword, etc.).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowCypherPreviewError'
        '504':
          description: Query exceeded the 10-second preview timeout.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowCypherPreviewError'
components:
  schemas:
    Neo4jTemplatePredicate:
      type: object
      required:
      - kind
      - template
      properties:
        kind:
          type: string
          enum:
          - neo4j_template
        template:
          type: string
        params:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ParamValue'
        expect:
          type: boolean
        count_operator:
          type: string
          enum:
          - gt
          - gte
          - lt
          - lte
          - eq
          - neq
        count_threshold:
          type: integer
          format: int64
    WorkflowUpdateRequest:
      type: object
      properties:
        name:
          type: string
          description: New workflow name
          minLength: 1
          maxLength: 255
        description:
          type: string
          description: New workflow description
          maxLength: 1000
        data_input_config:
          $ref: '#/components/schemas/WorkflowDataInputConfiguration'
          description: 'Updated data input configuration.

            If provided, creates a new version with new data retrieval settings.

            '
        actions:
          type: object
          description: 'Updated actions configuration. Map of action ID to action configuration.

            '
          additionalProperties:
            $ref: '#/components/schemas/WorkflowActionConfiguration'
        starting_actions:
          type: array
          description: 'IDs of actions to execute first after data input completes.

            Enables tree-based execution where only these actions start initially,

            and child actions are triggered via the children field.

            '
          items:
            type: string
    Predicate:
      oneOf:
      - $ref: '#/components/schemas/AndPredicate'
      - $ref: '#/components/schemas/OrPredicate'
      - $ref: '#/components/schemas/NotPredicate'
      - $ref: '#/components/schemas/ScimPredicate'
      - $ref: '#/components/schemas/PgQueryPredicate'
      - $ref: '#/components/schemas/PgTemplatePredicate'
      - $ref: '#/components/schemas/Neo4jQueryPredicate'
      - $ref: '#/components/schemas/Neo4jTemplatePredicate'
      - $ref: '#/components/schemas/EventCountOverWindowPredicate'
      discriminator:
        propertyName: kind
        mapping:
          and: '#/components/schemas/AndPredicate'
          or: '#/components/schemas/OrPredicate'
          not: '#/components/schemas/NotPredicate'
          scim: '#/components/schemas/ScimPredicate'
          pg_query: '#/components/schemas/PgQueryPredicate'
          pg_template: '#/components/schemas/PgTemplatePredicate'
          neo4j_query: '#/components/schemas/Neo4jQueryPredicate'
          neo4j_template: '#/components/schemas/Neo4jTemplatePredicate'
          event_count_over_window: '#/components/schemas/EventCountOverWindowPredicate'
    AndPredicate:
      type: object
      required:
      - kind
      - predicates
      properties:
        kind:
          type: string
          enum:
          - and
        predicates:
          type: array
          items:
            $ref: '#/components/schemas/Predicate'
          minItems: 1
    NotificationActionConfiguration:
      allOf:
      - $ref: '#/components/schemas/BaseActionConfiguration'
      - type: object
        required:
        - notification_type
        - recipients
        properties:
          notification_type:
            type: string
            enum:
            - email
            - slack
            - teams
            - pagerduty
            - sms
            description: Type of notification to send
          recipients:
            type: array
            items:
              type: string
            description: Notification recipients
            example:
            - security-team@example.com
            - '#security-alerts'
          subject_template:
            type: string
            description: Template for notification subject
          message_template:
            type: string
            description: Template for notification message
          severity:
            type: string
            enum:
            - info
            - warning
            - error
            - critical
            description: Notification severity level
            default: warning
          include_data:
            type: boolean
            description: Whether to include detection data in notification
            default: true
    WebhookActionConfiguration:
      allOf:
      - $ref: '#/components/schemas/BaseActionConfiguration'
      - type: object
        required:
        - url
        - method
        properties:
          url:
            type: string
            format: uri
            description: Webhook endpoint URL
          method:
            type: string
            enum:
            - POST
            - PUT
            - PATCH
            description: HTTP method to use
            default: POST
          headers:
            type: object
            additionalProperties:
              type: string
            description: Custom headers to send
          body_template:
            type: string
            description: Template for request body
          timeout_seconds:
            type: integer
            description: Request timeout in seconds
            default: 30
            minimum: 1
            maximum: 300
          retry_config:
            type: object
            properties:
              max_retries:
                type: integer
                default: 3
                minimum: 0
                maximum: 10
              backoff_seconds:
                type: integer
                default: 5
                minimum: 1
    RemediationTargetType:
      type: string
      enum:
      - user
      - session
      - credential
      - api_key
      - group_membership
      - role
      - permission
      - entity
      - group
      description: Target of the remediation action
    WorkflowDataInputUarFindingConfiguration:
      type: object
      required:
      - type
      description: 'Filters which UarFindingV1 events this workflow should run on.

        In v1 the only emitted trigger is `manual`; other trigger values

        (decision_revoked, decision_effective, level_completed,

        campaign_completed) are accepted for forward-compat with the

        auto-trigger work but never match an event until those triggers

        ship. Backed by

        backend/modules/workflows/entities/workflow_data_input_uar_finding_configuration.go.

        '
      properties:
        type:
          type: string
          enum:
          - uar_finding
          description: Data input type discriminator
        triggers:
          type: array
          items:
            type: string
          description: 'UarFindingV1 trigger reasons that fire this workflow (ANY

            match). Defaults to `["manual"]` when empty.

            '
        campaign_ids:
          type: array
          items:
            type: string
            format: uuid
          description: Filter by specific campaign IDs. Empty matches all.
        campaign_template_ids:
          type: array
          items:
            type: string
            format: uuid
          description: Filter by campaign template IDs. Empty matches all.
        campaign_types:
          type: array
          items:
            type: string
          description: 'Filter by campaign type (e.g. `user`, `resource`,

            `non_human_identity`). Empty matches all.

            '
        classification_tags:
          type: array
          items:
            type: string
          description: Filter by classification tags on the finding. Empty matches all.
        outcomes:
          type: array
          items:
            type: string
          description: Filter by reviewer decision outcome (e.g. `approve`, `revoke`). Empty matches all.
        only_effective:
          type: boolean
          default: false
          description: 'Match only when `effective_outcome == outcome` — the decision

            survived multi-tier escalation rather than being overridden.

            '
        min_level:
          type: integer
          minimum: 0
          description: Filter by decision level >= this value.
        only_high_privilege:
          type: boolean
          default: false
          description: Restrict to findings flagged as high-privilege.
        user_source_types:
          type: array
          items:
            type: string
          description: Filter by user identity source type. Empty matches all.
        user_entity_types:
          type: array
          items:
            type: string
          description: Filter by user entity type. Empty matches all.
        asset_source_types:
          type: array
          items:
            type: string
          description: Filter by asset source type. Empty matches all.
        asset_entity_types:
          type: array
          items:
            type: string
          description: Filter by asset entity type. Empty matches all.
        granting_entity_types:
          type: array
          items:
            type: string
          description: Filter by granting entity type (e.g. role, group). Empty matches all.
        scim_filter:
          type: string
          description: 'Optional SCIM-style filter over the flattened finding payload,

            applied after the structured filters above.

            '
    WorkflowActionType:
      type: string
      enum:
      - remediation
      - ticket
      - data_sink
      - webhook
      - notification
      - condition
      description: Type of workflow action
    Workflow:
      type: object
      required:
      - kind
      - id
      - org_id
      - name
      - status
      - created_by
      - created_at
      - updated_by
      - updated_at
      - execution_count
      - success_count
      - failure_count
      - latest_configuration_version
      properties:
        kind:
          type: string
          enum:
          - workflow
          - workflow_with_configuration
          description: 'Discriminator for the GET /workflows/{id} response variant.

            `workflow` is returned when `include_configuration=false`;

            `workflow_with_configuration` when the latest version is bundled

            into the response. The enum lists both values intentionally so

            the schema composition `WorkflowWithConfiguration = allOf

            [Workflow, WorkflowConfiguration]` doesn''t produce an

            unsatisfiable enum constraint; the discriminator on the

            endpoint''s `oneOf` does the runtime dispatch. Required so the

            typescript-fetch generator emits switch-based dispatch (needed

            since openapi-generator-cli v7 — see PR #5928) instead of

            order-sensitive `instanceOf` checks that silently drop the

            configuration fields when both schemas overlap.

            '
        id:
          type: string
          description: Unique workflow identifier
        org_id:
          type: string
          description: Organization ID
        name:
          type: string
          description: Workflow name
          minLength: 1
          maxLength: 255
        description:
          type: string
          description: Workflow description
          maxLength: 1000
        status:
          $ref: '#/components/schemas/WorkflowStatus'
        created_by:
          type: string
          description: User ID who created the workflow
        created_at:
          type: string
          format: date-time
          description: Workflow creation timestamp
        updated_by:
          type: string
          description: User ID who last updated the workflow
        updated_at:
          type: string
          format: date-time
          description: Last update timestamp
        activated_at:
          type: string
          format: date-time
          description: When workflow was first activated
        paused_at:
          type: string
          format: date-time
          description: When workflow was paused
        last_executed_at:
          type: string
          format: date-time
          description: Last execution timestamp
        execution_count:
          type: integer
          description: Total execution count
          minimum: 0
        success_count:
          type: integer
          description: Successful execution count
          minimum: 0
        failure_count:
          type: integer
          description: Failed execution count
          minimum: 0
        latest_configuration_id:
          type: string
          description: ID of the latest configuration version
        latest_configuration_version:
          type: integer
          description: Latest configuration version number
          minimum: 0
    WorkflowActionConfiguration:
      oneOf:
      - $ref: '#/components/schemas/RemediationActionConfiguration'
      - $ref: '#/components/schemas/TicketActionConfiguration'
      - $ref: '#/components/schemas/DataSinkActionConfiguration'
      - $ref: '#/components/schemas/WebhookActionConfiguration'
      - $ref: '#/components/schemas/NotificationActionConfiguration'
      - $ref: '#/components/schemas/ConditionActionConfiguration'
      discriminator:
        propertyName: type
        mapping:
          remediation: '#/components/schemas/RemediationActionConfiguration'
          ticket: '#/components/schemas/TicketActionConfiguration'
          data_sink: '#/components/schemas/DataSinkActionConfiguration'
          webhook: '#/components/schemas/WebhookActionConfiguration'
          notification: '#/components/schemas/NotificationActionConfiguration'
          condition: '#/components/schemas/ConditionActionConfiguration'
    ParamValue:
      type: object
      description: Exactly one of literal or path must be set.
      properties:
        literal: {}
        path:
          type: string
          description: JSONPath expression resolved against the WorkflowDataItem at evaluation time.
    OrPredicate:
      type: object
      required:
      - kind
      - predicates
      properties:
        kind:
          type: string
          enum:
          - or
        predicates:
          type: array
          items:
            $ref: '#/components/schemas/Predicate'
          minItems: 1
    APIResponseBase:
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/APIMeta'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/APIResponseError'
    EventCountSource:
      oneOf:
      - $ref: '#/components/schemas/PgDetectionSource'
      - $ref: '#/components/schemas/BigQueryAnalyticsSource'
      discriminator:
        propertyName: kind
        mapping:
          pg_detection: '#/components/schemas/PgDetectionSource'
          bigquery_analytics: '#/components/schemas/BigQueryAnalyticsSource'
    WorkflowDataInputConfiguration:
      oneOf:
      - $ref: '#/components/schemas/WorkflowDataInputDetectionConfiguration'
      - $ref: '#/components/schemas/WorkflowDataInputLifecycleConfiguration'
      - $ref: '#/components/schemas/WorkflowDataInputUarFindingConfiguration'
      - $ref: '#/components/schemas/WorkflowDataInputCypherConfiguration'
      discriminator:
        propertyName: type
        mapping:
          detection: '#/components/schemas/WorkflowDataInputDetectionConfiguration'
          lifecycle: '#/components/schemas/WorkflowDataInputLifecycleConfiguration'
          uar_finding: '#/components/schemas/WorkflowDataInputUarFindingConfiguration'
          cypher_query: '#/components/schemas/WorkflowDataInputCypherConfiguration'
    APIPagination:
      type: object
      required:
      - limit
      - offset
      - total_count
      properties:
        limit:
          type: integer
        offset:
          type: integer
        total_count:
          type: i

# --- truncated at 32 KB (54 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/slashid/refs/heads/main/openapi/slashid-workflows-api-openapi.yml