openapi: 3.1.0
info:
  description: Complete API reference for Flowker workflow orchestration services including catalog management, workflow definitions, executor configurations, provider configurations, and workflow executions.
  title: Flowker API
  version: 1.4.0
servers:
  - url: https://flowker.sandbox.lerian.net
tags:
  - name: Catalog API
    description: Browse built-in providers, executors, and triggers available in the Flowker catalog.
  - name: Workflows API
    description: Create, update, activate, deactivate, clone, and delete workflow definitions.
  - name: Executions API
    description: Start workflow executions and track their status and results.
  - name: Executor Configurations API
    description: List, inspect, update, and delete the executor configuration records a deployment holds.
  - name: Provider Configurations API
    description: Create, update, enable, and disable the provider configurations that workflow nodes call through.
  - name: Dashboard API
    description: Retrieve aggregated summaries of workflows and executions for operational dashboards.
  - name: Webhooks API
    description: Receive webhook callbacks from external systems to trigger workflow executions.
  - name: Schedule API
    description: Inspect a workflow's upcoming, skipped, and parked scheduled occurrences, and run or discard the parked ones.
  - name: Schema Registry API
    description: Publish global OpenAPI specification versions for native services and pin the version each tenant resolves against.
  - name: OpenAPI Schemas API
    description: Upload, inspect, and delete the tenant's external OpenAPI schemas, and derive the contract of a single operation.
  - name: XSD Schemas API
    description: Upload, inspect, and delete the tenant's XSD schemas used to validate XML webhook payloads.
paths:
  /v1/catalog/executors:
    get:
      description: Use this endpoint to retrieve all built-in executors registered in the catalog.
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  items:
                    items:
                      $ref: '#/components/schemas/CatalogExecutorSummary'
                    type: array
                required:
                  - items
                type: object
          description: Indicates that the request was successful and the response contains the requested data.
      operationId: listCatalogExecutors
      summary: List Catalog Executors
      tags:
        - Catalog API
      x-mint:
        href: /pt/reference/products/flowker/list-catalog-executors
  /v1/catalog/executors/{id}:
    get:
      description: Use this endpoint to retrieve the metadata and JSON Schema of a specific catalog executor.
      parameters:
        - description: Unique identifier of the catalog executor.
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogExecutorDetail'
          description: Indicates that the request was successful and the response contains the requested data.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
      operationId: getCatalogExecutor
      summary: Get a Catalog Executor
      tags:
        - Catalog API
      x-mint:
        href: /pt/reference/products/flowker/get-catalog-executor
  /v1/catalog/executors/{id}/validate:
    post:
      description: Use this endpoint to check a workflow node's configuration against the JSON Schema of the catalog executor it invokes. The check is structural — it never calls the external service.
      parameters:
        - description: Unique identifier of the catalog executor.
          in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CatalogValidationRequest'
        description: Request body containing the configuration to validate.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogValidationResponse'
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
      operationId: validateExecutorConfig
      summary: Validate a Node Configuration
      tags:
        - Catalog API
      x-codegen-request-body-name: request
      x-mint:
        href: /pt/reference/products/flowker/validate-executor-config
  /v1/catalog/providers:
    get:
      description: Use this endpoint to retrieve all registered providers from the catalog.
      parameters:
        - description: "Filter by provider type: `native` or `external`."
          in: query
          name: type
          schema:
            enum:
              - native
              - external
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  items:
                    items:
                      $ref: '#/components/schemas/CatalogProviderSummary'
                    type: array
                required:
                  - items
                type: object
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the `type` query parameter is not `native` or `external`.
      operationId: listCatalogProviders
      summary: List Catalog Providers
      tags:
        - Catalog API
      x-mint:
        href: /pt/reference/products/flowker/list-catalog-providers
  /v1/catalog/providers/{id}:
    get:
      description: Use this endpoint to retrieve the metadata and JSON Schema of a specific catalog provider.
      parameters:
        - description: Unique identifier of the catalog provider.
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogProviderDetail'
          description: Indicates that the request was successful and the response contains the requested data.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
      operationId: getCatalogProvider
      summary: Get a Catalog Provider
      tags:
        - Catalog API
      x-mint:
        href: /pt/reference/products/flowker/get-catalog-provider
  /v1/catalog/providers/{id}/executors:
    get:
      description: Use this endpoint to retrieve all executors that belong to a specific provider.
      parameters:
        - description: Unique identifier of the catalog provider.
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  items:
                    items:
                      $ref: '#/components/schemas/CatalogExecutorSummary'
                    type: array
                required:
                  - items
                type: object
          description: Indicates that the request was successful and the response contains the requested data.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
      operationId: listExecutorsByProvider
      summary: List Executors by Provider
      tags:
        - Catalog API
      x-mint:
        href: /pt/reference/products/flowker/list-executors-by-provider
  /v1/catalog/triggers:
    get:
      description: Use this endpoint to retrieve all built-in triggers registered in the catalog.
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  items:
                    items:
                      $ref: '#/components/schemas/CatalogTriggerSummary'
                    type: array
                required:
                  - items
                type: object
          description: Indicates that the request was successful and the response contains the requested data.
      operationId: listCatalogTriggers
      summary: List Catalog Triggers
      tags:
        - Catalog API
      x-mint:
        href: /pt/reference/products/flowker/list-catalog-triggers
  /v1/catalog/triggers/{id}:
    get:
      description: Use this endpoint to retrieve the metadata and JSON Schema of a specific catalog trigger.
      parameters:
        - description: Unique identifier of the catalog trigger.
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogTriggerDetail'
          description: Indicates that the request was successful and the response contains the requested data.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
      operationId: getCatalogTrigger
      summary: Get a Catalog Trigger
      tags:
        - Catalog API
      x-mint:
        href: /pt/reference/products/flowker/get-catalog-trigger
  /v1/catalog/templates:
    get:
      description: Use this endpoint to retrieve all workflow templates registered in the catalog.
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  items:
                    items:
                      $ref: '#/components/schemas/CatalogTemplateSummary'
                    type: array
                required:
                  - items
                type: object
          description: Indicates that the request was successful and the response contains the requested data.
      operationId: listCatalogTemplates
      summary: List Catalog Templates
      tags:
        - Catalog API
      x-mint:
        href: /pt/reference/products/flowker/list-catalog-templates
  /v1/catalog/templates/{id}:
    get:
      description: Use this endpoint to retrieve the metadata and parameter JSON Schema of a specific catalog template. If the template references provider configurations, the schema is dynamically enriched with active provider configuration options.
      parameters:
        - description: Unique identifier of the catalog template.
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogTemplateDetail'
          description: Indicates that the request was successful and the response contains the requested data.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
      operationId: getCatalogTemplate
      summary: Get a Catalog Template
      tags:
        - Catalog API
      x-mint:
        href: /pt/reference/products/flowker/get-catalog-template
  /v1/catalog/templates/{id}/validate:
    post:
      description: Use this endpoint to validate template parameters against the template's JSON Schema.
      parameters:
        - description: Unique identifier of the catalog template.
          in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CatalogTemplateValidationRequest'
        description: Request body containing the parameters to validate.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogValidationResponse'
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
      operationId: validateCatalogTemplateParams
      summary: Validate Catalog Template Parameters
      tags:
        - Catalog API
      x-codegen-request-body-name: request
      x-mint:
        href: /pt/reference/products/flowker/validate-catalog-template-params
  /v1/dashboards/workflows/summary:
    get:
      description: Use this endpoint to retrieve an aggregated summary of workflows, including totals and breakdowns by status.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowSummaryOutput'
          description: Indicates that the request was successful and the response contains the requested data.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: getDashboardWorkflowSummary
      summary: Get Dashboard Workflow Summary
      tags:
        - Dashboard API
      x-mint:
        href: /pt/reference/products/flowker/get-dashboard-workflow-summary
  /v1/dashboards/executions:
    get:
      description: Use this endpoint to retrieve an aggregated summary of workflow executions. You can optionally filter by time range and status.
      parameters:
        - description: Start of the time range filter (RFC 3339 format).
          in: query
          name: startTime
          schema:
            format: date-time
            type: string
        - description: End of the time range filter (RFC 3339 format).
          in: query
          name: endTime
          schema:
            format: date-time
            type: string
        - description: Filter results by execution status.
          in: query
          name: status
          schema:
            enum:
              - pending
              - running
              - completed
              - failed
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionSummaryOutput'
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: getDashboardExecutionSummary
      summary: Get Dashboard Execution Summary
      tags:
        - Dashboard API
      x-mint:
        href: /pt/reference/products/flowker/get-dashboard-execution-summary
  /v1/webhooks/{path}:
    delete:
      description: Receives a webhook callback via HTTP DELETE and triggers the associated workflow execution. The path is dynamically resolved against the webhook registry — each workflow can register its own webhook path. The runtime accepts GET, POST, PUT, PATCH, and DELETE on this route, as well as nested paths with multiple segments. A `sync` route can return a status other than `200`. The `passthrough` response view can relay the provider's status and body, and a `set_output` node's `responseStatusCode` can set the status.
      parameters:
        - description: Webhook path registered by a workflow. Supports nested paths with multiple segments at runtime. Forward slashes within the path must be percent-encoded as `%2F` per RFC 3986/OpenAPI 3.1 (for example, use `orders%2Fpaid` for `orders/paid`).
          in: path
          name: path
          required: true
          schema:
            type: string
        - description: Optional idempotency key to prevent duplicate executions from the same webhook delivery.
          in: header
          name: Idempotency-Key
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
              description: Webhook payload from the external system. Flowker injects webhook metadata (`_webhook` key with method, path, headers, query params, and remote IP) before passing to the workflow.
          application/xml:
            schema:
              type: object
              additionalProperties: true
              description: Webhook payload from the external system, encoded as XML when the trigger runs an XSD or OpenAPI XML contract.
        description: Webhook payload. Maximum size is 1 MB.
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionResultsOutput'
            application/xml:
              schema:
                $ref: '#/components/schemas/ExecutionResultsOutput'
          description: The workflow finished inside the synchronous window. The body carries the final business results. An XML route returns the equivalent `<results>` document.
        "202":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionCreateOutput'
            application/xml:
              schema:
                $ref: '#/components/schemas/ExecutionCreateOutput'
          description: Execution accepted. The body carries the receipt for an asynchronous run, or for a synchronous run that exceeded its wait window. An XML route returns the equivalent `<execution>` document.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Indicates that the request body is malformed or could not be parsed.
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Unauthorized. The request carries no valid Bearer token, or the caller lacks the `execute` permission on the `webhooks` resource.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: No webhook registered for this path and HTTP method, or the associated workflow was not found.
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Duplicate idempotency key — this webhook delivery was already processed.
        "413":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Webhook payload exceeds the 1 MB size limit.
        "422":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: The associated workflow is not active, or the payload does not satisfy the trigger's input contract.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
        "503":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: The Access Manager or tenant resolution is temporarily unavailable, or Flowker cannot check the payload against the trigger's input contract.
      operationId: triggerWebhookDelete
      summary: Trigger a Webhook (DELETE)
      tags:
        - Webhooks API
      x-mint:
        href: /pt/reference/products/flowker/trigger-webhook-delete
    get:
      description: Receives a webhook callback via HTTP GET and triggers the associated workflow execution. The path is dynamically resolved against the webhook registry — each workflow can register its own webhook path. The runtime accepts GET, POST, PUT, PATCH, and DELETE on this route, as well as nested paths with multiple segments. A `sync` route can return a status other than `200`. The `passthrough` response view can relay the provider's status and body, and a `set_output` node's `responseStatusCode` can set the status.
      parameters:
        - description: Webhook path registered by a workflow. Supports nested paths with multiple segments at runtime. Forward slashes within the path must be percent-encoded as `%2F` per RFC 3986/OpenAPI 3.1 (for example, use `orders%2Fpaid` for `orders/paid`).
          in: path
          name: path
          required: true
          schema:
            type: string
        - description: Optional idempotency key to prevent duplicate executions from the same webhook delivery.
          in: header
          name: Idempotency-Key
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionResultsOutput'
            application/xml:
              schema:
                $ref: '#/components/schemas/ExecutionResultsOutput'
          description: The workflow finished inside the synchronous window. The body carries the final business results. An XML route returns the equivalent `<results>` document.
        "202":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionCreateOutput'
            application/xml:
              schema:
                $ref: '#/components/schemas/ExecutionCreateOutput'
          description: Execution accepted. The body carries the receipt for an asynchronous run, or for a synchronous run that exceeded its wait window. An XML route returns the equivalent `<execution>` document.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Indicates that the request is malformed or could not be parsed.
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Unauthorized. The request carries no valid Bearer token, or the caller lacks the `execute` permission on the `webhooks` resource.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: No webhook registered for this path and HTTP method, or the associated workflow was not found.
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Duplicate idempotency key — this webhook delivery was already processed.
        "422":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: The associated workflow is not active, or the payload does not satisfy the trigger's input contract.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
        "503":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: The Access Manager or tenant resolution is temporarily unavailable, or Flowker cannot check the payload against the trigger's input contract.
      operationId: triggerWebhookGet
      summary: Trigger a Webhook (GET)
      tags:
        - Webhooks API
      x-mint:
        href: /pt/reference/products/flowker/trigger-webhook-get
    patch:
      description: Receives a webhook callback via HTTP PATCH and triggers the associated workflow execution. The path is dynamically resolved against the webhook registry — each workflow can register its own webhook path. The runtime accepts GET, POST, PUT, PATCH, and DELETE on this route, as well as nested paths with multiple segments. A `sync` route can return a status other than `200`. The `passthrough` response view can relay the provider's status and body, and a `set_output` node's `responseStatusCode` can set the status.
      parameters:
        - description: Webhook path registered by a workflow. Supports nested paths with multiple segments at runtime. Forward slashes within the path must be percent-encoded as `%2F` per RFC 3986/OpenAPI 3.1 (for example, use `orders%2Fpaid` for `orders/paid`).
          in: path
          name: path
          required: true
          schema:
            type: string
        - description: Optional idempotency key to prevent duplicate executions from the same webhook delivery.
          in: header
          name: Idempotency-Key
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
              description: Webhook payload from the external system. Flowker injects webhook metadata (`_webhook` key with method, path, headers, query params, and remote IP) before passing to the workflow.
          application/xml:
            schema:
              type: object
              additionalProperties: true
              description: Webhook payload from the external system, encoded as XML when the trigger runs an XSD or OpenAPI XML contract.
        description: Webhook payload. Maximum size is 1 MB.
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionResultsOutput'
            application/xml:
              schema:
                $ref: '#/components/schemas/ExecutionResultsOutput'
          description: The workflow finished inside the synchronous window. The body carries the final business results. An XML route returns the equivalent `<results>` document.
        "202":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionCreateOutput'
            application/xml:
              schema:
                $ref: '#/components/schemas/ExecutionCreateOutput'
          description: Execution accepted. The body carries the receipt for an asynchronous run, or for a synchronous run that exceeded its wait window. An XML route returns the equivalent `<execution>` document.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Indicates that the request body is malformed or could not be parsed.
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Unauthorized. The request carries no valid Bearer token, or the caller lacks the `execute` permission on the `webhooks` resource.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: No webhook registered for this path and HTTP method, or the associated workflow was not found.
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Duplicate idempotency key — this webhook delivery was already processed.
        "413":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Webhook payload exceeds the 1 MB size limit.
        "422":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: The associated workflow is not active, or the payload does not satisfy the trigger's input contract.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
        "503":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: The Access Manager or tenant resolution is temporarily unavailable, or Flowker cannot check the payload against the trigger's input contract.
      operationId: triggerWebhookPatch
      summary: Trigger a Webhook (PATCH)
      tags:
        - Webhooks API
      x-mint:
        href: /pt/reference/products/flowker/trigger-webhook-patch
    post:
      description: Receives a webhook callback and triggers the associated workflow execution. The path is dynamically resolved against the webhook registry — each workflow can register its own webhook path. At runtime, GET, PUT, DELETE, and PATCH methods are also accepted, as well as nested paths with multiple segments. A `sync` route can return a status other than `200`. The `passthrough` response view can relay the provider's status and body, and a `set_output` node's `responseStatusCode` can set the status.
      parameters:
        - description: Webhook path registered by a workflow. Supports nested paths with multiple segments at runtime. Forward slashes within the path must be percent-encoded as `%2F` per RFC 3986/OpenAPI 3.1 (for example, use `orders%2Fpaid` for `orders/paid`).
          in: path
          name: path
          required: true
          schema:
            type: string
        - description: Optional idempotency key to prevent duplicate executions from the same webhook delivery.
          in: header
          name: Idempotency-Key
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
              description: Webhook payload from the external system. Flowker injects webhook metadata (`_webhook` key with method, path, headers, query params, and remote IP) before passing to the workflow.
          application/xml:
            schema:
              type: object
              additionalProperties: true
              description: Webhook payload from the external system, encoded as XML when the trigger runs an XSD or OpenAPI XML contract.
        description: Webhook payload. Maximum size is 1 MB.
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionResultsOutput'
            application/xml:
              schema:
                $ref: '#/components/schemas/ExecutionResultsOutput'
          description: The workflow finished inside the synchronous window. The body carries the final business results. An XML route returns the equivalent `<results>` document.
        "202":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionCreateOutput'
            application/xml:
              schema:
                $ref: '#/components/schemas/ExecutionCreateOutput'
          description: Execution accepted. The body carries the receipt for an asynchronous run, or for a synchronous run that exceeded its wait window. An XML route returns the equivalent `<execution>` document.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Indicates that the request body is malformed or could not be parsed.
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Unauthorized. The request carries no valid Bearer token, or the caller lacks the `execute` permission on the `webhooks` resource.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: No webhook registered for this path and HTTP method, or the associated workflow was not found.
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Duplicate idempotency key — this webhook delivery was already processed.
        "413":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Webhook payload exceeds the 1 MB size limit.
        "422":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: The associated workflow is not active, or the payload does not satisfy the trigger's input contract.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
        "503":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: The Access Manager or tenant resolution is temporarily unavailable, or Flowker cannot check the payload against the trigger's input contract.
      operationId: triggerWebhook
      summary: Trigger a Webhook
      tags:
        - Webhooks API
      x-mint:
        href: /pt/reference/products/flowker/trigger-webhook
    put:
      description: Receives a webhook callback via HTTP PUT and triggers the associated workflow execution. The path is dynamically resolved against the webhook registry — each workflow can register its own webhook path. The runtime accepts GET, POST, PUT, PATCH, and DELETE on this route, as well as nested paths with multiple segments. A `sync` route can return a status other than `200`. The `passthrough` response view can relay the provider's status and body, and a `set_output` node's `responseStatusCode` can set the status.
      parameters:
        - description: Webhook path registered by a workflow. Supports nested paths with multiple segments at runtime. Forward slashes within the path must be percent-encoded as `%2F` per RFC 3986/OpenAPI 3.1 (for example, use `orders%2Fpaid` for `orders/paid`).
          in: path
          name: path
          required: true
          schema:
            type: string
        - description: Optional idempotency key to prevent duplicate executions from the same webhook delivery.
          in: header
          name: Idempotency-Key
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
              description: Webhook payload from the external system. Flowker injects webhook metadata (`_webhook` key with method, path, headers, query params, and remote IP) before passing to the workflow.
          application/xml:
            schema:
              type: object
              additionalProperties: true
              description: Webhook payload from the external system, encoded as XML when the trigger runs an XSD or OpenAPI XML contract.
        description: Webhook payload. Maximum size is 1 MB.
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionResultsOutput'
            application/xml:
              schema:
                $ref: '#/components/schemas/ExecutionResultsOutput'
          description: The workflow finished inside the synchronous window. The body carries the final business results. An XML route returns the equivalent `<results>` document.
        "202":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionCreateOutput'
            application/xml:
              schema:
                $ref: '#/components/schemas/ExecutionCreateOutput'
          description: Execution accepted. The body carries the receipt for an asynchronous run, or for a synchronous run that exceeded its wait window. An XML route returns the equivalent `<execution>` document.
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Indicates that the request body is malformed or could not be parsed.
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Unauthorized. The request carries no valid Bearer token, or the caller lacks the `execute` permission on the `webhooks` resource.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: No webhook registered for this path and HTTP method, or the associated workflow was not found.
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Duplicate idempotency key — this webhook delivery was already processed.
        "413":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Webhook payload exceeds the 1 MB size limit.
        "422":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: The associated workflow is not active, or the payload does not satisfy the trigger's input contract.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
        "503":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: The Access Manager or tenant resolution is temporarily unavailable, or Flowker cannot check the payload against the trigger's input contract.
      operationId: triggerWebhookPut
      summary: Trigger a Webhook (PUT)
      tags:
        - Webhooks API
      x-mint:
        href: /pt/reference/products/flowker/trigger-webhook-put
  /v1/hub/webhooks/{path}:
    post:
      description: "Use this endpoint as the `endpoint` of a Streaming Hub webhook subscription. It triggers the same workflow execution as `POST /v1/webhooks/{path}`. Only the authentication is different: this route takes no Bearer token. Flowker verifies an HMAC-v1 signature over the raw request body with the tenant's inbound signing secret, which the deployment keeps in its secrets backend. The signing secret of the subscription and the stored secret must be the same value. Flowker refuses a legacy `sha256=` (v0) signature, because v0 has no replay protection. Flowker serves this route only when the deployment turns on the signed Streaming Hub ingress. It is off by default. A `sync` route can return a status other than `200`. The `passthrough` response view can relay the provider's status and body, and a `set_output` node's `responseStatusCode` can set the status."
      parameters:
        - description: Webhook path registered by a workflow. Supports nested paths with multiple segments at runtime. Forward slashes within the path must be percent-encoded as `%2F` per RFC 3986/OpenAPI 3.1 (for example, use `orders%2Fpaid` for `orders/paid`).
          in: path
          name: path
          required: true
          schema:
            type: string
        - description: "HMAC-v1 signature over the raw body, in the form `v1,sha256=<hex>`. The hex value is the HMAC-SHA256 of `v1:<X-Webhook-Timestamp>.<raw body>`, keyed with the tenant's inbound signing secret. During a signing-secret rotation, the header repeats once for each active secret, two values at most. Flowker accepts the delivery when one value verifies."
          in: header
          name: X-Webhook-Signature
          required: true
          schema:
            type: string
        - description: Unix time in seconds, the same value the signature covers. Flowker rejects a timestamp outside the freshness window, five minutes by default, even when the signature is correct.
          in: header
          name: X-Webhook-Timestamp
          required: true
          schema:
            type: string
        - description: Tenant that owns the delivery. Flowker uses it to select the signing secret to check. A valid signature confirms it.
          in: header
          name: X-Lerian-Tenant-Id
          required: true
          schema:
            type: string
        - description: Streaming Hub event ID. Flowker uses it as the replay key for each workflow. A delivery that repeats an event ID returns the first execution and does not run the workflow again.
          in: header
          name: X-Lerian-Event-Id
          schema:
            type: string
        - description: Delivery-attempt ID, recorded for correlation. It changes on every retry of the same event.
          in: header
          name: X-Lerian-Delivery-Id
          schema:
            type: string
        - description: Optional idempotency key. A repeated key returns the prior execution. When the delivery carries `X-Lerian-Event-Id`, the event ID takes precedence.
          in: header
          name: Idempotency-Key
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
              description: Event payload. When the webhook trigger defines an input contract, Flowker validates the payload against it.
        description: The delivered event, byte for byte. The signature covers these bytes, so they must not be re-encoded in transit. Maximum size is 1 MB.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionResultsOutput'
          description: The workflow finished inside the synchronous window. The body carries the final business results.
        "202":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionCreateOutput'
          description: Execution accepted. The body carries the receipt for an asynchronous run, or for a synchronous run that exceeded its wait window.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: A required delivery header is missing or malformed, the delivery carries more than two signature values, or the body could not be parsed.
        "401":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Flowker could not prove that the delivery comes from Streaming Hub. The response is the same for an unknown or unprovisioned tenant, a wrong secret, a stale timestamp, and a legacy v0 signature, so it does not show which tenants exist or which part of the credential is wrong.
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: No webhook registered for this path and HTTP method, or the associated workflow was not found.
        "413":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: The delivery body exceeds the 1 MB limit. Flowker refuses it before it checks the signature.
        "422":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: The associated workflow is not active, or the payload does not satisfy the trigger's input contract.
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
        "503":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: The signing-secret store or the tenant database is temporarily unavailable, or Flowker cannot check the payload against the trigger's input contract.
      operationId: triggerSignedHubWebhook
      security: []
      summary: Trigger a Webhook from Streaming Hub
      tags:
        - Webhooks API
      x-mint:
        href: /pt/reference/products/flowker/trigger-webhook-from-streaming-hub
  /v1/executions:
    get:
      description: Use this endpoint to retrieve a paginated list of workflow executions. You can filter results by workflow ID or status.
      parameters:
        - description: Filter results by a specific workflow ID.
          in: query
          name: workflowId
          schema:
            format: uuid
            type: string
        - description: Filter results by status.
          in: query
          name: status
          schema:
            enum:
              - pending
              - running
              - completed
              - failed
            type: string
        - description: Maximum number of items to return per page. Defaults to 10. Must be between 1 and 100.
          in: query
          name: limit
          schema:
            default: 10
            maximum: 100
            minimum: 1
            type: integer
        - description: Cursor for pagination. Use the value from the `nextCursor` field in a previous response to retrieve the next page.
          in: query
          name: cursor
          schema:
            type: string
        - description: Field to sort results by.
          in: query
          name: sortBy
          schema:
            default: startedAt
            enum:
              - startedAt
              - completedAt
            type: string
        - description: Sort direction. Use `ASC` for ascending or `DESC` for descending.
          in: query
          name: sortOrder
          schema:
            default: DESC
            enum:
              - ASC
              - DESC
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionListOutput'
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that a query parameter has the wrong type, for example a `limit` that is not an integer.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: listExecutions
      summary: List Executions
      tags:
        - Executions API
      x-mint:
        href: /pt/reference/products/flowker/list-executions
  /v1/executions/{id}:
    get:
      description: Use this endpoint to retrieve the current status of a specific workflow execution.
      parameters:
        - description: Unique identifier of the execution.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionStatusOutput'
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: getExecutionStatus
      summary: Get an Execution Status
      tags:
        - Executions API
      x-mint:
        href: /pt/reference/products/flowker/get-execution-status
  /v1/executions/{id}/results:
    get:
      description: Use this endpoint to retrieve the results of a completed workflow execution. The execution must be in a terminal state.
      parameters:
        - description: Unique identifier of the execution.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionResultsOutput'
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the execution is still in progress and results are not yet available.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: getExecutionResults
      summary: Get Execution Results
      tags:
        - Executions API
      x-mint:
        href: /pt/reference/products/flowker/get-execution-results
  /v1/executors:
    get:
      description: Use this endpoint to retrieve a paginated list of executor configurations. You can filter results by status.
      parameters:
        - description: "Filter results by status: `unconfigured`, `configured`, `tested`, `active`, or `disabled`."
          in: query
          name: status
          schema:
            type: string
        - description: Maximum number of items to return per page. Defaults to 10. Must be between 1 and 100.
          in: query
          name: limit
          schema:
            default: 10
            maximum: 100
            minimum: 1
            type: integer
        - description: Cursor for pagination. Use the value from the `nextCursor` field in a previous response to retrieve the next page.
          in: query
          name: cursor
          schema:
            type: string
        - description: Field to sort results by.
          in: query
          name: sortBy
          schema:
            default: createdAt
            enum:
              - createdAt
              - updatedAt
              - name
            type: string
        - description: Sort direction. Use `ASC` for ascending or `DESC` for descending.
          in: query
          name: sortOrder
          schema:
            default: DESC
            enum:
              - ASC
              - DESC
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutorConfigurationListOutput'
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that a query parameter has the wrong type, for example a `limit` that is not an integer.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: listExecutorConfigurations
      summary: List Executor Configurations
      tags:
        - Executor Configurations API
      x-mint:
        href: /pt/reference/products/flowker/list-executor-configurations
  /v1/executors/{id}:
    delete:
      description: Use this endpoint to delete an executor configuration. Only configurations with `unconfigured`, `configured`, or `disabled` status can be deleted.
      parameters:
        - description: Unique identifier of the executor configuration.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "204":
          content: {}
          description: Indicates that the resource was successfully deleted.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
        "409":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: The resource state changed concurrently. Retry with the latest version.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was well-formed but contains semantic errors that prevent processing.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: deleteExecutorConfiguration
      summary: Delete an Executor Configuration
      tags:
        - Executor Configurations API
      x-mint:
        href: /pt/reference/products/flowker/delete-executor-configuration
    get:
      description: Use this endpoint to retrieve a specific executor configuration by its unique identifier.
      parameters:
        - description: Unique identifier of the executor configuration.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutorConfigurationOutput'
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: getExecutorConfiguration
      summary: Get an Executor Configuration
      tags:
        - Executor Configurations API
      x-mint:
        href: /pt/reference/products/flowker/get-executor-configuration
    patch:
      description: Use this endpoint to update an existing executor configuration. Only configurations with `unconfigured` or `configured` status can be updated.
      parameters:
        - description: Unique identifier of the executor configuration.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateExecutorConfigurationInput'
        description: Request body containing the updated executor configuration details.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutorConfigurationOutput'
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was well-formed but contains semantic errors that prevent processing.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: updateExecutorConfiguration
      summary: Update an Executor Configuration
      tags:
        - Executor Configurations API
      x-codegen-request-body-name: executorConfig
      x-mint:
        href: /pt/reference/products/flowker/update-executor-configuration
  /v1/provider-configurations:
    get:
      description: Use this endpoint to retrieve a paginated list of provider configurations. You can filter results by status or provider ID.
      parameters:
        - description: Filter results by status.
          in: query
          name: status
          schema:
            enum:
              - active
              - disabled
            type: string
        - description: Filter results by a specific provider ID.
          in: query
          name: providerId
          schema:
            type: string
        - description: Maximum number of items to return per page. Defaults to 10. Must be between 1 and 100.
          in: query
          name: limit
          schema:
            default: 10
            maximum: 100
            minimum: 1
            type: integer
        - description: Cursor for pagination. Use the value from the `nextCursor` field in a previous response to retrieve the next page.
          in: query
          name: cursor
          schema:
            type: string
        - description: Field to sort results by.
          in: query
          name: sortBy
          schema:
            default: createdAt
            enum:
              - createdAt
              - updatedAt
              - name
            type: string
        - description: Sort direction. Use `ASC` for ascending or `DESC` for descending.
          in: query
          name: sortOrder
          schema:
            default: DESC
            enum:
              - ASC
              - DESC
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderConfigurationListOutput'
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: listProviderConfigurations
      summary: List Provider Configurations
      tags:
        - Provider Configurations API
      x-mint:
        href: /pt/reference/products/flowker/list-provider-configurations
    post:
      description: Use this endpoint to create a new provider configuration. The configuration is validated against the provider's JSON Schema.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProviderConfigurationInput'
        description: Request body containing the provider configuration details.
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderConfigurationCreateOutput'
          description: Indicates that the resource was successfully created and the operation was completed as expected.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
        "409":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request could not be completed due to a conflict with the current state of the resource.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was well-formed but contains semantic errors that prevent processing.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: createProviderConfiguration
      summary: Create a Provider Configuration
      tags:
        - Provider Configurations API
      x-codegen-request-body-name: providerConfig
      x-mint:
        href: /pt/reference/products/flowker/create-provider-configuration
  /v1/provider-configurations/{id}:
    delete:
      description: Use this endpoint to delete a provider configuration.
      parameters:
        - description: Unique identifier of the provider configuration.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "204":
          content: {}
          description: Indicates that the resource was successfully deleted.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: deleteProviderConfiguration
      summary: Delete a Provider Configuration
      tags:
        - Provider Configurations API
      x-mint:
        href: /pt/reference/products/flowker/delete-provider-configuration
    get:
      description: "Use this endpoint to retrieve a specific provider configuration by its unique identifier. The response never returns the credential that the authentication type declares (its API key, bearer token, password, client secret, or signing secret). Flowker masks any other value, including a free-form authentication parameter, only when it recognizes the field name as sensitive. Store credential material only in the fields that the authentication type declares."
      parameters:
        - description: Unique identifier of the provider configuration.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderConfigurationOutput'
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: getProviderConfiguration
      summary: Get a Provider Configuration
      tags:
        - Provider Configurations API
      x-mint:
        href: /pt/reference/products/flowker/get-provider-configuration
    patch:
      description: Use this endpoint to update an existing provider configuration. If the configuration payload changes, it is re-validated against the provider's JSON Schema.
      parameters:
        - description: Unique identifier of the provider configuration.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProviderConfigurationInput'
        description: Request body containing the updated provider configuration details.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderConfigurationOutput'
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
        "409":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request could not be completed due to a conflict with the current state of the resource.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was well-formed but contains semantic errors that prevent processing.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: updateProviderConfiguration
      summary: Update a Provider Configuration
      tags:
        - Provider Configurations API
      x-codegen-request-body-name: providerConfig
      x-mint:
        href: /pt/reference/products/flowker/update-provider-configuration
  /v1/provider-configurations/{id}/disable:
    post:
      description: Use this endpoint to disable a provider configuration. Transitions the status from `active` to `disabled`.
      parameters:
        - description: Unique identifier of the provider configuration.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderConfigurationOutput'
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was well-formed but contains semantic errors that prevent processing.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: disableProviderConfiguration
      summary: Disable a Provider Configuration
      tags:
        - Provider Configurations API
      x-mint:
        href: /pt/reference/products/flowker/disable-provider-configuration
  /v1/provider-configurations/{id}/enable:
    post:
      description: Use this endpoint to enable a provider configuration. Transitions the status from `disabled` to `active`.
      parameters:
        - description: Unique identifier of the provider configuration.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderConfigurationOutput'
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was well-formed but contains semantic errors that prevent processing.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: enableProviderConfiguration
      summary: Enable a Provider Configuration
      tags:
        - Provider Configurations API
      x-mint:
        href: /pt/reference/products/flowker/enable-provider-configuration
  /v1/workflows:
    get:
      description: Use this endpoint to retrieve a paginated list of workflows. You can filter results by status.
      parameters:
        - description: Filter results by status.
          in: query
          name: status
          schema:
            enum:
              - draft
              - active
              - inactive
            type: string
        - description: Maximum number of items to return per page. Defaults to 10. Must be between 1 and 100.
          in: query
          name: limit
          schema:
            default: 10
            maximum: 100
            minimum: 1
            type: integer
        - description: Cursor for pagination. Use the value from the `nextCursor` field in a previous response to retrieve the next page.
          in: query
          name: cursor
          schema:
            type: string
        - description: Field to sort results by.
          in: query
          name: sortBy
          schema:
            default: createdAt
            enum:
              - createdAt
              - updatedAt
              - name
            type: string
        - description: Sort direction. Use `ASC` for ascending or `DESC` for descending.
          in: query
          name: sortOrder
          schema:
            default: DESC
            enum:
              - ASC
              - DESC
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowListOutput'
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that a query parameter has the wrong type, for example a `limit` that is not an integer.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: listWorkflows
      summary: List Workflows
      tags:
        - Workflows API
      x-mint:
        href: /pt/reference/products/flowker/list-workflows
    post:
      description: Use this endpoint to create a new workflow definition. New workflows are created in `draft` status.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWorkflowInput'
        description: Request body containing the workflow definition.
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowCreateOutput'
          description: Indicates that the resource was successfully created and the operation was completed as expected.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "409":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request could not be completed due to a conflict with the current state of the resource.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was well-formed but contains semantic errors that prevent processing.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: createWorkflow
      summary: Create a Workflow
      tags:
        - Workflows API
      x-codegen-request-body-name: workflow
      x-mint:
        href: /pt/reference/products/flowker/create-workflow
  /v1/workflows/{id}:
    delete:
      description: Use this endpoint to delete a workflow definition. Only workflows with `draft` or `inactive` status can be deleted.
      parameters:
        - description: Unique identifier of the workflow.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "204":
          content: {}
          description: Indicates that the resource was successfully deleted.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was well-formed but contains semantic errors that prevent processing.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: deleteWorkflow
      summary: Delete a Workflow
      tags:
        - Workflows API
      x-mint:
        href: /pt/reference/products/flowker/delete-workflow
    get:
      description: Use this endpoint to retrieve a specific workflow definition by its unique identifier.
      parameters:
        - description: Unique identifier of the workflow.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowOutput'
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: getWorkflow
      summary: Get a Workflow
      tags:
        - Workflows API
      x-mint:
        href: /pt/reference/products/flowker/get-workflow
    put:
      description: Use this endpoint to update an existing workflow definition. Only workflows with `draft` status can be updated.
      parameters:
        - description: Unique identifier of the workflow.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWorkflowInput'
        description: Request body containing the updated workflow definition.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowOutput'
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was well-formed but contains semantic errors that prevent processing.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: updateWorkflow
      summary: Update a Workflow
      tags:
        - Workflows API
      x-codegen-request-body-name: workflow
      x-mint:
        href: /pt/reference/products/flowker/update-workflow
  /v1/workflows/{id}/activate:
    post:
      description: Use this endpoint to activate a workflow. Transitions the status from `draft` to `active`.
      parameters:
        - description: Unique identifier of the workflow.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowOutput'
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was well-formed but contains semantic errors that prevent processing.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: activateWorkflow
      summary: Activate a Workflow
      tags:
        - Workflows API
      x-mint:
        href: /pt/reference/products/flowker/activate-workflow
  /v1/workflows/{id}/clone:
    post:
      description: Use this endpoint to create a copy of an existing workflow with a new name. The cloned workflow is created in `draft` status.
      parameters:
        - description: Unique identifier of the source workflow to clone.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloneWorkflowInput'
        description: Request body containing the clone parameters.
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowCreateOutput'
          description: Indicates that the resource was successfully created and the operation was completed as expected.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
        "409":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request could not be completed due to a conflict with the current state of the resource.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: cloneWorkflow
      summary: Clone a Workflow
      tags:
        - Workflows API
      x-codegen-request-body-name: clone
      x-mint:
        href: /pt/reference/products/flowker/clone-workflow
  /v1/workflows/{id}/deactivate:
    post:
      description: Use this endpoint to deactivate a workflow. Transitions the status from `active` to `inactive`.
      parameters:
        - description: Unique identifier of the workflow.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowOutput'
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was well-formed but contains semantic errors that prevent processing.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: deactivateWorkflow
      summary: Deactivate a Workflow
      tags:
        - Workflows API
      x-mint:
        href: /pt/reference/products/flowker/deactivate-workflow
  /v1/workflows/{id}/draft:
    post:
      description: Use this endpoint to move a workflow back to draft status for editing. Transitions the status from `inactive` to `draft`.
      parameters:
        - description: Unique identifier of the workflow.
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowOutput'
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was well-formed but contains semantic errors that prevent processing.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: moveWorkflowToDraft
      summary: Move a Workflow to Draft
      tags:
        - Workflows API
      x-mint:
        href: /pt/reference/products/flowker/move-workflow-to-draft
  /v1/workflows/{workflowId}/executions:
    post:
      description: "Use this endpoint to start a new workflow execution. The request does not wait for the workflow to finish. A new execution returns with the `running` status. Use the Idempotency-Key header to ensure safe retries. An Idempotency-Key is unique across workflows: a key already used to execute a different workflow answers 409 FLK-0511 and returns nothing of that execution; send a new Idempotency-Key for each distinct execution."
      parameters:
        - description: Unique identifier of the workflow.
          in: path
          name: workflowId
          required: true
          schema:
            format: uuid
            type: string
        - description: Unique idempotency key to ensure safe retries of the same request.
          in: header
          name: Idempotency-Key
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExecuteWorkflowInput'
        description: Request body containing the execution input data.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionCreateOutput'
          description: Indicates that an identical request was already processed. Returns the original execution.
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionCreateOutput'
          description: Indicates that the resource was successfully created and the operation was completed as expected.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the requested resource could not be found.
        "409":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the Idempotency-Key was already used to execute a different workflow (FLK-0511). Nothing of that execution is returned; send a new Idempotency-Key.
        "413":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request payload exceeds the maximum allowed size.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the request was well-formed but contains semantic errors that prevent processing.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: executeWorkflow
      summary: Execute a Workflow
      tags:
        - Executions API
      x-codegen-request-body-name: execution
      x-mint:
        href: /pt/reference/products/flowker/execute-workflow
  /v1/workflows/{workflowId}/executions/{executionId}:
    get:
      description: "Returns the current status of one execution of the workflow named in the path: its state (pending, running, completed, failed), the step it is on, and when it started and finished. Call it after executing the workflow, with the executionId that call returned, to follow the execution until it reaches completed or failed; then read its output with the results operation of the same path. Read-only: nothing changes. The body is the same as GET /v1/executions/{id}; this operation additionally requires the execution to belong to the workflow in the path, so it is the one to use with a credential confined to some workflows. Errors: 400 FLK-0002 when workflowId or executionId is not a UUID; 404 FLK-0500 when no execution with this id belongs to that workflow — an execution of another workflow is answered exactly as one that does not exist; 403 when the credential may not read executions of that workflow."
      parameters:
        - description: Identifier (UUID) of the workflow the execution belongs to.
          in: path
          name: workflowId
          required: true
          schema:
            format: uuid
            type: string
        - description: Execution identifier (UUID), as returned when the workflow was executed.
          in: path
          name: executionId
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionStatusOutput'
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that workflowId or executionId is not a UUID (FLK-0002).
        "403":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the credential may not read executions of that workflow.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that no execution with this id belongs to that workflow (FLK-0500). An execution of another workflow is answered exactly as one that does not exist.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: getWorkflowExecutionStatus
      summary: Get a Workflow Execution Status
      tags:
        - Executions API
      x-mint:
        href: /pt/reference/products/flowker/get-workflow-execution-status
  /v1/workflows/{workflowId}/executions/{executionId}/results:
    get:
      description: "Returns the outcome of one finished execution of the workflow named in the path: the final business output, the output of every step and, on failure, the error. Call it once the execution status is completed or failed. The final output is JSON by default; request XML with the `format=xml` query parameter (which wins) or an `Accept: application/xml` header. Read-only: nothing changes. The body is the same as GET /v1/executions/{id}/results; this operation additionally requires the execution to belong to the workflow in the path, so it is the one to use with a credential confined to some workflows. Errors: 400 FLK-0002 when workflowId or executionId is not a UUID; 404 FLK-0500 when no execution with this id belongs to that workflow — an execution of another workflow is answered exactly as one that does not exist; 422 FLK-0502 while the execution is still pending or running; 403 when the credential may not read executions of that workflow."
      parameters:
        - description: Identifier (UUID) of the workflow the execution belongs to.
          in: path
          name: workflowId
          required: true
          schema:
            format: uuid
            type: string
        - description: Execution identifier (UUID), as returned when the workflow was executed.
          in: path
          name: executionId
          required: true
          schema:
            format: uuid
            type: string
        - description: Response representation of the final business output. 'xml' forces XML and wins over the Accept header; any other non-empty value forces JSON. When omitted, the representation is content-negotiated via the Accept header ('application/xml' selects XML; JSON is the default).
          in: query
          name: format
          schema:
            type: string
            example: xml
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionResultsOutput'
            application/xml:
              schema:
                $ref: '#/components/schemas/ExecutionResultsOutput'
          description: Indicates that the request was successful and the response contains the requested data.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that workflowId or executionId is not a UUID (FLK-0002).
        "403":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the credential may not read executions of that workflow.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that no execution with this id belongs to that workflow (FLK-0500). An execution of another workflow is answered exactly as one that does not exist.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates that the execution is still pending or running and results are not yet available (FLK-0502).
        "500":
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Indicates an unexpected internal error. If this persists, please contact support.
      operationId: getWorkflowExecutionResults
      summary: Get Workflow Execution Results
      tags:
        - Executions API
      x-mint:
        href: /pt/reference/products/flowker/get-workflow-execution-results
  /v1/catalog/openapi-specs/{service}/{version}:
    post:
      description: "Use this endpoint to publish a global OpenAPI 3.x specification version for a native service. Every tenant resolves against the published versions. Versions are immutable: uploading a version that already exists returns 409. Send the specification as multipart/form-data; the file must not exceed 8 MiB. The caller needs the create permission on the catalog resource."
      operationId: uploadOpenAPISpec
      parameters:
        - description: Service identifier (the provider id / global spec key segment, e.g. ledger).
          in: path
          name: service
          required: true
          schema:
            description: Service identifier (the provider id / global spec key segment, e.g. ledger).
            type: string
            example: ledger
        - description: Spec version (immutable, e.g. v1.0.0).
          in: path
          name: version
          required: true
          schema:
            description: Spec version (immutable, e.g. v1.0.0).
            type: string
            example: v1.0.0
      requestBody:
        content:
          multipart/form-data:
            encoding:
              file:
                contentType: application/octet-stream
            schema:
              properties:
                file:
                  contentEncoding: binary
                  contentMediaType: application/octet-stream
                  description: OpenAPI 3.x spec file (JSON).
                  format: binary
                  type: string
              required:
                - file
              type: object
      responses:
        "201":
          description: Indicates that the resource was successfully created and the operation was completed as expected.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request was malformed or contained invalid parameters.
        "409":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request could not be completed due to a conflict with the current state of the resource.
        "413":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request payload exceeds the maximum allowed size.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request was well-formed but contains semantic errors that prevent processing.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates an unexpected internal error. If this persists, please contact support.
        "503":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the service is temporarily unable to handle the request.
      summary: Upload an OpenAPI Spec Version
      tags:
        - Schema Registry API
      x-mint:
        href: /pt/reference/products/flowker/upload-openapi-spec-version
  /v1/catalog/openapi-version-pins/{service}:
    put:
      description: "Use this endpoint to select which published OpenAPI specification version the current tenant resolves against for a native service. The operation is idempotent: pinning again updates the version in place."
      operationId: setOpenAPIVersionPin
      parameters:
        - description: Service identifier (the provider id / global spec key segment, e.g. ledger).
          in: path
          name: service
          required: true
          schema:
            description: Service identifier (the provider id / global spec key segment, e.g. ledger).
            type: string
            example: ledger
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SetVersionPinRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VersionPinResponse"
          description: Indicates that the request was successful and the response contains the requested data.
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request failed. The body is an RFC 9457 problem document.
      summary: Pin an OpenAPI Spec Version
      tags:
        - Schema Registry API
      x-mint:
        href: /pt/reference/products/flowker/pin-openapi-spec-version
  /v1/catalog/openapi-versions/{service}:
    get:
      description: Use this endpoint to list the published OpenAPI specification versions available for a native service. The response marks the version the current tenant has pinned.
      operationId: listOpenAPIVersions
      parameters:
        - description: Service identifier (the provider id / global spec key segment, e.g. ledger).
          in: path
          name: service
          required: true
          schema:
            description: Service identifier (the provider id / global spec key segment, e.g. ledger).
            type: string
            example: ledger
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListVersionsResponse"
          description: Indicates that the request was successful and the response contains the requested data.
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request failed. The body is an RFC 9457 problem document.
      summary: List OpenAPI Spec Versions
      tags:
        - Schema Registry API
      x-mint:
        href: /pt/reference/products/flowker/list-openapi-spec-versions
  /v1/openapi-schemas:
    get:
      description: Use this endpoint to retrieve a paginated list of the tenant's external OpenAPI schemas. The response carries metadata only, without the specification content.
      operationId: listOpenAPISchemas
      parameters:
        - description: Number of items per page (1-100).
          explode: false
          in: query
          name: limit
          schema:
            default: 10
            description: Number of items per page (1-100).
            format: int64
            type: integer
            example: 10
        - description: Pagination cursor (opaque).
          explode: false
          in: query
          name: cursor
          schema:
            description: Pagination cursor (opaque).
            type: string
        - description: Sort field.
          explode: false
          in: query
          name: sortBy
          schema:
            description: Sort field.
            type: string
            example: createdAt
        - description: Sort order (ASC or DESC).
          explode: false
          in: query
          name: sortOrder
          schema:
            description: Sort order (ASC or DESC).
            type: string
            example: DESC
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OpenAPISchemaListOutput"
          description: Indicates that the request was successful and the response contains the requested data.
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request failed. The body is an RFC 9457 problem document.
      summary: List External OpenAPI Schemas
      tags:
        - OpenAPI Schemas API
      x-mint:
        href: /pt/reference/products/flowker/list-openapi-schemas
    post:
      description: Use this endpoint to upload an external OpenAPI 3.x schema as multipart/form-data. The file must not exceed 8 MiB.
      operationId: createOpenAPISchema
      requestBody:
        content:
          multipart/form-data:
            encoding:
              file:
                contentType: application/octet-stream
              name:
                contentType: text/plain
              version:
                contentType: text/plain
            schema:
              properties:
                file:
                  contentEncoding: binary
                  contentMediaType: application/octet-stream
                  description: OpenAPI 3.x schema file (JSON).
                  format: binary
                  type: string
                name:
                  description: Schema name.
                  type: string
                  example: kyc-provider
                version:
                  description: Schema version.
                  type: string
                  example: v1.0.0
              required:
                - file
                - name
                - version
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OpenAPISchemaOutput"
          description: Indicates that the resource was successfully created and the operation was completed as expected.
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request failed. The body is an RFC 9457 problem document.
      summary: Upload an External OpenAPI Schema
      tags:
        - OpenAPI Schemas API
      x-mint:
        href: /pt/reference/products/flowker/upload-openapi-schema
  /v1/openapi-schemas/{id}:
    delete:
      description: "Use this endpoint to delete an external OpenAPI schema. An active provider configuration or an active workflow that references the schema blocks the delete with 409. References from inactive workflows or disabled provider configurations do not block: the delete proceeds and the response carries the warnings. A schema with no references at all returns 204."
      operationId: deleteOpenAPISchema
      parameters:
        - description: OpenAPI Schema ID (UUID).
          in: path
          name: id
          required: true
          schema:
            description: OpenAPI Schema ID (UUID).
            type: string
            example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SchemaDeleteWarningsOutput"
          description: Indicates that the request was successful and the response contains the requested data.
        "204":
          description: Indicates that the schema was deleted and had no blocking or warning references.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the requested resource could not be found.
        "409":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request could not be completed due to a conflict with the current state of the resource.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request was well-formed but contains semantic errors that prevent processing.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates an unexpected internal error. If this persists, please contact support.
      summary: Delete an External OpenAPI Schema
      tags:
        - OpenAPI Schemas API
      x-mint:
        href: /pt/reference/products/flowker/delete-openapi-schema
    get:
      description: Use this endpoint to retrieve an external OpenAPI schema by its ID, including the raw specification content and a summary of each operation it declares.
      operationId: getOpenAPISchema
      parameters:
        - description: OpenAPI Schema ID (UUID).
          in: path
          name: id
          required: true
          schema:
            description: OpenAPI Schema ID (UUID).
            type: string
            example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OpenAPISchemaDetailOutput"
          description: Indicates that the request was successful and the response contains the requested data.
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request failed. The body is an RFC 9457 problem document.
      summary: Get an External OpenAPI Schema
      tags:
        - OpenAPI Schemas API
      x-mint:
        href: /pt/reference/products/flowker/get-openapi-schema
  /v1/openapi-schemas/{id}/operation-schema:
    get:
      description: Use this endpoint to derive the input and output contract of a single operation in an external OpenAPI schema. The response carries the dereferenced request-body and 2xx response schemas, the input parameters merged by location, and the body descriptor. Identify the operation with the `path` query parameter, which is the URL-encoded OpenAPI path template, and the `method` query parameter, which is case-insensitive.
      operationId: deriveOpenAPIOperationSchema
      parameters:
        - description: OpenAPI Schema ID (UUID).
          in: path
          name: id
          required: true
          schema:
            description: OpenAPI Schema ID (UUID).
            type: string
            example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
        - description: OpenAPI operation path template (URL-encoded), e.g. /kyc/{caseId}.
          explode: false
          in: query
          name: path
          schema:
            description: OpenAPI operation path template (URL-encoded), e.g. /kyc/{caseId}.
            type: string
            example: /kyc/{caseId}
        - description: "HTTP method (case-insensitive: GET, PUT, POST, DELETE, OPTIONS, HEAD, PATCH, TRACE)."
          explode: false
          in: query
          name: method
          schema:
            description: "HTTP method (case-insensitive: GET, PUT, POST, DELETE, OPTIONS, HEAD, PATCH, TRACE)."
            type: string
            example: POST
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OperationContractOutput"
          description: Indicates that the request was successful and the response contains the requested data.
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request failed. The body is an RFC 9457 problem document.
      summary: Derive an Operation Schema
      tags:
        - OpenAPI Schemas API
      x-mint:
        href: /pt/reference/products/flowker/derive-openapi-operation-schema
  /v1/openapi-schemas/{id}/references:
    get:
      description: 'Use this endpoint to list the provider configurations and workflows that reference an external OpenAPI schema. Both groups are always present in the response, and every entry is status-tagged: an active reference blocks a delete, a disabled one only warns.'
      operationId: listOpenAPISchemaReferences
      parameters:
        - description: OpenAPI Schema ID (UUID).
          in: path
          name: id
          required: true
          schema:
            description: OpenAPI Schema ID (UUID).
            type: string
            example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SchemaReferencesResponse"
          description: Indicates that the request was successful and the response contains the requested data.
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request failed. The body is an RFC 9457 problem document.
      summary: List External OpenAPI Schema References
      tags:
        - OpenAPI Schemas API
      x-mint:
        href: /pt/reference/products/flowker/list-openapi-schema-references
  /v1/workflows/preview-request:
    post:
      description: "Use this endpoint to assemble the outgoing HTTP request an executor node would send, without sending it. The preview applies the same interpolation, input mapping, and authentication assembly used at execution time. It never opens a network connection and never reads the vault. The preview replaces the credential that the authentication type declares (its API key, bearer token, password, client secret, or signing secret) with `***` where the credential appears as a value: in the URL, the query string, the headers, the body, and the `curl` command. Where removing the credential would damage the request, the preview shows it as written, for example when the credential is part of a header name or a body field name. Any other value, including a free-form authentication parameter, can appear as Flowker would send it. Store credential material only in the fields that the authentication type declares."
      operationId: previewRequest
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PreviewRequestInput"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PreviewRequestResult"
          description: Indicates that the request was successful and the response contains the requested data.
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request failed. The body is an RFC 9457 problem document.
      summary: Preview an Executor Request
      tags:
        - Executions API
      x-mint:
        href: /pt/reference/products/flowker/preview-executor-request
  /v1/workflows/schedule/pending-review-counts:
    get:
      description: "Use this endpoint to count, per workflow, the scheduled occurrences parked in the pending-review state across the caller's tenant. The counts map is sparse: a workflow with no pending-review occurrence is absent from the response."
      operationId: getWorkflowSchedulePendingReviewCounts
      parameters:
        - description: Comma-separated workflow IDs to scope the counts (optional; omit for all tenant workflows).
          explode: false
          in: query
          name: workflowIds
          schema:
            description: Comma-separated workflow IDs to scope the counts (optional; omit for all tenant workflows).
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PendingReviewCountsOutput"
          description: Indicates that the request was successful and the response contains the requested data.
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request failed. The body is an RFC 9457 problem document.
      summary: Count Pending-Review Occurrences
      tags:
        - Schedule API
      x-mint:
        href: /pt/reference/products/flowker/count-pending-review-occurrences
  /v1/workflows/{id}/schedule/missed:
    get:
      description: Use this endpoint to list a workflow's parked scheduled occurrences, both missed and pending review, that await a run or discard decision.
      operationId: listWorkflowScheduleMissed
      parameters:
        - description: Workflow identifier (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Workflow identifier (UUID).
            type: string
            example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MissedOccurrencesOutput"
          description: Indicates that the request was successful and the response contains the requested data.
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request failed. The body is an RFC 9457 problem document.
      summary: List Parked Scheduled Occurrences
      tags:
        - Schedule API
      x-mint:
        href: /pt/reference/products/flowker/list-parked-scheduled-occurrences
  /v1/workflows/{id}/schedule/missed/discard-all:
    post:
      description: 'Use this endpoint to discard every parked occurrence of a workflow that is in the pending-review state. The operation is idempotent: when no occurrence is pending review, the response reports zero discarded.'
      operationId: discardAllWorkflowScheduleMissed
      parameters:
        - description: Workflow identifier (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Workflow identifier (UUID).
            type: string
            example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DiscardAllMissedOutput"
          description: Indicates that the request was successful and the response contains the requested data.
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request failed. The body is an RFC 9457 problem document.
      summary: Discard All Parked Occurrences
      tags:
        - Schedule API
      x-mint:
        href: /pt/reference/products/flowker/discard-all-parked-occurrences
  /v1/workflows/{id}/schedule/missed/{occurrenceId}/discard:
    post:
      description: "Use this endpoint to move a parked occurrence to the terminal discarded state. Only an occurrence in the pending-review state can be discarded; any other state returns 422."
      operationId: discardWorkflowScheduleMissed
      parameters:
        - description: Workflow identifier (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Workflow identifier (UUID).
            type: string
            example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
        - description: Occurrence identifier (UUID).
          in: path
          name: occurrenceId
          required: true
          schema:
            description: Occurrence identifier (UUID).
            type: string
            example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6c4d5
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MissedOccurrenceOutput"
          description: Indicates that the request was successful and the response contains the requested data.
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request failed. The body is an RFC 9457 problem document.
      summary: Discard a Parked Occurrence
      tags:
        - Schedule API
      x-mint:
        href: /pt/reference/products/flowker/discard-parked-occurrence
  /v1/workflows/{id}/schedule/missed/{occurrenceId}/run:
    post:
      description: "Use this endpoint to re-run a parked occurrence. The occurrence moves to the queued state and is enqueued once. Only an occurrence in the pending-review state can be run; any other state returns 422. The operation is idempotent."
      operationId: runWorkflowScheduleMissed
      parameters:
        - description: Workflow identifier (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Workflow identifier (UUID).
            type: string
            example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
        - description: Occurrence identifier (UUID).
          in: path
          name: occurrenceId
          required: true
          schema:
            description: Occurrence identifier (UUID).
            type: string
            example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6c4d5
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MissedOccurrenceOutput"
          description: Indicates that the request was successful and the response contains the requested data.
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request failed. The body is an RFC 9457 problem document.
      summary: Run a Parked Occurrence
      tags:
        - Schedule API
      x-mint:
        href: /pt/reference/products/flowker/run-parked-occurrence
  /v1/workflows/{id}/schedule/skipped:
    get:
      description: Use this endpoint to list a workflow's skipped scheduled occurrences, ordered oldest first. Each occurrence carries the reason it was skipped.
      operationId: listWorkflowScheduleSkipped
      parameters:
        - description: Workflow identifier (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Workflow identifier (UUID).
            type: string
            example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
        - description: Maximum number of occurrences to return (1-50).
          explode: false
          in: query
          name: limit
          schema:
            description: Maximum number of occurrences to return (1-50).
            type: string
            example: "10"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SkippedOccurrencesOutput"
          description: Indicates that the request was successful and the response contains the requested data.
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request failed. The body is an RFC 9457 problem document.
      summary: List Skipped Scheduled Occurrences
      tags:
        - Schedule API
      x-mint:
        href: /pt/reference/products/flowker/list-skipped-scheduled-occurrences
  /v1/workflows/{id}/schedule/upcoming:
    get:
      description: Use this endpoint to compute the next occurrences of a workflow's schedule trigger, evaluated in the schedule's timezone. A workflow with no schedule trigger returns 422.
      operationId: listWorkflowScheduleUpcoming
      parameters:
        - description: Workflow identifier (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Workflow identifier (UUID).
            type: string
            example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
        - description: Number of occurrences to compute (1-50; default 10).
          explode: false
          in: query
          name: limit
          schema:
            description: Number of occurrences to compute (1-50; default 10).
            type: string
            example: "10"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UpcomingOccurrencesOutput"
          description: Indicates that the request was successful and the response contains the requested data.
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request failed. The body is an RFC 9457 problem document.
      summary: List Upcoming Scheduled Occurrences
      tags:
        - Schedule API
      x-mint:
        href: /pt/reference/products/flowker/list-upcoming-scheduled-occurrences
  /v1/xsd-schemas:
    get:
      description: Use this endpoint to retrieve a paginated list of the tenant's XSD schemas. The response carries metadata only, without the schema content.
      operationId: listXSDSchemas
      parameters:
        - description: Number of items per page (1-100).
          explode: false
          in: query
          name: limit
          schema:
            default: 10
            description: Number of items per page (1-100).
            format: int64
            type: integer
            example: 10
        - description: Pagination cursor (opaque).
          explode: false
          in: query
          name: cursor
          schema:
            description: Pagination cursor (opaque).
            type: string
        - description: Sort field.
          explode: false
          in: query
          name: sortBy
          schema:
            description: Sort field.
            type: string
            example: createdAt
        - description: Sort order (ASC or DESC).
          explode: false
          in: query
          name: sortOrder
          schema:
            description: Sort order (ASC or DESC).
            type: string
            example: DESC
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/XSDSchemaListOutput"
          description: Indicates that the request was successful and the response contains the requested data.
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request failed. The body is an RFC 9457 problem document.
      summary: List XSD Schemas
      tags:
        - XSD Schemas API
      x-mint:
        href: /pt/reference/products/flowker/list-xsd-schemas
    post:
      description: Use this endpoint to upload an XSD schema file as multipart/form-data. The file must not exceed 1 MiB.
      operationId: createXSDSchema
      parameters:
        - description: Bearer token forwarded to the XSD validator sidecar for import resolution.
          in: header
          name: Authorization
          schema:
            description: Bearer token forwarded to the XSD validator sidecar for import resolution.
            type: string
      requestBody:
        content:
          multipart/form-data:
            encoding:
              file:
                contentType: application/octet-stream
              imports:
                contentType: text/plain
              name:
                contentType: text/plain
              version:
                contentType: text/plain
            schema:
              properties:
                file:
                  contentEncoding: binary
                  contentMediaType: application/octet-stream
                  description: XSD schema file.
                  format: binary
                  type: string
                imports:
                  description: Imported schema names (repeatable).
                  items:
                    type: string
                  type:
                    - array
                    - "null"
                name:
                  description: Schema name.
                  type: string
                  example: pain-001
                version:
                  description: Schema version.
                  type: string
                  example: v1.0.0
              required:
                - file
                - name
                - version
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/XSDSchemaOutput"
          description: Indicates that the resource was successfully created and the operation was completed as expected.
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request failed. The body is an RFC 9457 problem document.
      summary: Upload an XSD Schema
      tags:
        - XSD Schemas API
      x-mint:
        href: /pt/reference/products/flowker/upload-xsd-schema
  /v1/xsd-schemas/{id}:
    delete:
      description: "Use this endpoint to delete an XSD schema. An active provider configuration or an active workflow that references the schema blocks the delete with 409. References from inactive workflows or disabled provider configurations do not block: the delete proceeds and the response carries the warnings. A schema with no references at all returns 204."
      operationId: deleteXSDSchema
      parameters:
        - description: XSD Schema ID (UUID).
          in: path
          name: id
          required: true
          schema:
            description: XSD Schema ID (UUID).
            type: string
            example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SchemaDeleteWarningsOutput"
          description: Indicates that the request was successful and the response contains the requested data.
        "204":
          description: Indicates that the schema was deleted and had no blocking or warning references.
        "400":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request was malformed or contained invalid parameters.
        "404":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the requested resource could not be found.
        "409":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request could not be completed due to a conflict with the current state of the resource.
        "422":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request was well-formed but contains semantic errors that prevent processing.
        "500":
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates an unexpected internal error. If this persists, please contact support.
      summary: Delete an XSD Schema
      tags:
        - XSD Schemas API
      x-mint:
        href: /pt/reference/products/flowker/delete-xsd-schema
    get:
      description: Use this endpoint to retrieve an XSD schema by its ID, including its full content.
      operationId: getXSDSchema
      parameters:
        - description: XSD Schema ID (UUID).
          in: path
          name: id
          required: true
          schema:
            description: XSD Schema ID (UUID).
            type: string
            example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/XSDSchemaDetailOutput"
          description: Indicates that the request was successful and the response contains the requested data.
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request failed. The body is an RFC 9457 problem document.
      summary: Get an XSD Schema
      tags:
        - XSD Schemas API
      x-mint:
        href: /pt/reference/products/flowker/get-xsd-schema
  /v1/xsd-schemas/{id}/references:
    get:
      description: 'Use this endpoint to list the provider configurations and workflows that reference an XSD schema. Both groups are always present in the response, and every entry is status-tagged: an active reference blocks a delete, a disabled one only warns.'
      operationId: listXSDSchemaReferences
      parameters:
        - description: XSD Schema ID (UUID).
          in: path
          name: id
          required: true
          schema:
            description: XSD Schema ID (UUID).
            type: string
            example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SchemaReferencesResponse"
          description: Indicates that the request was successful and the response contains the requested data.
        default:
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Indicates that the request failed. The body is an RFC 9457 problem document.
      summary: List XSD Schema References
      tags:
        - XSD Schemas API
      x-mint:
        href: /pt/reference/products/flowker/list-xsd-schema-references
components:
  schemas:
    ErrorResponse:
      properties:
        code:
          description: Stable, machine-readable Flowker error code.
          example: "FLK-0001"
          type: string
        detail:
          description: Human-readable explanation of this occurrence. Responses with a status of 500 or above carry a fixed generic message.
          example: "name is a required field"
          type: string
        errors:
          description: Per-field entries for a request that failed validation.
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
        instance:
          description: URI reference identifying this specific occurrence.
          example: "/v1/workflows"
          format: uri
          type: string
        status:
          description: HTTP status code.
          example: 400
          type: integer
        title:
          description: Standard HTTP reason phrase for the status. It does not change per error code.
          example: "Bad Request"
          type: string
        type:
          description: URI reference identifying the error. Always the error catalog base followed by the code.
          example: "https://errors.lerian.studio/v1/FLK-0001"
          format: uri
          type: string
      type: object
    ErrorDetail:
      properties:
        location:
          description: Where the problem is, such as body.nodes or path.id.
          example: "body.nodes"
          type: string
        message:
          description: Description of the field-level problem.
          example: "expected array length >= 1"
          type: string
        value:
          description: The value that caused the error, when it is safe to echo.
      type: object
    WebhookErrorResponse:
      description: Error body returned by a JSON webhook route.
      properties:
        code:
          description: Stable, machine-readable Flowker error code.
          example: "FLK-0361"
          type: string
        message:
          description: Human-readable explanation of this occurrence.
          example: "no webhook registered for this path and method"
          type: string
        title:
          description: Standard HTTP reason phrase for the response status.
          example: "Not Found"
          type: string
      type: object
    CloneWorkflowInput:
      properties:
        name:
          description: Name for the cloned workflow. Must be unique.
          example: "Payment Notification Flow — Copy"
          maxLength: 100
          minLength: 1
          type: string
      required:
        - name
      type: object
    CreateProviderConfigurationInput:
      properties:
        allowedHosts:
          description: 'Outbound allow-list of destination hostnames. It applies to every node that calls through this configuration. Omit the field, or send an empty list, to accept any public host. The generic HTTP connector, provider id `http`, is the exception — it rejects an empty list with error `FLK-0323`. A leading dot matches subdomains, so ".kyc-provider.io" matches "api.kyc-provider.io". Entries are hostnames only, with no IP literal, no wildcard and no port. Flowker lowercases every entry. Flowker checks the `base_url`, `onboarding_base_url` and `transaction_base_url` values in `config` against this list, and it checks the request URL and every redirect hop at run time.'
          items:
            maxLength: 253
            type: string
          maxItems: 100
          type:
            - array
            - "null"
          example:
            - "api.acme.com"
            - ".kyc-provider.io"
        allowedPrivateHosts:
          description: 'Named private-host allowance, managed by your operations team. An entry lets this configuration call a host that resolves to a private or loopback address, which Flowker blocks by default. Cloud metadata and link-local addresses stay blocked, and no entry reaches them. Entries follow the same format as allowedHosts.'
          items:
            maxLength: 253
            type: string
          maxItems: 100
          type:
            - array
            - "null"
          example:
            - "nginx.pix-inline.internal"
        config:
          additionalProperties:
            type: object
          description: Provider-specific configuration that is validated against the provider's JSON Schema.
          example:
            baseUrl: "https://api.clearsale.com.br"
            apiKey: "cs-key-abc123"
            environment: "production"
          type: object
        kind:
          description: 'Which kind of connection this is. Omit it, or send "catalog", for a connection to a catalog provider — `providerId` is then required. Send "external_openapi" for a connection to an OpenAPI document you uploaded through the OpenAPI schema registry; `providerId` is optional for that kind, and its `config` holds `openapi_schema_id` plus an optional `auth` block and `base_url`. You choose the kind when you create the configuration.'
          enum:
            - catalog
            - external_openapi
          example: "external_openapi"
          type: string
        description:
          description: Human-readable description of this provider configuration.
          example: "ClearSale anti-fraud for Pix transactions"
          maxLength: 500
          type: string
        metadata:
          additionalProperties:
            type: object
          description: Custom key-value pairs for tagging.
          example:
            environment: "production"
            team: "risk"
          type: object
        name:
          description: Unique name for this provider configuration.
          example: "ClearSale Production"
          maxLength: 100
          minLength: 1
          type: string
        providerId:
          description: 'ID of the catalog provider to configure. It is required for the `catalog` kind, and Flowker rejects a create that omits it with error `FLK-0297`. A configuration of kind `external_openapi` may omit it, and a read of that configuration returns the reserved id `external.openapi`.'
          example: "clearsale"
          type: string
        schemaBindings:
          description: 'Stored schemas this configuration binds to. Each entry names one XSD or OpenAPI schema already registered for your tenant. Omit the field, or send an empty list, for no bindings. Two identical entries in the same request are rejected.'
          items:
            $ref: "#/components/schemas/SchemaBindingInput"
          maxItems: 100
          type:
            - array
            - "null"
      required:
        - config
        - name
      type: object
    CreateWorkflowInput:
      example:
        name: "Payment Notification Flow"
        description: "Receives a webhook trigger and sets the payment output."
        nodes:
          - id: "trigger-1"
            type: "trigger"
            name: "Webhook Trigger"
            position:
              x: 0
              y: 0
            data:
              triggerType: "webhook"
              path: "payments/received"
              method: "POST"
              input_contract: "open"
              format: "json"
          - id: "set-output"
            type: "action"
            name: "Set Payment Output"
            position:
              x: 200
              y: 0
            data:
              actionType: "set_output"
              output:
                status: "received"
        edges:
          - id: "e1"
            source: "trigger-1"
            target: "set-output"
        metadata:
          team: "payments"
          environment: "sandbox"
      properties:
        description:
          description: Optional human-readable description of the workflow's purpose.
          example: "Receives a webhook trigger and sets the payment output."
          maxLength: 500
          type: string
        edges:
          description: Connections between nodes that define the execution flow. Each edge links a source node to a target node. Branching is routed by the edge's `sourceHandle`, which must match the outcome handle its conditional source node produces.
          items:
            $ref: '#/components/schemas/WorkflowEdgeInput'
          maxItems: 200
          type: array
        metadata:
          additionalProperties:
            type: object
          description: Custom key-value pairs for tagging or categorizing the workflow.
          example:
            team: "payments"
            environment: "sandbox"
          type: object
        name:
          description: Unique name for the workflow.
          example: "Payment Notification Flow"
          maxLength: 100
          minLength: 1
          type: string
        nodes:
          description: The steps that make up this workflow. Each node is a unit of work — a trigger, an executor call, a conditional branch, or an action.
          items:
            $ref: '#/components/schemas/WorkflowNodeInput'
          maxItems: 100
          type: array
      required:
        - name
      type: object
    ExecuteWorkflowInput:
      properties:
        inputData:
          additionalProperties:
            type: object
          description: Input data passed to the workflow. Available to all nodes during execution. Maximum payload size is 1 MB.
          example:
            transactionId: "txn-98765"
            amount: 1500.00
            currency: "BRL"
            customerId: "cust-12345"
            message: "Payment received"
          type: object
      required:
        - inputData
      type: object
    ExecutionCreateOutput:
      properties:
        executionId:
          description: Unique identifier of the execution.
          example: "f7e6d5c4-b3a2-1098-7654-321fedcba098"
          format: uuid
          type: string
        startedAt:
          description: Timestamp when the execution started.
          example: "2026-03-17T14:35:00Z"
          format: date-time
          type: string
        status:
          description: Status of the execution.
          example: "running"
          type: string
        workflowId:
          description: ID of the workflow being executed.
          example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
          format: uuid
          type: string
      type: object
    ExecutionListOutput:
      example:
        items:
          - executionId: "f7e6d5c4-b3a2-1098-7654-321fedcba098"
            workflowId: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
            status: "completed"
            currentStepNumber: 1
            totalSteps: 1
            startedAt: "2026-03-17T14:35:00Z"
            completedAt: "2026-03-17T14:35:00Z"
        nextCursor: ""
        hasMore: false
      properties:
        hasMore:
          description: Indicates whether more pages are available.
          example: false
          type: boolean
        items:
          description: List of execution statuses in the current page.
          items:
            $ref: '#/components/schemas/ExecutionStatusOutput'
          type: array
        nextCursor:
          description: Cursor for the next page.
          example: ""
          type: string
      type: object
    ExecutionResultsOutput:
      example:
        executionId: "f7e6d5c4-b3a2-1098-7654-321fedcba098"
        workflowId: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
        status: "completed"
        stepResults:
          - stepNumber: 1
            stepName: "Set Payment Output"
            nodeId: "set-output"
            status: "completed"
            output:
              actionType: "set_output"
              output:
                status: "received"
            executedAt: "2026-03-17T14:35:00Z"
            durationMs: 0
        finalOutput:
          status: "received"
        startedAt: "2026-03-17T14:35:00Z"
        completedAt: "2026-03-17T14:35:00Z"
      properties:
        completedAt:
          description: Timestamp when the execution finished.
          example: "2026-03-17T14:35:12Z"
          format: date-time
          type: string
        executionId:
          description: Unique identifier of the execution.
          example: "f7e6d5c4-b3a2-1098-7654-321fedcba098"
          format: uuid
          type: string
        finalOutput:
          additionalProperties: true
          description: Aggregated output from the last step or the workflow's final result.
          example:
            status: "received"
          type: object
        startedAt:
          description: Timestamp when the execution started.
          example: "2026-03-17T14:35:00Z"
          format: date-time
          type: string
        status:
          description: Final status of the execution.
          example: "completed"
          type: string
        stepResults:
          description: Ordered list of results for each step executed.
          items:
            $ref: '#/components/schemas/StepResultOutput'
          type: array
        workflowId:
          description: ID of the workflow that was executed.
          example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
          format: uuid
          type: string
      type: object
    ExecutionStatusOutput:
      properties:
        completedAt:
          description: Timestamp when the execution finished. Null if still running.
          example: "2026-03-17T14:35:12Z"
          format: date-time
          type: string
        currentStepNumber:
          description: Number of the step currently being executed (1-indexed).
          example: 1
          type: integer
        errorMessage:
          description: Error message if the execution failed. Null on success.
          type: string
        executionId:
          description: Unique identifier of the execution.
          example: "f7e6d5c4-b3a2-1098-7654-321fedcba098"
          format: uuid
          type: string
        startedAt:
          description: Timestamp when the execution started.
          example: "2026-03-17T14:35:00Z"
          format: date-time
          type: string
        status:
          description: "Current status: `pending` (queued), `running` (in progress), `completed` (success), or `failed` (error)."
          enum:
            - pending
            - running
            - completed
            - failed
          example: "completed"
          type: string
        totalSteps:
          description: Total number of steps in the workflow.
          example: 1
          type: integer
        workflowId:
          description: ID of the workflow being executed.
          example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
          format: uuid
          type: string
      type: object
    ExecutorAuthenticationInput:
      properties:
        config:
          additionalProperties:
            type: object
          description: Authentication parameters specific to the chosen type (e.g., `key` for api_key, `token` for bearer, `username`/`password` for basic).
          example:
            key: "sk-live-abc123def456"
            header: "X-API-Key"
          type: object
        type:
          description: "Authentication method: `none`, `api_key`, `bearer`, `basic`, `oidc_client_credentials`, or `oidc_user`."
          enum:
            - none
            - api_key
            - bearer
            - basic
            - oidc_client_credentials
            - oidc_user
          example: "api_key"
          type: string
      required:
        - type
      type: object
    ExecutorAuthenticationOutput:
      properties:
        config:
          additionalProperties:
            type: object
          description: Authentication parameters.
          example:
            key: "********"
            header: "X-API-Key"
          type: object
        type:
          description: Authentication method.
          example: "api_key"
          type: string
      type: object
    ExecutorConfigurationListOutput:
      example:
        items:
          - id: "b2c3d4e5-f6a7-8901-bcde-f23456789012"
            name: "Serasa KYC"
            description: "Serasa identity validation service"
            baseUrl: "https://api.serasa.com.br/v2"
            endpoints:
              - name: "validate-identity"
                path: "/identity/validate"
                method: "POST"
                timeout: 30
            authentication:
              type: "api_key"
              config:
                key: "********"
                header: "X-API-Key"
            status: "active"
            createdAt: "2026-03-15T10:00:00Z"
            updatedAt: "2026-03-16T09:30:00Z"
        nextCursor: ""
        hasMore: false
      properties:
        hasMore:
          description: Indicates whether more pages are available.
          example: false
          type: boolean
        items:
          description: List of executor configurations in the current page.
          items:
            $ref: '#/components/schemas/ExecutorConfigurationOutput'
          type: array
        nextCursor:
          description: Cursor for the next page.
          example: ""
          type: string
      type: object
    ExecutorConfigurationOutput:
      example:
        id: "b2c3d4e5-f6a7-8901-bcde-f23456789012"
        name: "Serasa KYC"
        description: "Serasa identity validation service"
        baseUrl: "https://api.serasa.com.br/v2"
        endpoints:
          - name: "validate-identity"
            path: "/identity/validate"
            method: "POST"
            timeout: 30
        authentication:
          type: "api_key"
          config:
            key: "********"
            header: "X-API-Key"
        status: "active"
        metadata: {}
        createdAt: "2026-03-15T10:00:00Z"
        updatedAt: "2026-03-16T09:30:00Z"
        lastTestedAt: "2026-03-16T09:15:00Z"
      properties:
        authentication:
          $ref: '#/components/schemas/ExecutorAuthenticationOutput'
        baseUrl:
          description: Base URL of the external service.
          example: "https://api.serasa.com.br/v2"
          type: string
        createdAt:
          description: Timestamp when the configuration was created.
          example: "2026-03-15T10:00:00Z"
          format: date-time
          type: string
        description:
          description: Human-readable description.
          example: "Serasa identity validation service"
          type: string
        endpoints:
          description: List of configured HTTP endpoints.
          items:
            $ref: '#/components/schemas/ExecutorEndpointOutput'
          type: array
        id:
          description: Unique identifier of the executor configuration.
          example: "b2c3d4e5-f6a7-8901-bcde-f23456789012"
          format: uuid
          type: string
        lastTestedAt:
          description: Timestamp when the configuration was last verified and ready for activation.
          example: "2026-03-16T09:15:00Z"
          format: date-time
          type: string
        metadata:
          additionalProperties:
            type: object
          description: Custom metadata.
          type: object
        name:
          description: Display name.
          example: "Serasa KYC"
          type: string
        status:
          description: "Current lifecycle status: `unconfigured`, `configured`, `tested`, `active`, or `disabled`."
          example: "active"
          type: string
        updatedAt:
          description: Timestamp of the last update.
          example: "2026-03-16T09:30:00Z"
          format: date-time
          type: string
      type: object
    ExecutorEndpointInput:
      properties:
        method:
          description: HTTP method for this endpoint.
          enum:
            - GET
            - POST
            - PUT
            - PATCH
            - DELETE
            - HEAD
            - OPTIONS
          example: "POST"
          type: string
        name:
          description: Unique name for this endpoint within the executor.
          example: "validate-identity"
          maxLength: 50
          minLength: 1
          type: string
        path:
          description: URL path appended to the executor's base URL.
          example: "/identity/validate"
          maxLength: 200
          minLength: 1
          type: string
        timeout:
          description: Request timeout in seconds. Defaults to 30.
          example: 30
          maximum: 300
          minimum: 1
          type: integer
      required:
        - method
        - name
        - path
      type: object
    ExecutorEndpointOutput:
      properties:
        method:
          description: HTTP method.
          example: "POST"
          type: string
        name:
          description: Endpoint name.
          example: "validate-identity"
          type: string
        path:
          description: URL path.
          example: "/identity/validate"
          type: string
        timeout:
          description: Request timeout in seconds.
          example: 30
          type: integer
      type: object
    PositionInput:
      properties:
        x:
          description: Horizontal position in pixels.
          example: 100
          type: integer
        y:
          description: Vertical position in pixels.
          example: 200
          type: integer
      type: object
    PositionOutput:
      properties:
        x:
          description: Horizontal position in pixels.
          example: 100
          type: integer
        y:
          description: Vertical position in pixels.
          example: 200
          type: integer
      type: object
    ProviderConfigurationCreateOutput:
      properties:
        createdAt:
          description: Timestamp when the configuration was created.
          example: "2026-03-17T14:00:00Z"
          format: date-time
          type: string
        id:
          description: Unique identifier of the created configuration.
          example: "c3d4e5f6-a7b8-9012-cdef-345678901234"
          format: uuid
          type: string
        name:
          description: Name of the configuration.
          example: "ClearSale Production"
          type: string
        status:
          description: Initial status (always `active` on creation).
          example: "active"
          type: string
      type: object
    ProviderConfigurationListOutput:
      example:
        items:
          - id: "c3d4e5f6-a7b8-9012-cdef-345678901234"
            name: "ClearSale Production"
            description: "ClearSale anti-fraud for Pix transactions"
            providerId: "clearsale"
            kind: "catalog"
            config:
              baseUrl: "https://api.clearsale.com.br"
            schemaBindings: []
            status: "active"
            createdAt: "2026-03-17T14:00:00Z"
            updatedAt: "2026-03-17T14:00:00Z"
        nextCursor: ""
        hasMore: false
      properties:
        hasMore:
          description: Indicates whether more pages are available.
          example: false
          type: boolean
        items:
          description: List of provider configurations in the current page.
          items:
            $ref: '#/components/schemas/ProviderConfigurationOutput'
          type: array
        nextCursor:
          description: Cursor for the next page.
          example: ""
          type: string
      type: object
    ProviderConfigurationOutput:
      example:
        id: "c3d4e5f6-a7b8-9012-cdef-345678901234"
        name: "ClearSale Production"
        description: "ClearSale anti-fraud for Pix transactions"
        providerId: "clearsale"
        kind: "catalog"
        config:
          baseUrl: "https://api.clearsale.com.br"
          environment: "production"
        allowedHosts:
          - "api.clearsale.com.br"
        schemaBindings: []
        status: "active"
        metadata:
          team: "risk"
        createdAt: "2026-03-17T14:00:00Z"
        updatedAt: "2026-03-17T14:00:00Z"
      properties:
        allowedHosts:
          description: Outbound allow-list of destination hostnames. The field is absent when the configuration declares no allow-list.
          items:
            maxLength: 253
            type: string
          maxItems: 100
          type: array
          example:
            - "api.clearsale.com.br"
        allowedPrivateHosts:
          description: Named private hosts this configuration may reach, managed by your operations team. The field is absent when the set is empty.
          items:
            maxLength: 253
            type: string
          maxItems: 100
          type: array
          example:
            - "nginx.pix-inline.internal"
        config:
          additionalProperties:
            type: object
          description: Provider-specific configuration.
          example:
            baseUrl: "https://api.clearsale.com.br"
            environment: "production"
          type: object
        createdAt:
          description: Timestamp when the configuration was created.
          example: "2026-03-17T14:00:00Z"
          format: date-time
          type: string
        description:
          description: Human-readable description.
          example: "ClearSale anti-fraud for Pix transactions"
          type: string
        id:
          description: Unique identifier of the configuration.
          example: "c3d4e5f6-a7b8-9012-cdef-345678901234"
          format: uuid
          type: string
        kind:
          description: "Connection kind of this configuration: `catalog` targets a provider published in the catalog, and `external_openapi` targets an OpenAPI document registered for your tenant."
          enum:
            - catalog
            - external_openapi
          example: "catalog"
          type: string
        metadata:
          additionalProperties:
            type: object
          description: Custom metadata.
          example:
            environment: "production"
            team: "risk"
          type: object
        name:
          description: Name of the configuration.
          example: "ClearSale Production"
          type: string
        providerId:
          description: ID of the catalog provider this configuration targets. A configuration of kind `external_openapi` created without one carries the reserved id `external.openapi` instead.
          example: "clearsale"
          type: string
        schemaBindings:
          description: Stored schemas this configuration binds to. The field is always present, and it is an empty list when the configuration binds no schema.
          items:
            $ref: "#/components/schemas/SchemaBindingOutput"
          type: array
        status:
          description: "Current status: `active` or `disabled`."
          enum:
            - active
            - disabled
          example: "active"
          type: string
        updatedAt:
          description: Timestamp of the last update.
          example: "2026-03-17T14:00:00Z"
          format: date-time
          type: string
      required:
        - config
        - createdAt
        - id
        - kind
        - name
        - providerId
        - schemaBindings
        - status
        - updatedAt
      type: object
    StepResultOutput:
      properties:
        attempts:
          description: Number of calls Flowker sent to the network for this step. `0` when Flowker sent no call.
          example: 1
          type: integer
        bodyFormat:
          description: "`xml` when the provider answered in XML, whether or not Flowker could decode the answer. Absent for a JSON answer."
          example: "xml"
          type: string
        bodyParseError:
          description: Reason Flowker could not decode the provider's XML answer. The step still completes, and `output` carries no body.
          example: "XML syntax error on line 1: unexpected EOF"
          type: string
        durationMs:
          description: Time taken to execute this step, in milliseconds.
          example: 0
          type: integer
        errorClass:
          description: "Category of the failure: `client_error`, `auth_error`, `transient`, `circuit_open`, or `timeout`. Present only on a failed step."
          example: "client_error"
          type: string
        errorMessage:
          description: Error message if the step failed. Null on success.
          type: string
        executedAt:
          description: Timestamp when this step was executed.
          example: "2026-03-17T14:35:02Z"
          format: date-time
          type: string
        nodeId:
          description: ID of the workflow node that was executed.
          example: "set-output"
          type: string
        output:
          additionalProperties:
            type: object
          description: Output data produced by this step.
          example:
            actionType: "set_output"
            output:
              status: "received"
          type: object
        rawBody:
          description: The provider answer as received, up to its first 8 KiB. Present when `bodyFormat` or `bodyParseError` is set.
          example: "<Ack><Status>OK</Status></Ack>"
          type: string
        requestFormat:
          description: "Request format the node configures: `json`, `xml_converted`, or `xml_passthrough`. Absent when the node configures none."
          example: "xml_converted"
          type: string
        retried:
          description: Whether Flowker sent more than one network call for this step.
          example: false
          type: boolean
        status:
          description: "Status of this step: `completed`, `failed`, or `skipped`."
          example: "completed"
          type: string
        statusCode:
          description: HTTP status the provider returned. Absent when no HTTP response arrived.
          example: 422
          type: integer
        stepName:
          description: Human-readable name of the step.
          example: "Set Payment Output"
          type: string
        stepNumber:
          description: Position of this step in the execution sequence (1-indexed).
          example: 1
          type: integer
      type: object
    UpdateExecutorConfigurationInput:
      properties:
        authentication:
          $ref: '#/components/schemas/ExecutorAuthenticationInput'
        baseUrl:
          description: Base URL of the external service.
          example: "https://api.serasa.com.br/v2"
          maxLength: 500
          type: string
        description:
          description: Human-readable description of this executor configuration.
          example: "Serasa KYC provider for identity validation"
          maxLength: 500
          type: string
        endpoints:
          description: List of HTTP endpoints exposed by this executor.
          items:
            $ref: '#/components/schemas/ExecutorEndpointInput'
          minItems: 1
          type: array
        metadata:
          additionalProperties:
            type: object
          description: Custom key-value pairs for tagging.
          type: object
        name:
          description: Display name for the executor configuration.
          example: "Serasa KYC"
          maxLength: 100
          minLength: 1
          type: string
      required:
        - authentication
        - baseUrl
        - endpoints
        - name
      type: object
    UpdateProviderConfigurationInput:
      properties:
        allowedHosts:
          description: 'Replaces the outbound allow-list. Omit the field to leave the stored list unchanged. Send an empty list to clear it, and a non-empty list to replace it. The new list must satisfy the same rules as on create, including the base-URL coverage check and the generic HTTP provider rule.'
          items:
            maxLength: 253
            type: string
          maxItems: 100
          type: array
          example:
            - "api.acme.com"
            - ".kyc-provider.io"
        allowedPrivateHosts:
          description: 'Replaces the named private-host allowance. Omit the field to leave the stored set unchanged. Send an empty list to clear it, and a non-empty list to replace it. Entries follow the same format as on create.'
          items:
            maxLength: 253
            type: string
          maxItems: 100
          type: array
          example:
            - "nginx.pix-inline.internal"
        config:
          additionalProperties:
            type: object
          description: Updated provider-specific configuration.
          type: object
        description:
          description: Updated description.
          example: "ClearSale anti-fraud — updated with new API version"
          maxLength: 500
          type: string
        metadata:
          additionalProperties:
            type: object
          description: Updated metadata.
          type: object
        name:
          description: Updated name.
          example: "ClearSale Production v2"
          maxLength: 100
          minLength: 1
          type: string
        schemaBindings:
          description: 'Replaces the schema bindings. Omit the field to leave the stored bindings unchanged. Send an empty list to remove them all, and a non-empty list to replace the set. Flowker checks every entry against the stored schemas before it saves anything.'
          items:
            $ref: "#/components/schemas/SchemaBindingInput"
          maxItems: 100
          type: array
      type: object
    UpdateWorkflowInput:
      example:
        name: "Payment Notification Flow v2"
        description: "Updated flow that sets the payment output."
        nodes:
          - id: "trigger-1"
            type: "trigger"
            name: "Webhook Trigger"
            position:
              x: 0
              y: 0
            data:
              triggerType: "webhook"
              path: "payments/received"
              method: "POST"
              input_contract: "open"
              format: "json"
          - id: "set-output"
            type: "action"
            name: "Set Payment Output"
            position:
              x: 200
              y: 0
            data:
              actionType: "set_output"
              output:
                status: "received"
        edges:
          - id: "e1"
            source: "trigger-1"
            target: "set-output"
      properties:
        description:
          description: Updated description of the workflow.
          example: "Updated flow that sets the payment output."
          maxLength: 500
          type: string
        edges:
          description: Updated connections between nodes.
          items:
            $ref: '#/components/schemas/WorkflowEdgeInput'
          maxItems: 200
          type: array
        metadata:
          additionalProperties:
            type: object
          description: Updated custom metadata.
          type: object
        name:
          description: Updated workflow name.
          example: "Payment Notification Flow v2"
          maxLength: 100
          minLength: 1
          type: string
        nodes:
          description: Updated list of workflow nodes.
          items:
            $ref: '#/components/schemas/WorkflowNodeInput'
          maxItems: 100
          type: array
      required:
        - name
      type: object
    WorkflowCreateOutput:
      properties:
        createdAt:
          description: Timestamp when the workflow was created.
          example: "2026-03-17T14:30:00Z"
          format: date-time
          type: string
        status:
          description: Initial status of the workflow (always `draft` on creation).
          example: "draft"
          type: string
        version:
          description: Version of the workflow definition.
          example: "1.0.0"
          type: string
        workflowId:
          description: Unique identifier of the created workflow.
          example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
          format: uuid
          type: string
      type: object
    WorkflowEdgeInput:
      properties:
        condition:
          description: Legacy free-text edge condition, retained for backward compatibility and not evaluated for routing. Leave it empty for new workflows and route with sourceHandle.
          example: ""
          maxLength: 500
          type: string
        id:
          description: Unique identifier for this edge within the workflow.
          example: "e1"
          maxLength: 50
          minLength: 1
          type: string
        label:
          description: Optional human-readable label for the edge (useful for visual editors).
          example: "On success"
          maxLength: 50
          type: string
        source:
          description: ID of the source node.
          example: "trigger-1"
          maxLength: 50
          minLength: 1
          type: string
        sourceHandle:
          description: Selects which output of the source node this edge follows. Required to route out of a conditional node, where it must equal the winning branch handle — a case output such as `case-1`, the `default` branch, or a boolean handle (`true`/`false`) for a free-text condition. Routing is driven by this handle.
          example: "case-1"
          maxLength: 50
          type: string
        target:
          description: ID of the target node.
          example: "set-output"
          maxLength: 50
          minLength: 1
          type: string
      required:
        - id
        - source
        - target
      type: object
    WorkflowEdgeOutput:
      properties:
        condition:
          description: Legacy free-text edge condition, retained for backward compatibility and not evaluated for routing.
          example: ""
          type: string
        id:
          description: Unique identifier of the edge.
          example: "e1"
          type: string
        label:
          description: Human-readable label.
          example: "On success"
          type: string
        source:
          description: ID of the source node.
          example: "trigger-1"
          type: string
        sourceHandle:
          description: Output of the source node this edge follows. For a conditional node it is the branch handle that routing matched.
          example: "case-1"
          type: string
        target:
          description: ID of the target node.
          example: "set-output"
          type: string
      type: object
    WorkflowListOutput:
      example:
        items:
          - id: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
            name: "Payment Notification Flow"
            description: "Receives a webhook trigger and sets the payment output."
            status: "active"
            nodes:
              - id: "trigger-1"
                type: "trigger"
                name: "Webhook Trigger"
                position:
                  x: 0
                  y: 0
                data:
                  triggerType: "webhook"
                  path: "payments/received"
                  method: "POST"
                  input_contract: "open"
                  format: "json"
              - id: "set-output"
                type: "action"
                name: "Set Payment Output"
                position:
                  x: 200
                  y: 0
                data:
                  actionType: "set_output"
                  output:
                    status: "received"
            edges:
              - id: "e1"
                source: "trigger-1"
                target: "set-output"
            metadata:
              team: "payments"
            createdAt: "2026-03-17T14:30:00Z"
            updatedAt: "2026-03-17T14:31:00Z"
        nextCursor: ""
        hasMore: false
      properties:
        hasMore:
          description: Indicates whether more pages are available.
          example: true
          type: boolean
        items:
          description: List of workflow definitions in the current page.
          items:
            $ref: '#/components/schemas/WorkflowOutput'
          type: array
        nextCursor:
          description: Cursor to pass in the next request to retrieve the following page.
          example: "eyJpZCI6ImExYjJjM2Q0In0="
          type: string
      type: object
    WorkflowNodeInput:
      properties:
        data:
          additionalProperties:
            type: object
          description: Configuration data specific to the node type (e.g., triggerType plus the trigger settings for triggers, executorId and providerConfigId for executors).
          example:
            triggerType: "webhook"
            path: "payments/received"
            method: "POST"
            input_contract: "open"
            format: "json"
          type: object
        id:
          description: Unique identifier for this node within the workflow. Used in edges to define connections.
          example: "trigger-1"
          maxLength: 50
          minLength: 1
          type: string
        name:
          description: Optional display name for the node.
          example: "Webhook Trigger"
          maxLength: 50
          type: string
        position:
          $ref: '#/components/schemas/PositionInput'
        type:
          description: "Type of the node: `trigger` (entry point), `executor` (external call), `conditional` (branching logic), or `action` (internal operation)."
          enum:
            - trigger
            - executor
            - conditional
            - action
          example: "trigger"
          type: string
      required:
        - id
        - position
        - type
      type: object
    WorkflowNodeOutput:
      properties:
        data:
          additionalProperties:
            type: object
          description: Configuration data specific to the node type.
          example:
            triggerType: "webhook"
            path: "payments/received"
            method: "POST"
            input_contract: "open"
            format: "json"
          type: object
        id:
          description: Unique identifier of the node within the workflow.
          example: "trigger-1"
          type: string
        name:
          description: Display name of the node.
          example: "Webhook Trigger"
          type: string
        position:
          $ref: '#/components/schemas/PositionOutput'
        type:
          description: Type of the node.
          example: "trigger"
          type: string
      type: object
    WorkflowOutput:
      example:
        id: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
        name: "Payment Notification Flow"
        description: "Receives a webhook trigger and sets the payment output."
        status: "active"
        nodes:
          - id: "trigger-1"
            type: "trigger"
            name: "Webhook Trigger"
            position:
              x: 0
              y: 0
            data:
              triggerType: "webhook"
              path: "payments/received"
              method: "POST"
              input_contract: "open"
              format: "json"
          - id: "set-output"
            type: "action"
            name: "Set Payment Output"
            position:
              x: 200
              y: 0
            data:
              actionType: "set_output"
              output:
                status: "received"
        edges:
          - id: "e1"
            source: "trigger-1"
            target: "set-output"
        metadata:
          team: "payments"
          environment: "sandbox"
        createdAt: "2026-03-17T14:30:00Z"
        updatedAt: "2026-03-17T14:31:00Z"
      properties:
        createdAt:
          description: Timestamp when the workflow was created.
          example: "2026-03-17T14:30:00Z"
          format: date-time
          type: string
        description:
          description: Human-readable description of the workflow.
          example: "Receives a webhook trigger and sets the payment output."
          type: string
        edges:
          description: Connections between nodes that define the execution flow.
          items:
            $ref: '#/components/schemas/WorkflowEdgeOutput'
          type: array
        id:
          description: Unique identifier of the workflow.
          example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
          format: uuid
          type: string
        metadata:
          additionalProperties:
            type: object
          description: Custom key-value pairs for tagging or categorizing.
          example:
            team: "payments"
            environment: "sandbox"
          type: object
        name:
          description: Unique name of the workflow.
          example: "Payment Notification Flow"
          type: string
        nodes:
          description: The steps that make up this workflow.
          items:
            $ref: '#/components/schemas/WorkflowNodeOutput'
          type: array
        status:
          description: "Current lifecycle status: `draft` (editable), `active` (executable), or `inactive` (archived)."
          enum:
            - draft
            - active
            - inactive
          example: "active"
          type: string
        updatedAt:
          description: Timestamp of the last update.
          example: "2026-03-17T15:00:00Z"
          format: date-time
          type: string
      type: object
    CatalogExecutorDetail:
      properties:
        category:
          description: Functional category of the executor.
          example: "HTTP"
          type: string
        id:
          description: Unique identifier of the executor.
          example: "http"
          type: string
        name:
          description: Display name of the executor.
          example: "HTTP Request"
          type: string
        providerId:
          description: ID of the provider this executor belongs to.
          example: ""
          type: string
        schema:
          description: JSON Schema defining the expected configuration for this executor.
          example: '{"type":"object","properties":{"method":{"type":"string"},"url":{"type":"string"}}}'
          type: string
        version:
          description: Version of the executor.
          example: "v1"
          type: string
      type: object
    CatalogExecutorSummary:
      properties:
        category:
          description: Functional category of the executor.
          example: "HTTP"
          type: string
        id:
          description: Unique identifier of the executor.
          example: "http"
          type: string
        name:
          description: Display name of the executor.
          example: "HTTP Request"
          type: string
        providerId:
          description: ID of the provider this executor belongs to.
          example: ""
          type: string
        version:
          description: Version of the executor.
          example: "v1"
          type: string
      type: object
    CatalogProviderDetail:
      properties:
        configSchema:
          description: JSON Schema defining the expected configuration for this provider.
          example: "{\"type\":\"object\",\"properties\":{\"baseUrl\":{\"type\":\"string\"},\"apiKey\":{\"type\":\"string\"}}}"
          type: string
        description:
          description: Description of the provider's capabilities.
          example: "Built-in HTTP connector for REST API integrations"
          type: string
        id:
          description: Unique identifier of the provider.
          example: "lerian-builtin"
          type: string
        name:
          description: Display name of the provider.
          example: "Lerian Built-in"
          type: string
        type:
          description: "Provider type: `native` for a Lerian product, such as Midaz or Tracer, or `external` for a connector to another service, such as the generic HTTP connector."
          enum:
            - native
            - external
          example: "external"
          type: string
        version:
          description: Provider version.
          example: "1.0.0"
          type: string
      type: object
    CatalogProviderSummary:
      properties:
        description:
          description: Brief description of the provider's capabilities.
          example: "Built-in HTTP connector for REST API integrations"
          type: string
        id:
          description: Unique identifier of the provider.
          example: "lerian-builtin"
          type: string
        name:
          description: Display name of the provider.
          example: "Lerian Built-in"
          type: string
        type:
          description: "Provider type: `native` for a Lerian product, such as Midaz or Tracer, or `external` for a connector to another service, such as the generic HTTP connector."
          enum:
            - native
            - external
          example: "external"
          type: string
        version:
          description: Provider version.
          example: "1.0.0"
          type: string
      type: object
    CatalogTriggerDetail:
      properties:
        id:
          description: Unique identifier of the trigger.
          example: "webhook"
          type: string
        name:
          description: Display name of the trigger.
          example: "Webhook"
          type: string
        schema:
          description: JSON Schema defining the expected configuration for this trigger.
          example: "{\"type\":\"object\",\"properties\":{\"method\":{\"type\":\"string\",\"enum\":[\"POST\"]}}}"
          type: string
        version:
          description: Trigger version.
          example: "v1"
          type: string
      type: object
    CatalogTriggerSummary:
      properties:
        id:
          description: Unique identifier of the trigger.
          example: "webhook"
          type: string
        name:
          description: Display name of the trigger.
          example: "Webhook"
          type: string
        version:
          description: Trigger version.
          example: "v1"
          type: string
      type: object
    CatalogValidationRequest:
      properties:
        config:
          additionalProperties:
            type: object
          description: The node configuration to check against the catalog executor's JSON Schema.
          example:
            method: "POST"
            path: "/score-transaction"
          type: object
        mappedTargets:
          description: Field paths the node supplies through an `inputMapping` instead of a fixed value in `config`. Flowker counts them as satisfied, so a node that maps a required field from the trigger or from an earlier step passes the check. Omit the field to check `config` on its own.
          items:
            type: string
          type:
            - array
            - "null"
          example:
            - "accountId"
      required:
        - config
      type: object
    CatalogTemplateSummary:
      properties:
        category:
          description: Template category (e.g., payments, onboarding).
          example: "payments"
          type: string
        description:
          description: Brief description of the template.
          example: "Receives a webhook request, validates the transaction via Tracer, and creates a transaction in Midaz if approved"
          type: string
        id:
          description: Unique identifier of the template.
          example: "tracer-midaz-validation"
          type: string
        name:
          description: Display name of the template.
          example: "Tracer Validation + Midaz Transaction"
          type: string
        version:
          description: Template version.
          example: "1.0.0"
          type: string
      type: object
    CatalogTemplateDetail:
      properties:
        category:
          description: Template category.
          example: "payments"
          type: string
        description:
          description: Description of the template.
          example: "Receives a webhook request, validates the transaction via Tracer, and creates a transaction in Midaz if approved"
          type: string
        id:
          description: Unique identifier of the template.
          example: "tracer-midaz-validation"
          type: string
        name:
          description: Display name of the template.
          example: "Tracer Validation + Midaz Transaction"
          type: string
        paramSchema:
          description: JSON Schema defining the expected parameters for this template. Dynamically enriched with active provider configuration options when applicable.
          example: '{"type":"object","properties":{"midaz_config_id":{"type":"string"}}}'
          type: string
        version:
          description: Template version.
          example: "1.0.0"
          type: string
      type: object
    CatalogTemplateValidationRequest:
      properties:
        params:
          additionalProperties:
            type: object
          description: Template parameter values to validate.
          example:
            midaz_config_id: "d4e5f6a7-b8c9-4012-d345-678901234567"
            risk_threshold: 0.8
          type: object
      type: object
    CatalogValidationResponse:
      properties:
        error:
          description: Validation error message. Empty when valid.
          example: ""
          type: string
        valid:
          description: Whether the configuration passed validation.
          example: true
          type: boolean
      type: object
    WorkflowSummaryOutput:
      description: Aggregated summary of all workflows grouped by status.
      properties:
        total:
          description: Total number of workflows.
          example: 15
          type: integer
        active:
          description: Number of currently active workflows.
          example: 8
          type: integer
        byStatus:
          description: Breakdown of workflows by status.
          items:
            $ref: '#/components/schemas/StatusCountOutput'
          type: array
      type: object
    ExecutionSummaryOutput:
      description: Aggregated summary of workflow executions.
      properties:
        total:
          description: Total number of executions matching the filters.
          example: 150
          type: integer
        completed:
          description: Number of completed executions.
          example: 120
          type: integer
        failed:
          description: Number of failed executions.
          example: 25
          type: integer
        pending:
          description: Number of pending executions.
          example: 3
          type: integer
        running:
          description: Number of currently running executions.
          example: 2
          type: integer
      type: object
    StatusCountOutput:
      description: Count of items grouped by status.
      properties:
        status:
          description: Status value.
          example: "active"
          type: string
        count:
          description: Number of items with this status.
          example: 8
          type: integer
      type: object
    DiscardAllMissedOutput:
      additionalProperties: false
      properties:
        discarded:
          format: int64
          type: integer
          example: 42
      required:
        - discarded
      type: object
    ListVersionsResponse:
      additionalProperties: false
      properties:
        pinnedVersion:
          type: string
          example: "1"
        service:
          type: string
          example: ledger
        versions:
          items:
            type: string
          type:
            - array
            - "null"
      required:
        - service
        - versions
        - pinnedVersion
      type: object
    MissedOccurrenceOutput:
      additionalProperties: false
      properties:
        attempts:
          format: int64
          type: integer
          example: 1
        createdAt:
          format: date-time
          type: string
          example: "2026-01-15T10:30:00Z"
        cronExpr:
          type: string
          example: 0 9 * * *
        id:
          format: uuid
          type: string
          example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
        lastError:
          type: string
          example: provider timeout after 30s
        scheduledFor:
          format: date-time
          type: string
          example: "2026-01-15T10:30:00Z"
        status:
          type: string
          example: pending-review
        timezone:
          type: string
          example: America/Sao_Paulo
        updatedAt:
          format: date-time
          type: string
          example: "2026-01-15T10:30:00Z"
        workflowId:
          format: uuid
          type: string
          example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
      required:
        - id
        - workflowId
        - status
        - cronExpr
        - timezone
        - scheduledFor
        - attempts
        - createdAt
        - updatedAt
      type: object
    MissedOccurrencesOutput:
      additionalProperties: false
      properties:
        occurrences:
          items:
            $ref: "#/components/schemas/MissedOccurrenceOutput"
          type:
            - array
            - "null"
      required:
        - occurrences
      type: object
    OpenAPIOperationSummary:
      additionalProperties: false
      properties:
        hasRequest:
          type: boolean
          example: true
        hasResponse:
          type: boolean
          example: true
        method:
          type: string
          example: POST
        operationId:
          type: string
          example: createTransaction
        path:
          type: string
          example: /v1/transactions
      required:
        - path
        - method
        - hasRequest
        - hasResponse
      type: object
    OpenAPISchemaDetailOutput:
      additionalProperties: false
      properties:
        byteSize:
          format: int64
          type: integer
          example: 4096
        content:
          type: string
          example: |-
            openapi: 3.0.3
            info:
              title: JD SPI API
        contentHash:
          type: string
          example: sha256:9f2c8b1a4d7e0f3c6b5a8d2e1f4c7b0a3d6e9f2c5b8a1d4e7f0c3b6a9d2e5f8c
        createdAt:
          format: date-time
          type: string
          example: "2026-01-15T10:30:00Z"
        createdBy:
          type: string
          example: user@example.com
        id:
          format: uuid
          type: string
          example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
        name:
          type: string
          example: jd-spi
        openapiVersion:
          type: string
          example: 3.0.3
        operationCount:
          format: int64
          type: integer
          example: 42
        operations:
          items:
            $ref: "#/components/schemas/OpenAPIOperationSummary"
          type:
            - array
            - "null"
        title:
          type: string
          example: JD SPI API
        version:
          type: string
          example: "1"
      required:
        - content
        - operations
        - id
        - name
        - version
        - contentHash
        - byteSize
        - title
        - openapiVersion
        - operationCount
        - createdBy
        - createdAt
      type: object
    OpenAPISchemaListOutput:
      additionalProperties: false
      properties:
        hasMore:
          type: boolean
          example: true
        items:
          items:
            $ref: "#/components/schemas/OpenAPISchemaOutput"
          type:
            - array
            - "null"
        nextCursor:
          type: string
          example: eyJpZCI6IjAxOGYzZTJhIn0=
      required:
        - items
        - nextCursor
        - hasMore
      type: object
    OpenAPISchemaOutput:
      additionalProperties: false
      properties:
        byteSize:
          format: int64
          type: integer
          example: 4096
        contentHash:
          type: string
          example: sha256:9f2c8b1a4d7e0f3c6b5a8d2e1f4c7b0a3d6e9f2c5b8a1d4e7f0c3b6a9d2e5f8c
        createdAt:
          format: date-time
          type: string
          example: "2026-01-15T10:30:00Z"
        createdBy:
          type: string
          example: user@example.com
        id:
          format: uuid
          type: string
          example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
        name:
          type: string
          example: jd-spi
        openapiVersion:
          type: string
          example: 3.0.3
        operationCount:
          format: int64
          type: integer
          example: 42
        title:
          type: string
          example: JD SPI API
        version:
          type: string
          example: "1"
      required:
        - id
        - name
        - version
        - contentHash
        - byteSize
        - title
        - openapiVersion
        - operationCount
        - createdBy
        - createdAt
      type: object
    OperationContractOutput:
      additionalProperties: false
      properties:
        bodyContentType:
          type: string
          example: application/json
        bodyRequired:
          type: boolean
          example: true
        found:
          type: boolean
          example: true
        hasBody:
          type: boolean
          example: true
        inputSchema:
          description: Dereferenced JSON Schema of the operation's request body.
          example:
            properties:
              amount:
                type: number
            type: object
        outputSchema:
          description: Dereferenced JSON Schema of the operation's 2xx response body.
          example:
            properties:
              id:
                type: string
            type: object
        params:
          items:
            $ref: "#/components/schemas/OperationParamOutput"
          type:
            - array
            - "null"
      required:
        - found
        - params
        - hasBody
        - bodyRequired
      type: object
    OperationParamOutput:
      additionalProperties: false
      properties:
        in:
          description: Parameter location (path, query, header, or cookie).
          type: string
          example: path
        name:
          description: Parameter name.
          type: string
          example: caseId
        required:
          description: Whether the parameter is required by the operation.
          type: boolean
          example: true
        schema:
          description: Dereferenced JSON Schema of the parameter value.
          example:
            type: string
      required:
        - name
        - in
        - required
      type: object
    PendingReviewCountsOutput:
      additionalProperties: false
      properties:
        counts:
          additionalProperties:
            format: int64
            type: integer
          type: object
      required:
        - counts
      type: object
    PreviewProviderConfigInput:
      additionalProperties: false
      properties:
        allowedHosts:
          description: Outbound allow-list of destination hostnames, supplied inline. Entries follow the same rules as `allowedHosts` on the provider configuration.
          items:
            maxLength: 253
            type: string
          maxItems: 100
          type:
            - array
            - "null"
        allowedPrivateHosts:
          description: Named private hosts, supplied inline. Entries follow the same rules as `allowedPrivateHosts` on the provider configuration.
          items:
            maxLength: 253
            type: string
          maxItems: 100
          type:
            - array
            - "null"
        config:
          additionalProperties: {}
          description: Provider config map (base_url, auth, credentials, etc.). Optional — some providers need no config.
          type: object
          example:
            base_url: https://api.example.com
        providerId:
          description: Catalog provider id the node targets (e.g. http, jd-spi, ledger).
          type: string
          example: http
      required:
        - providerId
      type: object
    PreviewRequestInput:
      additionalProperties: false
      properties:
        node:
          additionalProperties: {}
          description: Executor node configuration (executorId, providerConfigId, method, path, headers, body, config, inputMapping/transforms) — the same map shape persisted on a workflow node's data slot.
          type: object
          example:
            body:
              amount: ${body.amount}
            executorId: http.post-v1-pay
            method: POST
            path: /v1/pay
            providerConfigId: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6c4d5
        providerConfig:
          $ref: "#/components/schemas/PreviewProviderConfigInput"
          description: Provider configuration the node targets, supplied inline so the preview is a pure function of its inputs (no DB / vault read).
          example:
            config:
              base_url: https://api.example.com
            providerId: http
        sampleInput:
          additionalProperties: {}
          description: Arbitrary JSON used as the workflow context to resolve mappings and ${node.*}/${body.*} references; unresolved refs stay literal. Optional (a preview with no sample context is valid).
          type: object
          example:
            amount: 150
            currency: BRL
      required:
        - node
        - providerConfig
      type: object
    PreviewRequestResult:
      additionalProperties: false
      properties:
        body:
          type: string
          example: "{\"amount\":150.00,\"currency\":\"BRL\"}"
        curl:
          type: string
        headers:
          additionalProperties:
            type: string
          type: object
        method:
          type: string
          example: POST
        unresolved:
          items:
            type: string
          type:
            - array
            - "null"
        url:
          type: string
          example: https://api.example.com/v1/pay
      required:
        - method
        - url
        - headers
        - body
        - curl
        - unresolved
      type: object
    SchemaBindingInput:
      description: One binding between a provider configuration and a stored schema.
      properties:
        operations:
          description: 'Restricts an OpenAPI binding to the listed operations. Omit it, or send null, to bind the whole document. Only a binding of type "openapi" accepts operations.'
          items:
            $ref: "#/components/schemas/SchemaBindingOperationInput"
          maxItems: 100
          type:
            - array
            - "null"
        schemaId:
          description: Identifier of the stored schema, as a UUID.
          example: "018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8"
          type: string
        type:
          description: Which schema registry the binding points at.
          enum:
            - xsd
            - openapi
          example: "openapi"
          type: string
      required:
        - schemaId
        - type
      type: object
    SchemaBindingOperationInput:
      description: One operation of a bound OpenAPI document.
      properties:
        method:
          description: 'HTTP method of the operation. One of GET, PUT, POST, DELETE, OPTIONS, HEAD, PATCH or TRACE. Flowker uppercases the value.'
          example: "POST"
          maxLength: 10
          type: string
        path:
          description: Path of the operation. It must start with a slash.
          example: "/payments"
          maxLength: 2048
          type: string
      required:
        - method
        - path
      type: object
    SchemaBindingOperationOutput:
      description: One operation of a bound OpenAPI document.
      properties:
        method:
          description: HTTP method of the operation, in upper case.
          example: "POST"
          type: string
        path:
          description: Path of the operation.
          example: "/payments"
          type: string
      required:
        - method
        - path
      type: object
    SchemaBindingOutput:
      description: One binding between a provider configuration and a stored schema.
      properties:
        operations:
          description: The operations an OpenAPI binding is restricted to. The field is absent when the binding covers the whole document.
          items:
            $ref: "#/components/schemas/SchemaBindingOperationOutput"
          type: array
        schemaId:
          description: Identifier of the stored schema, as a UUID.
          example: "018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8"
          type: string
        type:
          description: Which schema registry the binding points at.
          enum:
            - xsd
            - openapi
          example: "openapi"
          type: string
      required:
        - schemaId
        - type
      type: object
    SchemaDeleteWarningsOutput:
      additionalProperties: false
      properties:
        providerConfigurationWarnings:
          items:
            $ref: "#/components/schemas/SchemaReferenceRef"
          type:
            - array
            - "null"
        warnings:
          items:
            $ref: "#/components/schemas/SchemaReferenceRef"
          type:
            - array
            - "null"
      required:
        - warnings
      type: object
    SchemaReferenceRef:
      additionalProperties: false
      properties:
        id:
          type: string
          example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
        name:
          type: string
          example: KYC Provider
      required:
        - id
        - name
      type: object
    SchemaReferencesResponse:
      additionalProperties: false
      properties:
        providerConfigurations:
          items:
            $ref: "#/components/schemas/SchemaReferrerDetail"
          type:
            - array
            - "null"
        schemaId:
          type: string
          example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
        workflows:
          items:
            $ref: "#/components/schemas/SchemaReferrerDetail"
          type:
            - array
            - "null"
      required:
        - schemaId
        - providerConfigurations
        - workflows
      type: object
    SchemaReferrerDetail:
      additionalProperties: false
      properties:
        id:
          type: string
          example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
        name:
          type: string
          example: KYC Provider
        status:
          type: string
          example: active
      required:
        - id
        - name
        - status
      type: object
    SetVersionPinRequest:
      additionalProperties: false
      properties:
        version:
          type: string
          example: "1"
      required:
        - version
      type: object
    SkippedOccurrenceOutput:
      additionalProperties: false
      properties:
        attempts:
          format: int64
          type: integer
          example: 1
        createdAt:
          format: date-time
          type: string
          example: "2026-01-15T10:30:00Z"
        cronExpr:
          type: string
          example: 0 9 * * *
        id:
          format: uuid
          type: string
          example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
        lastError:
          type: string
          example: provider timeout after 30s
        scheduledFor:
          format: date-time
          type: string
          example: "2026-01-15T10:30:00Z"
        skipReason:
          type: string
          example: active-run
        status:
          type: string
          example: skipped
        timezone:
          type: string
          example: America/Sao_Paulo
        updatedAt:
          format: date-time
          type: string
          example: "2026-01-15T10:30:00Z"
        workflowId:
          format: uuid
          type: string
          example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
      required:
        - id
        - workflowId
        - status
        - cronExpr
        - timezone
        - scheduledFor
        - attempts
        - createdAt
        - updatedAt
      type: object
    SkippedOccurrencesOutput:
      additionalProperties: false
      properties:
        occurrences:
          items:
            $ref: "#/components/schemas/SkippedOccurrenceOutput"
          type:
            - array
            - "null"
      required:
        - occurrences
      type: object
    UpcomingOccurrenceOutput:
      additionalProperties: false
      properties:
        scheduledFor:
          format: date-time
          type: string
          example: "2026-01-15T10:30:00Z"
      required:
        - scheduledFor
      type: object
    UpcomingOccurrencesOutput:
      additionalProperties: false
      properties:
        occurrences:
          items:
            $ref: "#/components/schemas/UpcomingOccurrenceOutput"
          type:
            - array
            - "null"
      required:
        - occurrences
      type: object
    VersionPinResponse:
      additionalProperties: false
      properties:
        service:
          type: string
          example: ledger
        updatedAt:
          type: string
          example: "2026-01-15T10:30:00Z"
        version:
          type: string
          example: "1"
      required:
        - service
        - version
        - updatedAt
      type: object
    XSDSchemaDetailOutput:
      additionalProperties: false
      properties:
        byteSize:
          description: Size of the schema content in bytes.
          format: int64
          type: integer
          example: 4096
        content:
          description: Raw XSD document content.
          type: string
          example: <?xml version="1.0"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
        contentHash:
          description: Hash of the schema content for integrity verification.
          type: string
          example: sha256:9f2c8b1a4d7e0f3c6b5a8d2e1f4c7b0a3d6e9f2c5b8a1d4e7f0c3b6a9d2e5f8c
        createdAt:
          description: Creation timestamp (RFC 3339).
          format: date-time
          type: string
          example: "2026-01-15T10:30:00Z"
        createdBy:
          description: Identity that uploaded the schema.
          type: string
          example: user@example.com
        id:
          description: XSD schema identifier.
          format: uuid
          type: string
          example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
        imports:
          description: Namespaces imported/included by this schema.
          items:
            type: string
          type:
            - array
            - "null"
          example:
            - urn:iso:std:iso:20022:tech:xsd:head.001.001.02
        name:
          description: Schema name.
          type: string
          example: pain.001
        targetNamespace:
          description: XSD targetNamespace declared by the schema.
          type: string
          example: urn:iso:std:iso:20022:tech:xsd:pain.001.001.09
        version:
          description: Schema version.
          type: string
          example: "1"
      required:
        - content
        - id
        - name
        - version
        - targetNamespace
        - contentHash
        - byteSize
        - imports
        - createdBy
        - createdAt
      type: object
    XSDSchemaListOutput:
      additionalProperties: false
      properties:
        hasMore:
          type: boolean
          example: true
        items:
          items:
            $ref: "#/components/schemas/XSDSchemaOutput"
          type:
            - array
            - "null"
        nextCursor:
          type: string
          example: eyJpZCI6IjAxOGYzZTJhIn0=
      required:
        - items
        - nextCursor
        - hasMore
      type: object
    XSDSchemaOutput:
      additionalProperties: false
      properties:
        byteSize:
          description: Size of the schema content in bytes.
          format: int64
          type: integer
          example: 4096
        contentHash:
          description: Hash of the schema content for integrity verification.
          type: string
          example: sha256:9f2c8b1a4d7e0f3c6b5a8d2e1f4c7b0a3d6e9f2c5b8a1d4e7f0c3b6a9d2e5f8c
        createdAt:
          description: Creation timestamp (RFC 3339).
          format: date-time
          type: string
          example: "2026-01-15T10:30:00Z"
        createdBy:
          description: Identity that uploaded the schema.
          type: string
          example: user@example.com
        id:
          description: XSD schema identifier.
          format: uuid
          type: string
          example: 018f3e2a-1c4d-7b9e-a1b2-c3d4e5f6a7b8
        imports:
          description: Namespaces imported/included by this schema.
          items:
            type: string
          type:
            - array
            - "null"
          example:
            - urn:iso:std:iso:20022:tech:xsd:head.001.001.02
        name:
          description: Schema name.
          type: string
          example: pain.001
        targetNamespace:
          description: XSD targetNamespace declared by the schema.
          type: string
          example: urn:iso:std:iso:20022:tech:xsd:pain.001.001.09
        version:
          description: Schema version.
          type: string
          example: "1"
      required:
        - id
        - name
        - version
        - targetNamespace
        - contentHash
        - byteSize
        - imports
        - createdBy
        - createdAt
      type: object
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT bearer token issued by the identity provider. Send it in the Authorization header as `Bearer <token>`.
security:
  - BearerAuth: []
