openapi: 3.0.1
info:
  title: Kestra EE
  description: |-
    All API operations, except for Instance-owner-only endpoints, require a tenant identifier in the HTTP path.<br/>
    Endpoints designated as Instance-owner-only are not tenant-scoped.
  version: 2.0.5
tags:
- name: Flows
  description: Flows api
- name: Templates
  description: Templates api
- name: Executions
  description: Executions api
- name: Logs
  description: Logs api
- name: Namespaces
  description: Namespaces api
- name: Users
  description: Users api
- name: Groups
  description: Groups api
- name: Bindings
  description: Bindings api
- name: Roles
  description: Roles api
- name: Audit Logs
  description: Audit Logs api
- name: Auths
  description: Auth api
- name: Stats
  description: Stats api
- name: Tenants
  description: Tenants api
- name: Misc
  description: Misc api
paths:
  /api/v1/auditlogs/export:
    get:
      tags:
      - Audit Logs
      summary: Export all audit logs as a streamed CSV file
      operationId: exportAuditLogsForAllTenants
      parameters:
      - name: filters
        in: query
        description: A list of query filters
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      responses:
        '200':
          description: Ok
          content:
            text/csv:
              schema:
                type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/auditlogs/search:
    get:
      tags:
      - Audit Logs
      summary: Search for audit logs across all tenants, required to be an instance owner
      operationId: searchAuditLogsForAllTenants
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: A list of query filters
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      responses:
        '200':
          description: searchAuditLogsForAllTenants 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_AuditLogController.ApiAuditLogItem_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/auditlogs/{id}/diff:
    get:
      tags:
      - Audit Logs
      summary: Retrieve the diff between audit logs from global resource like users
      description: Retrieves the diff between the current version and a selected previous version of a given resource based on audit logs.
      operationId: getGlobalResourceDiffFromAuditLog
      parameters:
      - name: id
        in: path
        description: The id of the audit log
        required: true
        schema:
          type: string
      - name: previousId
        in: query
        description: The id of a previous audit log to compare with
        explode: false
        schema:
          type: string
          nullable: true
      responses:
        '200':
          description: getGlobalResourceDiffFromAuditLog 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuditLogController.AuditLogDiff'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/auths:
    get:
      tags:
      - Auths
      summary: Retrieve list of authentication methods
      operationId: index
      responses:
        '200':
          description: index 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthController.Auth'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
  /api/v1/banners:
    post:
      tags:
      - Banners
      summary: Create an announcement banner
      description: Instance-owner-only. Creates a global announcement banner visible to all tenants.
      operationId: createBanner
      requestBody:
        description: The announcement banner to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Banner'
        required: true
      responses:
        '200':
          description: createBanner 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Banner'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/banners/search:
    get:
      tags:
      - Banners
      summary: Retrieve all announcement banners
      description: Instance-owner-only. Returns all global announcement banners.
      operationId: searchBanners
      parameters:
      - name: filters
        in: query
        description: A list of query filters
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      responses:
        '200':
          description: searchBanners 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Banner'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/banners/{id}:
    put:
      tags:
      - Banners
      summary: Update an announcement banner
      description: Instance-owner-only. Updates a global announcement banner by its ID.
      operationId: updateBanner
      parameters:
      - name: id
        in: path
        description: The banner id
        required: true
        schema:
          type: string
      requestBody:
        description: The banner to update
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Banner'
        required: true
      responses:
        '200':
          description: updateBanner 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Banner'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Banners
      summary: Delete an announcement banner
      description: Instance-owner-only. Deletes a global announcement banner by its ID.
      operationId: deleteBanner
      parameters:
      - name: id
        in: path
        description: The banner id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteBanner 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/basicAuthValidationErrors:
    get:
      tags:
      - Misc
      summary: Retrieve the instance configuration.
      description: Global endpoint available to all users.
      operationId: getBasicAuthConfigErrors
      responses:
        '200':
          description: getBasicAuthConfigErrors 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/configs:
    get:
      tags:
      - Misc
      summary: Retrieve the instance configuration.
      description: Requires authentication; see /configs/login for the public, unauthenticated subset used by the login page.
      operationId: getConfiguration
      responses:
        '200':
          description: getConfiguration 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MiscController.EEConfiguration'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/configs/login:
    get:
      tags:
      - Misc
      summary: Retrieve the configuration required by the login page.
      description: Public endpoint available to unauthenticated users; exposes only what the login/setup UI needs.
      operationId: getLoginConfiguration
      responses:
        '200':
          description: getLoginConfiguration 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MiscController.LoginConfiguration'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/forgotten-password:
    post:
      tags:
      - Auths
      summary: Sends an email to reset a password.
      description: Sends an email to reset a password. Note that whatever the username is found or not, the response will always be 200 to avoid leaking information.
      operationId: forgottenPassword
      requestBody:
        description: The username of the user trying to reset its password
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthController.ForgottenPasswordRequest'
        required: true
      responses:
        '200':
          description: forgottenPassword 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
  /api/v1/instance/maintenance/enter:
    post:
      tags:
      - Cluster
      - Maintenance
      summary: Enter cluster maintenance mode
      description: Requires a role with the INFRASTRUCTURE permission (Instance-owner-only).
      operationId: enterMaintenance
      responses:
        '200':
          description: enterMaintenance 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/maintenance/exit:
    post:
      tags:
      - Cluster
      - Maintenance
      summary: Exit cluster maintenance mode
      description: Requires a role with the INFRASTRUCTURE permission (Instance-owner-only).
      operationId: exitMaintenance
      responses:
        '200':
          description: exitMaintenance 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/maintenance/status:
    get:
      tags:
      - Cluster
      - Maintenance
      summary: Get maintenance mode status
      description: Returns maintenance mode status and per-service readiness.
      operationId: maintenanceStatus
      responses:
        '200':
          description: maintenanceStatus 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceStatusResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/mcp-servers:
    get:
      tags:
      - Mcp
      summary: List all MCP servers across all tenants
      operationId: listAllMcpServers
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 100
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      responses:
        '200':
          description: listAllMcpServers 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_ApiInstanceMcpServer_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/metrics/{serviceType}:
    get:
      tags:
      - Services
      summary: Get metrics for running services
      operationId: metrics
      parameters:
      - name: serviceType
        in: query
        required: true
        explode: false
        schema:
          $ref: '#/components/schemas/ServiceType'
      responses:
        '200':
          description: metrics 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Metric'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/policies:
    post:
      tags:
      - Policies
      summary: Create an instance-scope policy from its YAML source
      operationId: createInstancePolicy
      requestBody:
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: createInstancePolicy 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Policy'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/policies/delete/by-ids:
    delete:
      tags:
      - Policies
      summary: Delete instance-scope policies by their IDs
      operationId: deleteInstancePoliciesByIds
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        '200':
          description: deleteInstancePoliciesByIds 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/policies/export:
    post:
      tags:
      - Policies
      summary: Export every instance-scope policy as YAML documents joined by '---'
      operationId: exportInstancePolicies
      responses:
        '200':
          description: exportInstancePolicies 200 response
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/policies/export/by-ids:
    post:
      tags:
      - Policies
      summary: Export instance-scope policies by their IDs as YAML documents joined by '---'
      operationId: exportInstancePoliciesByIds
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        '200':
          description: exportInstancePoliciesByIds 200 response
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/policies/search:
    get:
      tags:
      - Policies
      summary: Search instance-scope policies, including the read-only STATIC policies declared in configuration
      operationId: searchInstancePolicies
      parameters:
      - name: page
        in: query
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: A list of query filters
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      responses:
        '200':
          description: searchInstancePolicies 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_ApiPolicySummary_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/policies/validate:
    post:
      tags:
      - Policies
      summary: Validate an instance-scope policy YAML source without persisting it
      operationId: validateInstancePolicy
      requestBody:
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: validateInstancePolicy 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateConstraintViolation'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/policies/{id}:
    get:
      tags:
      - Policies
      summary: Get an instance-scope policy, or with scope=STATIC a read-only policy declared in configuration
      operationId: getInstancePolicy
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: scope
        in: query
        description: INSTANCE (default) or STATIC — ids are only unique per scope, so the scope disambiguates a config-declared policy from a persisted one sharing its id
        explode: false
        schema:
          $ref: '#/components/schemas/Scope'
      responses:
        '200':
          description: getInstancePolicy 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Policy'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Policies
      summary: Update an instance-scope policy from its YAML source
      operationId: updateInstancePolicy
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: updateInstancePolicy 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Policy'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Policies
      summary: Delete an instance-scope policy
      operationId: deleteInstancePolicy
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: On success
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/policies/{id}/evaluate:
    get:
      tags:
      - Policies
      summary: Dry-run an instance-scope policy, or with scope=STATIC a policy declared in configuration, against every flow
      operationId: evaluateInstancePolicy
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 25
      - name: scope
        in: query
        description: INSTANCE (default) or STATIC — ids are only unique per scope, so the scope disambiguates a config-declared policy from a persisted one sharing its id
        explode: false
        schema:
          $ref: '#/components/schemas/Scope'
      responses:
        '200':
          description: evaluateInstancePolicy 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyEvaluation'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/services/active:
    get:
      tags:
      - Services
      summary: List all active services
      description: Requires a role with the INFRASTRUCTURE permission (Instance-owner-only).
      operationId: getActiveServices
      responses:
        '200':
          description: getActiveServices 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstanceController.ApiActiveServiceList'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/services/search:
    get:
      tags:
      - Services
      summary: Search for a service (e.g. Worker, Executor, etc)
      description: Requires a role with the INFRASTRUCTURE permission (Instance-owner-only).
      operationId: searchServices
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      responses:
        '200':
          description: searchServices 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_InstanceController.ApiServiceInstance_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/services/{id}:
    get:
      tags:
      - Services
      summary: Retrieve details of a specific service
      description: Requires a role with the INFRASTRUCTURE permission (Instance-owner-only).
      operationId: getService
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getService 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceInstance'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/versioned-plugins:
    get:
      tags:
      - Plugins
      summary: List installed plugin artifacts
      description: Instance-owner-only. Lists all currently installed plugin artifacts. Requires INFRASTRUCTURE permission.
      operationId: listVersionedPlugin
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      responses:
        '200':
          description: listVersionedPlugin 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_InstanceController.ApiPluginArtifact_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/versioned-plugins/available:
    get:
      tags:
      - Plugins
      summary: List available plugin artifacts
      description: Instance-owner-only. Lists all plugin artifacts available for installation. Requires INFRASTRUCTURE permission.
      operationId: listAvailableVersionedPlugins
      responses:
        '200':
          description: listAvailableVersionedPlugins 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/versioned-plugins/available/secrets-managers:
    get:
      tags:
      - Plugins
      summary: List available plugin artifacts for Kestra Secret Manager
      description: Instance-owner-only. Lists all secret managers available for installation. Requires INFRASTRUCTURE permission.
      operationId: listAvailableVersionedPluginsForSecretManager
      responses:
        '200':
          description: listAvailableVersionedPluginsForSecretManager 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/versioned-plugins/available/storages:
    get:
      tags:
      - Plugins
      summary: List available plugin artifacts for Kestra Internal Storage
      description: Instance-owner-only. Lists all internal storages available for installation. Requires INFRASTRUCTURE permission.
      operationId: listAvailableVersionedPluginsForStorage
      responses:
        '200':
          description: listAvailableVersionedPluginsForStorage 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/versioned-plugins/install:
    post:
      tags:
      - Plugins
      summary: Install specified plugin artifacts
      description: Instance-owner-only. Installs one or more plugin artifacts. Requires INFRASTRUCTURE permission.
      operationId: installVersionedPlugins
      requestBody:
        description: List of plugins
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InstanceController.ApiPluginListRequest'
        required: true
      responses:
        '200':
          description: installVersionedPlugins 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstanceController.ApiPluginArtifactList_PluginArtifact_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/versioned-plugins/resolve:
    post:
      tags:
      - Plugins
      summary: Resolve versions for specified plugin artifacts
      description: Instance-owner-only. Resolves compatible versions for a list of plugin artifacts. Requires INFRASTRUCTURE permission.
      operationId: resolveVersionedPlugins
      requestBody:
        description: List of plugins
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InstanceController.ApiPluginListRequest'
        required: true
      responses:
        '200':
          description: resolveVersionedPlugins 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstanceController.ApiPluginArtifactList_PluginResolutionResult_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/versioned-plugins/uninstall:
    delete:
      tags:
      - Plugins
      summary: Uninstall plugin artifacts
      description: Instance-owner-only. Uninstalls one or more plugin artifacts. Requires INFRASTRUCTURE permission.
      operationId: uninstallVersionedPlugins
      requestBody:
        description: List of plugins
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InstanceController.ApiPluginListRequest'
        required: true
      responses:
        '200':
          description: uninstallVersionedPlugins 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstanceController.ApiPluginArtifactList_PluginArtifact_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/versioned-plugins/upload:
    post:
      tags:
      - Plugins
      summary: Upload a plugin artifact JAR file
      description: Instance-owner-only. Uploads a plugin JAR file for installation. Requires INFRASTRUCTURE permission.
      operationId: uploadVersionedPlugins
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
              - file
              type: object
              properties:
                file:
                  type: string
                  format: binary
                forceInstallOnExistingVersions:
                  type: boolean
                  nullable: true
            encoding:
              file:
                contentType: application/octet-stream
                explode: false
        required: true
      responses:
        '200':
          description: uploadVersionedPlugins 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginArtifact'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/versioned-plugins/{groupId}/{artifactId}:
    get:
      tags:
      - Plugins
      summary: Retrieve details of a plugin artifact
      description: Instance-owner-only. Retrieves metadata and available versions for a given plugin artifact. Requires INFRASTRUCTURE permission.
      operationId: getVersionedPluginDetails
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
      - name: artifactId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getVersionedPluginDetails 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstanceController.ApiPluginVersions'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/versioned-plugins/{groupId}/{artifactId}/icon.svg:
    get:
      tags:
      - Plugins
      summary: Get a plugin artifact icon as a raw SVG
      description: Instance-owner-only. Serves the plugin artifact icon as a standalone, browser-cacheable `image/svg+xml` resource so icons are no longer inlined (base64) in the artifact listings. Installed artifacts are served from the local plugin; other artifacts have their icon proxied lazily from the Kestra API. Requires INFRASTRUCTURE permission.
      operationId: getVersionedPluginIcon
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
      - name: artifactId
        in: path
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: Content hash used as a cache-busting token; when present the icon is cached indefinitely.
        explode: false
        schema:
          type: string
          nullable: true
      responses:
        '200':
          description: getVersionedPluginIcon 200 response
          content:
            image/svg+xml:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/versioned-plugins/{groupId}/{artifactId}/release-notes:
    get:
      tags:
      - Plugins
      summary: Fetch release notes content for a plugin version
      description: Instance-owner-only. Fetches and returns the Markdown release notes for a given plugin artifact version.
      operationId: getPluginReleaseNotesContent
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          pattern: ^[a-z0-9][a-z0-9.\-]*$
          type: string
      - name: artifactId
        in: path
        required: true
        schema:
          pattern: ^[a-z0-9][a-z0-9\-]*$
          type: string
      - name: version
        in: query
        required: true
        explode: false
        schema:
          pattern: ^[a-z0-9][a-z0-9\-.]*$
          type: string
      responses:
        '200':
          description: getPluginReleaseNotesContent 200 response
          content:
            text/plain:
              schema:
                type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/versioned-plugins/{groupId}/{artifactId}/{version}:
    get:
      tags:
      - Plugins
      summary: Retrieve details of a specific plugin artifact version
      description: Instance-owner-only. Retrieves metadata for a specific version of a plugin artifact. Requires INFRASTRUCTURE permission.
      operationId: getVersionedPluginDetailsFromVersion
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
      - name: artifactId
        in: path
        required: true
        schema:
          type: string
      - name: version
        in: path
        required: true
        schema:
          pattern: '[0-9].*'
          type: string
      responses:
        '200':
          description: getVersionedPluginDetailsFromVersion 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstanceController.ApiPluginVersionDetails'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/worker-groups:
    get:
      tags:
      - Worker Groups
      summary: List all worker groups
      description: Instance owner only. Lists all worker groups with their configuration and token summaries.
      operationId: list
      parameters:
      - name: filters
        in: query
        description: A list of query filters
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      responses:
        '200':
          description: list 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerGroupController.ApiWorkerGroupList'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - Worker Groups
      summary: Create a worker group
      description: Instance owner only. Creates a new worker group with routing configuration.
      operationId: create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkerGroupController.ApiCreateWorkerGroupRequest'
        required: true
      responses:
        '200':
          description: create 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerGroupController.ApiWorkerGroup'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/worker-groups/{id}:
    get:
      tags:
      - Worker Groups
      summary: Get worker group detail
      description: Instance owner only. Retrieves details of a specific worker group including token summaries.
      operationId: get
      parameters:
      - name: id
        in: path
        description: The worker group id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: get 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerGroupController.ApiWorkerGroup'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Worker Groups
      summary: Update a worker group
      description: 'Instance owner only. Replaces the worker group''s full desired state (name, description, subscriptions) in a single transactional save. Subscriptions absent from the submitted list are dropped; the underlying WorkerQueue is preserved. Granular POST/PATCH/DELETE /subscriptions endpoints remain for one-off edits. When the Worker Queues feature is disabled, subscriptions are immutable: the stored set is preserved and only the name and description are updated.'
      operationId: update
      parameters:
      - name: id
        in: path
        description: The worker group id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkerGroupController.ApiUpdateWorkerGroupRequest'
        required: true
      responses:
        '200':
          description: update 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerGroupController.ApiWorkerGroup'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Worker Groups
      summary: Delete a worker group
      description: Instance owner only.
      operationId: delete
      parameters:
      - name: id
        in: path
        description: The worker group id
        required: true
        schema:
          type: string
      - name: force
        in: query
        description: Force deletion even when active workers are connected
        explode: false
        schema:
          type: boolean
          default: false
      responses:
        '204':
          description: Worker group was deleted successfully
        '400':
          description: The default worker group cannot be deleted
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '404':
          description: Worker group not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '409':
          description: Active workers are still connected and force deletion was not requested
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/worker-groups/{id}/capacity:
    get:
      tags:
      - Worker Groups
      summary: Live capacity snapshot for a worker group
      description: Instance owner only. Returns the live allocated and used slot counts per subscription, aggregated across all running workers in the group. Backed by service-liveness metrics emitted by the controller.
      operationId: getCapacity
      parameters:
      - name: id
        in: path
        description: The worker group id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getCapacity 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerGroupController.ApiWorkerGroupCapacity'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/worker-groups/{id}/subscriptions:
    post:
      tags:
      - Worker Groups
      summary: Add a Worker Queue subscription to a worker group
      description: Instance owner only. Adds a subscription edge from the worker group to an existing WorkerQueue identified by its id (or the reserved "default" sentinel for the global default queue). Returns the updated worker group.
      operationId: addSubscription
      parameters:
      - name: id
        in: path
        description: The worker group id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkerGroupController.ApiSubscriptionRequest'
        required: true
      responses:
        '200':
          description: addSubscription 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerGroupController.ApiWorkerGroup'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/worker-groups/{id}/subscriptions/{workerQueueId}:
    delete:
      tags:
      - Worker Groups
      summary: Remove a subscription by WorkerQueue id
      description: Instance owner only. Drops the subscription edge from this worker group to the given WorkerQueue. The WorkerQueue itself is not deleted — it remains available for other worker groups and can be re-subscribed later.
      operationId: removeSubscription
      parameters:
      - name: id
        in: path
        description: The worker group id
        required: true
        schema:
          type: string
      - name: workerQueueId
        in: path
        description: The WorkerQueue id (subscription routing identity)
        required: true
        schema:
          type: string
      responses:
        '200':
          description: removeSubscription 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerGroupController.ApiWorkerGroup'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    patch:
      tags:
      - Worker Groups
      summary: Update a subscription's reserved capacity
      description: Instance owner only. Updates the {@code reservedPercent} commitment on an existing subscription. Tags are immutable on a subscription (they belong to the WorkerQueue itself); only the worker-group-side reservation can be edited via this endpoint.
      operationId: updateSubscriptionReservation
      parameters:
      - name: id
        in: path
        description: The worker group id
        required: true
        schema:
          type: string
      - name: workerQueueId
        in: path
        description: The WorkerQueue id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkerGroupController.ApiUpdateSubscriptionRequest'
        required: true
      responses:
        '200':
          description: updateSubscriptionReservation 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerGroupController.ApiWorkerGroup'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/worker-groups/{id}/tokens:
    post:
      tags:
      - Worker Groups
      summary: Generate a registration token
      description: Instance owner only. Generates a new registration token for the worker group. The plaintext token is returned only once.
      operationId: generateToken
      parameters:
      - name: id
        in: path
        description: The worker group id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkerGroupController.ApiGenerateTokenRequest'
        required: true
      responses:
        '200':
          description: generateToken 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerGroupController.ApiGenerateTokenResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/worker-groups/{id}/tokens/{tokenId}:
    delete:
      tags:
      - Worker Groups
      summary: Delete a registration token
      description: Instance owner only. Permanently deletes a token from the worker group.
      operationId: deleteToken
      parameters:
      - name: id
        in: path
        description: The worker group id
        required: true
        schema:
          type: string
      - name: tokenId
        in: path
        description: The token id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteToken 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/worker-groups/{id}/tokens/{tokenId}/revoke:
    post:
      tags:
      - Worker Groups
      summary: Revoke a registration token
      description: Instance owner only. Revokes a token, preventing further authentication.
      operationId: revokeToken
      parameters:
      - name: id
        in: path
        description: The worker group id
        required: true
        schema:
          type: string
      - name: tokenId
        in: path
        description: The token id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: revokeToken 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerGroupController.ApiWorkerGroup'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/worker-groups/{id}/workers:
    get:
      tags:
      - Worker Groups
      summary: List running workers for a worker group
      description: Instance owner only. Lists all running workers registered to this worker group, with their metrics.
      operationId: listRunningWorkers
      parameters:
      - name: id
        in: path
        description: The worker group id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listRunningWorkers 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerGroupController.ApiWorkerGroupWorkerList'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/worker-queues:
    get:
      tags:
      - WorkerQueues
      summary: List all Worker Queues
      description: Instance owner only. Lists all Worker Queues with their tag set, tenant scope, and active worker count.
      operationId: list_1
      responses:
        '200':
          description: list_1 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerQueueController.ApiWorkerQueueList'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - WorkerQueues
      summary: Create a Worker Queue
      description: Instance owner only. Creates a new Worker Queue with the given tag set and tenant scope.
      operationId: create_1
      requestBody:
        description: The Worker Queue definition
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkerQueueController.ApiCreateOrUpdateWorkerQueueRequest'
        required: true
      responses:
        '200':
          description: create_1 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerQueueController.ApiWorkerQueue'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/worker-queues/{id}:
    get:
      tags:
      - WorkerQueues
      summary: Get Worker Queue detail
      description: Instance owner only. Retrieves details of a specific Worker Queue including its active workers.
      operationId: get_1
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: get_1 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerQueueController.ApiWorkerQueueDetails'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - WorkerQueues
      summary: Update a Worker Queue
      description: Instance owner only. Updates a Worker Queue's tags, tenant scope, name, and description. The id is immutable.
      operationId: update_1
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The Worker Queue definition
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkerQueueController.ApiCreateOrUpdateWorkerQueueRequest'
        required: true
      responses:
        '200':
          description: update_1 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerQueueController.ApiWorkerQueue'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - WorkerQueues
      summary: Delete a Worker Queue
      description: Instance owner only.
      operationId: delete_1
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Worker Queue was delete_1d successfully
        '404':
          description: Worker Queue not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '409':
          description: A worker group still subscribes to this Worker Queue
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/worker-queues/{id}/subscribers:
    get:
      tags:
      - WorkerQueues
      summary: List worker groups subscribing to a Worker Queue
      description: Instance owner only. Returns the worker groups that subscribe to this Worker Queue. A non-empty list means the queue cannot be deleted until the subscription(s) are removed.
      operationId: subscribers
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The subscribing worker groups
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerQueueController.ApiWorkerQueueSubscribers'
        '404':
          description: Worker Queue not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/workers/credentials:
    get:
      tags:
      - Worker Auth
      summary: List all registered workers
      description: Instance owner only. Lists all workers that have registered with the controller.
      operationId: list_2
      responses:
        '200':
          description: list_2 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerCredentialController.ApiWorkerList'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/workers/credentials/{id}:
    get:
      tags:
      - Worker Auth
      summary: Get worker credentials ID
      description: Instance owner only. Retrieves details of a specific registered worker.
      operationId: get_2
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: get_2 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerCredentialController.ApiWorkerCredential'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/instance/workers/credentials/{id}/revoke:
    post:
      tags:
      - Worker Auth
      summary: Revoke worker credentials
      description: Instance owner only. Revokes a worker's credentials, forcing it to re-register.
      operationId: revoke
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: revoke 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerCredentialController.ApiWorkerCredential'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/invitation/accept/{invitationId}:
    post:
      tags:
      - Auths
      operationId: acceptInvitation
      parameters:
      - name: invitationId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: acceptInvitation 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
  /api/v1/invitation/create/{invitationId}:
    post:
      tags:
      - Auths
      operationId: createFromInvitation
      parameters:
      - name: invitationId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The basic information to create an account from an invitation
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthController.InvitationUserRequest'
        required: true
      responses:
        '200':
          description: createFromInvitation 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
  /api/v1/kill-switches:
    post:
      tags:
      - KillSwitches
      summary: Create a kill switch
      description: Instance-owner-only. Creates a kill switch.
      operationId: createKillSwitch
      requestBody:
        description: The kill switch to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KillSwitch'
        required: true
      responses:
        '200':
          description: createKillSwitch 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KillSwitch'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/kill-switches/search:
    get:
      tags:
      - KillSwitches
      summary: Retrieve all kill switches
      description: Instance-owner-only. Returns all kill switches.
      operationId: searchKillSwitches
      responses:
        '200':
          description: searchKillSwitches 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/KillSwitch'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/kill-switches/{id}:
    put:
      tags:
      - KillSwitches
      summary: Update a kill switch
      description: Instance-owner-only. Updates a kill switch by its ID.
      operationId: updateKillSwitch
      parameters:
      - name: id
        in: path
        description: The kill switch id
        required: true
        schema:
          type: string
      requestBody:
        description: The kill switch to update
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KillSwitch'
        required: true
      responses:
        '200':
          description: updateKillSwitch 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KillSwitch'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - KillSwitches
      summary: Delete a kill switch
      description: Instance-owner-only. Deletes a kill switch by its ID.
      operationId: deleteKillSwitch
      parameters:
      - name: id
        in: path
        description: The kill switch id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteKillSwitch 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/license-info:
    get:
      tags:
      - Misc
      summary: Retrieve license information
      description: Global endpoint, available to any authenticated user.
      operationId: licenseInfo
      responses:
        '200':
          description: licenseInfo 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MiscController.LicenseInfo'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/license/refresh:
    get:
      tags:
      - Misc
      summary: Force the refresh of the license online
      description: Only for Instance Owners.
      operationId: refreshLicense
      responses:
        '200':
          description: refreshLicense 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/login:
    post:
      tags:
      - Misc
      summary: Authenticate with basic auth credentials.
      description: On success, issues an HttpOnly session cookie holding the credentials, plus a non-HttpOnly flag cookie the UI reads to know it is logged in.
      operationId: login
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MiscController.LoginRequest'
        required: true
      responses:
        '200':
          description: login 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/logout:
    post:
      tags:
      - Misc
      summary: Clear the basic auth session cookie.
      operationId: logout
      responses:
        '200':
          description: logout 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/main-tenant-flows:
    get:
      tags:
      - Misc
      summary: Check if flows are present on the main tenant.
      operationId: mainTenantFlows
      responses:
        '200':
          description: mainTenantFlows 200 response
          content:
            application/json:
              schema:
                type: boolean
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/me:
    get:
      tags:
      - Auths
      summary: Get details about the authenticated user
      description: Requires the ME permission.
      operationId: getCurrentUser
      responses:
        '200':
          description: getCurrentUser 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeController.ApiMe'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    patch:
      tags:
      - Auths
      summary: Update authenticated user details
      description: Updates the authenticated user's profile information and returns the updated user.
      operationId: patchCurrentUser
      requestBody:
        description: The user details
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MeController.ApiUserDetailsRequest'
        required: true
      responses:
        '200':
          description: patchCurrentUser 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeController.ApiMe'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/me/api-tokens:
    get:
      tags:
      - Auths
      summary: List API tokens for authenticated user
      description: Returns all API tokens belonging to the authenticated user.
      operationId: listApiTokensForCurrentUser
      responses:
        '200':
          description: listApiTokensForCurrentUser 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTokenList'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - Auths
      summary: Create API token for the authenticated user
      operationId: createApiTokenForCurrentUser
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateApiTokenRequest'
        required: true
      responses:
        '200':
          description: createApiTokenForCurrentUser 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateApiTokenResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/me/api-tokens/{tokenId}:
    delete:
      tags:
      - Auths
      summary: Delete API token for the authenticated user
      operationId: deleteApiTokenForCurrentUser
      parameters:
      - name: tokenId
        in: path
        description: The token id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteApiTokenForCurrentUser 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/me/invitations:
    get:
      tags:
      - Invitations
      summary: List invitations for the authenticated user
      description: Returns all invitations for the authenticated user's email across all tenants.
      operationId: findAllInvitationsForCurrentUser
      responses:
        '200':
          description: findAllInvitationsForCurrentUser 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Invitation'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/me/password:
    put:
      tags:
      - Users
      summary: Update authenticated user password
      description: Changes the login password for the authenticated user. This revokes every other session for this user; the current device is re-authenticated so it stays logged in.
      operationId: updateCurrentUserPassword
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MeController.ApiUpdatePasswordRequest'
        required: true
      responses:
        '200':
          description: updateCurrentUserPassword 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/notifications/history:
    get:
      tags:
      - Notifications
      summary: Browse notification history
      description: 'Cursor-based (not offset-based): returns up to `limit` notifications older than `before`, most recent first, plus a `nextCursor` for the following page. Offset pagination is unsafe here because rows are purged on a rolling TTL while the user scrolls.'
      operationId: history
      parameters:
      - name: before
        in: query
        description: Cursor of the previous page, as `<createdDate>,<id>`. Omit for the first page.
        explode: false
        schema:
          type: string
          nullable: true
      - name: limit
        in: query
        description: Maximum number of notifications to return
        explode: false
        schema:
          type: integer
          format: int32
          default: 20
      responses:
        '200':
          description: history 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationController.ApiNotificationHistory'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/notifications/read-all:
    post:
      tags:
      - Notifications
      summary: Mark all of the authenticated user's notifications as read
      description: Only affects notifications for tenants the user currently has access to.
      operationId: markAllRead
      responses:
        '200':
          description: markAllRead 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationController.ApiMarkAllRead'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/notifications/since:
    get:
      tags:
      - Notifications
      summary: Poll for notifications updated since a given instant
      description: 'Interval-polling delta endpoint: returns notifications updated strictly after `since`, plus a fresh server timestamp to pass as `since` on the next poll.'
      operationId: pollSince
      parameters:
      - name: since
        in: query
        description: The server timestamp returned by a previous call to this endpoint (or to /history)
        required: true
        explode: false
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: pollSince 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationController.ApiNotificationsSince'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/notifications/unread-count:
    get:
      tags:
      - Notifications
      summary: Count unread notifications for the authenticated user
      operationId: unreadCount
      responses:
        '200':
          description: unreadCount 200 response
          content:
            application/json:
              schema:
                type: integer
                format: int64
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/notifications/{id}/read:
    post:
      tags:
      - Notifications
      summary: Mark a single notification as read
      description: 'Idempotent: a missing/already-read/foreign id is a no-op, not an error — the frontend never needs to special-case a ''not found'' response for this action, and the global 404 handler never gets a chance to blow up the routed UI over what is functionally a success.'
      operationId: markRead
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: markRead 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/notifications/{id}/unread:
    post:
      tags:
      - Notifications
      summary: Mark a single notification as unread
      description: 'Idempotent: a missing/already-unread/foreign id is a no-op, not an error — same rationale as POST /{id}/read.'
      operationId: markUnread
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: markUnread 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/pebble/filters:
    get:
      tags:
      - Misc
      summary: Retrieve the list of available Pebble expression filters.
      operationId: getExpressionFilters
      responses:
        '200':
          description: getExpressionFilters 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/pebble/functions:
    get:
      tags:
      - Misc
      summary: Retrieve the available Pebble expression functions with their arguments and defaults.
      operationId: getExpressionFunctions
      responses:
        '200':
          description: getExpressionFunctions 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PebbleFunction'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/plugins:
    get:
      tags:
      - Plugins
      summary: Get list of plugins
      operationId: listPlugins
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 1000
      - name: sort
        in: query
        description: A list of sort fields
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: A list of query filters
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      responses:
        '200':
          description: listPlugins 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_Plugin_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/plugins/auto-install/detect:
    post:
      tags:
      - Plugins
      summary: Detect missing plugins in a flow
      description: Parses the provided flow YAML, identifies task and trigger types that are not yet registered, and maps them to their Maven artifacts via the plugin catalog. Returns 403 when the auto-install feature is disabled on this instance.
      operationId: detectMissingPlugins
      requestBody:
        content:
          text/plain:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: Detection result
          content:
            application/json:
              schema:
                type: object
        '403':
          description: Auto-install feature is disabled on this instance
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/plugins/groups/subgroups:
    get:
      tags:
      - Plugins
      summary: Get plugins group by subgroups
      operationId: getPluginBySubgroups
      responses:
        '200':
          description: getPluginBySubgroups 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Plugin'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/plugins/icons:
    get:
      tags:
      - Plugins
      summary: Get plugins icons
      description: 'Answers the icon metadata of every registered class. The `icon` field is always null here: icon bytes are served per class, and cached by the browser, by `GET /plugins/icons/{cls}/icon.svg`. `hash` is non-null exactly when the class has an icon, so callers can still tell which classes to render an icon for.'
      operationId: getPluginIcons
      responses:
        '200':
          description: getPluginIcons 200 response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  $ref: '#/components/schemas/PluginIcon'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/plugins/icons/groups:
    get:
      tags:
      - Plugins
      summary: Get plugin group and subgroup icons
      description: Answers the icon metadata of every plugin group and subgroup. As on `GET /plugins/icons` the `icon` field is always null; the bytes come from `GET /plugins/icons/{cls}/icon.svg`.
      operationId: getPluginGroupIcons
      responses:
        '200':
          description: getPluginGroupIcons 200 response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  $ref: '#/components/schemas/PluginIcon'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/plugins/icons/{cls}:
    get:
      tags:
      - Plugins
      summary: Get a single plugin icon
      description: 'Lightweight alternative to `GET /plugins/icons` for resolving one icon at a time, so callers don''t have to download the whole plugin catalog just to render one task icon. Not every class has an icon, which is a normal outcome (not every plugin ships one), so this always answers 200 with `icon: null` rather than 404 — a bare 404 here would be indistinguishable, to the frontend''s shared HTTP client, from a genuine routing error and trip its global error page.'
      operationId: getPluginIcon
      parameters:
      - name: cls
        in: path
        description: The plugin full class name
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getPluginIcon 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginController.PluginIconResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/plugins/icons/{cls}/icon.svg:
    get:
      tags:
      - Plugins
      summary: Get a single plugin icon as a raw SVG
      description: Serves the plugin icon as a real, browser-cacheable `image/svg+xml` resource so it can be referenced directly from an `<img src>` or CSS `mask-image` instead of being inlined as a data URI. Falls back to the Kestra plugin catalog when the class or group isn't locally registered, or is registered but ships no bundled icon. Cached indefinitely by the browser — callers append `PluginIcon#hash` as a query param so the URL changes whenever the icon's bytes do.
      operationId: getPluginIconSvg
      parameters:
      - name: cls
        in: path
        description: The plugin full class name
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getPluginIconSvg 200 response
          content:
            image/svg+xml:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/plugins/inputs:
    get:
      tags:
      - Plugins
      summary: Get all types for an inputs
      operationId: getAllInputTypes
      responses:
        '200':
          description: getAllInputTypes 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InputType'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/plugins/inputs/{type}:
    get:
      tags:
      - Plugins
      summary: Get the JSON schema for an input type
      description: The schema will be a [JSON Schema Draft 7](http://json-schema.org/draft-07/schema)
      operationId: getSchemaFromInputType
      parameters:
      - name: type
        in: path
        description: The schema needed
        required: true
        schema:
          $ref: '#/components/schemas/Type'
      responses:
        '200':
          description: getSchemaFromInputType 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentationWithSchema'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/plugins/install:
    post:
      tags:
      - Plugins
      summary: Start async plugin installation
      description: Enqueues installation of the specified plugin artifacts and returns a job id immediately (HTTP 202). Poll GET /plugins/install/{jobId} for status and per-artifact byte-level progress. Only artifacts provided by the plugin catalog (as returned by POST /plugins/auto-install/detect) are accepted. In distributed (EE) deployments the installation is propagated cluster-wide after the job succeeds. Returns 403 when the auto-install feature is disabled on this instance.
      operationId: installPlugins
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/PluginArtifact'
        required: true
      responses:
        '202':
          description: Installation job accepted
        '400':
          description: An artifact is not part of the plugin catalog
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Auto-install feature is disabled on this instance
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '429':
          description: Too many install jobs are already pending or running
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: installPlugins 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/plugins/install/{jobId}:
    get:
      tags:
      - Plugins
      summary: Get plugin installation job status
      description: Returns the current state of an async plugin installation job, including per-artifact byte-level transfer progress. Returns 404 when the job is unknown or has been evicted (jobs are kept for one hour after completion).
      operationId: getInstallJob
      parameters:
      - name: jobId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Job snapshot
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginInstallJob'
        '404':
          description: Job not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/plugins/pluginUiManifest:
    post:
      tags:
      - Plugins
      summary: Get plugins group by subgroups
      operationId: getPluginUiManifest
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/TaskWithVersion'
        required: true
      responses:
        '200':
          description: getPluginUiManifest 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginUiManifest'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/plugins/properties/{type}:
    get:
      tags:
      - Plugins
      summary: Get the properties part of the JSON schema for a type
      description: The schema will be a [JSON Schema Draft 7](http://json-schema.org/draft-07/schema)
      operationId: getPropertiesFromType
      parameters:
      - name: type
        in: path
        description: The schema needed
        required: true
        schema:
          $ref: '#/components/schemas/SchemaType'
      responses:
        '200':
          description: getPropertiesFromType 200 response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/plugins/schemas/{type}:
    get:
      tags:
      - Plugins
      summary: Get the JSON schema for a type
      description: The schema will be a [JSON Schema Draft 7](http://json-schema.org/draft-07/schema)
      operationId: getSchemasFromType
      parameters:
      - name: type
        in: path
        description: The schema needed
        required: true
        schema:
          $ref: '#/components/schemas/SchemaType'
      - name: arrayOf
        in: query
        description: If schema should be an array of requested type
        explode: false
        schema:
          type: boolean
          nullable: true
          default: false
      - name: includeCatalog
        in: query
        description: Whether to merge the pre-baked plugin schema bundle for un-installed types
        explode: false
        schema:
          type: boolean
          nullable: true
          default: false
      responses:
        '200':
          description: getSchemasFromType 200 response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/plugins/triggers:
    get:
      tags:
      - Plugins
      summary: Get list of trigger plugins grouped by category
      description: Feeds the 'Add Trigger' catalog UI. Returns one entry per non-internal, non-deprecated trigger class, classified as core (bundled with Kestra Core), realtime (implements RealtimeTriggerInterface) or app (implements PollingTriggerInterface).
      operationId: listTriggerPlugins
      responses:
        '200':
          description: listTriggerPlugins 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_PluginController.ApiTriggerPlugin_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/plugins/{cls}:
    get:
      tags:
      - Plugins
      summary: Get plugin documentation
      operationId: getPluginDocumentation
      parameters:
      - name: cls
        in: path
        description: The plugin full class name
        required: true
        schema:
          type: string
      - name: all
        in: query
        description: Include all the properties
        explode: false
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: getPluginDocumentation 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentationWithSchema'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/plugins/{cls}/versions:
    get:
      tags:
      - Plugins
      summary: Get all versions for a plugin
      operationId: getPluginVersions
      parameters:
      - name: cls
        in: path
        description: The plugin type
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getPluginVersions 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginController.ApiPluginVersions'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/plugins/{cls}/versions/{version}:
    get:
      tags:
      - Plugins
      summary: Get plugin documentation
      operationId: getPluginDocumentationFromVersion
      parameters:
      - name: cls
        in: path
        description: The plugin type
        required: true
        schema:
          type: string
      - name: version
        in: path
        description: The plugin version
        required: true
        schema:
          type: string
      - name: all
        in: query
        description: Include all the properties
        explode: false
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: getPluginDocumentationFromVersion 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentationWithSchema'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/plugins/{group}/pluginUi/{path}:
    get:
      tags:
      - Plugins
      summary: Get plugins group by subgroups
      operationId: getPluginUi
      parameters:
      - name: group
        in: path
        description: The plugin group
        required: true
        schema:
          type: string
      - name: path
        in: path
        description: The file path
        required: true
        schema:
          pattern: .*
          type: string
      responses:
        '200':
          description: getPluginUi 200 response
          content:
            application/json:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/request-code/{email}:
    get:
      tags:
      - Auths
      summary: Request an authentication code for login verification
      operationId: requestCode
      parameters:
      - name: email
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: requestCode 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
  /api/v1/reset-password:
    post:
      tags:
      - Auths
      summary: Change a password for given token.
      description: Change a password for given token. If password does not match password policy, use can still retry.
      operationId: resetPassword
      requestBody:
        description: The password
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthController.ResetPasswordRequest'
        required: true
      responses:
        '200':
          description: resetPassword 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
  /api/v1/service-accounts:
    get:
      tags:
      - ServiceAccount
      summary: 'List service accounts. Instance-owner-only. '
      operationId: listServiceAccounts
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      responses:
        '200':
          description: Service account successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_IAMServiceAccountController.ApiServiceAccountDetail_'
        '404':
          description: Group not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - ServiceAccount
      summary: Create a service account
      description: Instance-owner-only. CReate service account with access to multiple tenants.
      operationId: createServiceAccount
      requestBody:
        description: The service account
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IAMServiceAccountController.ApiCreateServiceAccountRequest'
        required: true
      responses:
        '200':
          description: Service account successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMServiceAccountController.ApiServiceAccountDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/service-accounts/{id}:
    get:
      tags:
      - ServiceAccount
      summary: Get a service account
      description: Instance-owner-only. Get user account details.
      operationId: getServiceAccount
      parameters:
      - name: id
        in: path
        description: The service account id
        required: true
        schema:
          type: string
      responses:
        '404':
          description: User not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: getServiceAccount 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMServiceAccountController.ApiServiceAccountDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - ServiceAccount
      summary: Delete a service account
      description: Instance-owner-only. Delete a service account including all its access.
      operationId: deleteServiceAccount
      parameters:
      - name: id
        in: path
        description: The service account id
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Service account successfully deleted
        '404':
          description: Service account not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    patch:
      tags:
      - ServiceAccount
      summary: Update service account details
      description: Instance-owner-only. Updates the details of a service account.
      operationId: patchServiceAccountDetails
      parameters:
      - name: id
        in: path
        description: The service account id
        required: true
        schema:
          type: string
      requestBody:
        description: The service account details
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IAMServiceAccountController.ApiPatchServiceAccountRequest'
        required: true
      responses:
        '200':
          description: patchServiceAccountDetails 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMServiceAccountController.ApiServiceAccountDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/service-accounts/{id}/api-tokens:
    get:
      tags:
      - ServiceAccount
      summary: List API tokens for a specific service account
      operationId: listApiTokensForServiceAccount
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listApiTokensForServiceAccount 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - ServiceAccount
      summary: Create new API Token for a specific service account
      operationId: createApiTokensForServiceAccount
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      requestBody:
        description: The create api-token request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateApiTokenRequest'
        required: true
      responses:
        '200':
          description: createApiTokensForServiceAccount 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/service-accounts/{id}/api-tokens/{tokenId}:
    delete:
      tags:
      - ServiceAccount
      summary: Delete an API Token for specific service account and token id
      operationId: deleteApiTokenForServiceAccount
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      - name: tokenId
        in: path
        description: The token id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteApiTokenForServiceAccount 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/service-accounts/{id}/instanceowner:
    patch:
      tags:
      - ServiceAccount
      summary: Update service account instance-owner privileges
      description: Instance-owner-only. Updates whether a service account is an instance owner.
      operationId: patchServiceAccountInstanceOwner
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiPatchInstanceOwnerRequest'
        required: true
      responses:
        '200':
          description: Service account successfully updated
        '404':
          description: Service account not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/service-accounts/{id}/superadmin:
    patch:
      tags:
      - ServiceAccount
      summary: Update service account instance-owner privileges (deprecated)
      description: 'Deprecated: use PATCH service-accounts/{id}/instanceowner instead.'
      operationId: patchServiceAccountInstanceOwnerLegacy
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiPatchSuperAdminRequest'
        required: true
      responses:
        '200':
          description: Service account successfully updated
        '404':
          description: Service account not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      deprecated: true
      security:
      - bearerAuth: []
      - basicAuth: []
      x-deprecated-message: use `PATCH service-accounts/{id}/instanceowner` instead. Kept for backward-compatibility.
  /api/v1/setup:
    get:
      tags:
      - Misc
      summary: Retrieve current setup configuration
      operationId: setupConfiguration
      responses:
        '200':
          description: setupConfiguration 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetupConfiguration'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - Misc
      summary: Create the first instance owner
      description: Only used during initial instance setup.
      operationId: setupKestra
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetupConfiguration.SetupData'
        required: true
      responses:
        '200':
          description: setupKestra 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiUser'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/tenants:
    post:
      tags:
      - Tenants
      summary: Create a tenant
      description: Instance-owner-only.
      operationId: create_2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Tenant'
        required: true
      responses:
        '200':
          description: create_2 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tenant'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/tenants/search:
    get:
      tags:
      - Tenants
      summary: Search for tenants
      description: Instance-owner-only.
      operationId: find
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: Filters
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      responses:
        '200':
          description: find 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_Tenant_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/tenants/{id}:
    get:
      tags:
      - Tenants
      summary: Retrieve a tenant
      description: Instance-owner-only.
      operationId: get_3
      parameters:
      - name: id
        in: path
        description: The tenant id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: get_3 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tenant'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Tenants
      summary: Update a tenant
      description: Instance-owner-only.
      operationId: update_2
      parameters:
      - name: id
        in: path
        description: The tenant id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Tenant'
        required: true
      responses:
        '200':
          description: update_2 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tenant'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Tenants
      summary: Delete a tenant and all its resources
      description: Instance-owner-only. Deletes all resources linked to the tenant, including flows, namespaces, apps, etc.
      operationId: delete_2
      parameters:
      - name: id
        in: path
        description: The tenant id
        required: true
        schema:
          type: string
      responses:
        '204':
          description: On success
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/tenants/{id}/apps-catalog:
    get:
      tags:
      - Tenants
      summary: Get the apps catalog config for the specified tenant.
      description: Accessible to users with access to the tenant.
      operationId: getAppsCatalogConfig
      parameters:
      - name: id
        in: path
        description: The tenant id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getAppsCatalogConfig 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TenantController.AppsCatalogConfigResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - Tenants
      summary: Set the apps catalog config for the specified tenant.
      description: Instance-owner-only.
      operationId: setAppsCatalogConfig
      parameters:
      - name: id
        in: path
        description: The tenant id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TenantController.AppsCatalogConfigRequest'
        required: true
      responses:
        '200':
          description: setAppsCatalogConfig 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TenantController.AppsCatalogConfigResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/tenants/{id}/apps-catalog/logo:
    post:
      tags:
      - Tenants
      summary: Set the apps catalog logo for the specified tenant.
      description: Instance-owner-only.
      operationId: setAppsCatalogLogo
      parameters:
      - name: id
        in: path
        description: The tenant id
        required: true
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                logo:
                  type: string
                  description: The logo file
                  format: binary
            encoding:
              logo:
                contentType: application/octet-stream
                explode: false
        required: true
      responses:
        '200':
          description: setAppsCatalogLogo 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TenantController.AppsCatalogConfigResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Tenants
      summary: Remove the apps catalog logo for the specified tenant.
      description: Instance-owner-only.
      operationId: deleteAppsCatalogLogo
      parameters:
      - name: id
        in: path
        description: The tenant id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteAppsCatalogLogo 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/tenants/{id}/logo:
    post:
      tags:
      - Tenants
      summary: Set a tenant logo
      description: Instance-owner-only.
      operationId: setLogo
      parameters:
      - name: id
        in: path
        description: The tenant id
        required: true
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                logo:
                  type: string
                  description: The logo file
                  format: binary
            encoding:
              logo:
                contentType: application/octet-stream
                explode: false
        required: true
      responses:
        '200':
          description: setLogo 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTenant'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/tenants/{id}/settings/default-dashboards:
    get:
      tags:
      - Tenants
      summary: Get default dashboards for this tenant
      operationId: getDefaultDashboards
      parameters:
      - name: id
        in: path
        description: The tenant id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getDefaultDashboards 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DashboardSettings'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - Tenants
      summary: Update default dashboards for the entire tenant
      operationId: setTenantDefaultDashboards
      parameters:
      - name: id
        in: path
        description: The tenant id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TenantController.SetTenantDefaultDashboardsRequest'
        required: true
      responses:
        '200':
          description: setTenantDefaultDashboards 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DashboardSettings'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/users:
    get:
      tags:
      - Users
      summary: Retrieve users
      operationId: listUsers
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      responses:
        '200':
          description: listUsers 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_IAMUserController.ApiUserSummary_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - Users
      summary: Create a new user account
      description: Instance-owner-only. Create a new user account with an optional password based authentication method.
      operationId: createUser
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IAMUserController.ApiCreateOrUpdateUserRequest'
        required: true
      responses:
        '201':
          description: User was successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMUserController.ApiUser'
        '404':
          description: Tenant, or group not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/users/by-ids:
    delete:
      tags:
      - Users
      summary: Delete multiple users
      description: Instance-owner-only. Delete users including all their access. The whole request is rejected if any identifier does not resolve to a user, or if it contains the caller's own identifier.
      operationId: deleteUsersByIds
      requestBody:
        description: The users to delete
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IAMUserController.ApiDeleteUsersRequest'
        required: true
      responses:
        '200':
          description: Users successfully deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkResponse'
        '400':
          description: Invalid bulk delete
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '404':
          description: User not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/users/{id}:
    get:
      tags:
      - Users
      summary: Get a user
      description: Instance-owner-only. Get user account details.
      operationId: getUser
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      responses:
        '404':
          description: User not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: getUser 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMUserController.ApiUser'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Users
      summary: Update a user account
      description: Instance-owner-only. Update an existing user account with an optional password based authentication method.
      operationId: updateUser
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IAMUserController.ApiCreateOrUpdateUserRequest'
        required: true
      responses:
        '404':
          description: Tenant, or group not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: updateUser 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMUserController.ApiUser'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Users
      summary: Delete a user
      description: Instance-owner-only. Delete a user including all its access.
      operationId: deleteUser
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      responses:
        '204':
          description: User successfully deleted
        '404':
          description: User not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    patch:
      tags:
      - Users
      summary: Update user details
      description: Instance-owner-only. Updates the the details of a user.
      operationId: patchUser
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      requestBody:
        description: The user details
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MeController.ApiUserDetailsRequest'
        required: true
      responses:
        '200':
          description: patchUser 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMUserController.ApiUser'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/users/{id}/api-tokens:
    get:
      tags:
      - Users
      summary: List API tokens for a specific user
      description: Instance-owner-only. Get all API token existing for a user.
      operationId: listApiTokensForUser
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      responses:
        '404':
          description: User not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: listApiTokensForUser 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTokenList'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - Users
      summary: Create new API Token for a specific user
      description: Instance-owner-only. Create a new API token for a user.
      operationId: createApiTokensForUser
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      requestBody:
        description: The create api-token request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateApiTokenRequest'
        required: true
      responses:
        '201':
          description: API token successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateApiTokenResponse'
        '404':
          description: User not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/users/{id}/api-tokens/{tokenId}:
    delete:
      tags:
      - Users
      summary: Delete an API Token for specific user and token id
      description: Instance-owner-only. Delete an API token for a user.
      operationId: deleteApiTokenForUser
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      - name: tokenId
        in: path
        description: The token id
        required: true
        schema:
          type: string
      responses:
        '204':
          description: API token successfully deleted
        '404':
          description: User, or API Token not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/users/{id}/auths/{auth}:
    delete:
      tags:
      - Users
      summary: Delete user auth method
      description: Instance-owner-only. Deletes a specific authentication method from a user.
      operationId: deleteUserAuthMethod
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      - name: auth
        in: path
        description: The user auth method id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: User auth method successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMUserController.ApiUser'
        '404':
          description: User or auth method not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/users/{id}/impersonate:
    post:
      tags:
      - Users
      summary: Impersonate a user
      description: Instance-owner-only. Allows an admin to impersonate another user.
      operationId: impersonate
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      responses:
        '404':
          description: User not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: impersonate 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/users/{id}/instanceowner:
    patch:
      tags:
      - Users
      summary: Update user instance-owner privileges
      description: Instance-owner-only. Updates whether a user is an instance owner.
      operationId: patchUserInstanceOwner
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiPatchInstanceOwnerRequest'
        required: true
      responses:
        '200':
          description: User successfully updated
        '404':
          description: User not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/users/{id}/password:
    patch:
      tags:
      - Users
      summary: Update user password
      description: Instance-owner-only. Updates the password of a user.
      operationId: patchUserPassword
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IAMUserController.ApiPatchUserPasswordRequest'
        required: true
      responses:
        '200':
          description: User successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMUserController.ApiUser'
        '404':
          description: User not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/users/{id}/refresh-token:
    delete:
      tags:
      - Users
      summary: Delete a user refresh token
      description: Instance-owner-only. Deletes the user's refresh token and revokes their existing sessions, so any live JWT cookie stops authenticating immediately.
      operationId: deleteRefreshToken
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      responses:
        '204':
          description: User sessions successfully revoked
        '404':
          description: User not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/users/{id}/restricted:
    patch:
      tags:
      - Users
      summary: Update user demo
      description: Instance-owner-only. Updates whether a user is for demo.
      operationId: patchUserDemo
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IAMUserController.ApiPatchRestrictedRequest'
        required: true
      responses:
        '200':
          description: User successfully updated
        '404':
          description: User not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/users/{id}/superadmin:
    patch:
      tags:
      - Users
      summary: Update user instance-owner privileges (deprecated)
      description: 'Deprecated: use PATCH {id}/instanceowner instead.'
      operationId: patchUserInstanceOwnerLegacy
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiPatchSuperAdminRequest'
        required: true
      responses:
        '200':
          description: User successfully updated
        '404':
          description: User not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      deprecated: true
      security:
      - bearerAuth: []
      - basicAuth: []
      x-deprecated-message: use `PATCH {id}/instanceowner` instead. Kept for backward-compatibility.
  /api/v1/validate-password:
    post:
      tags:
      - Auths
      operationId: validatePassword
      requestBody:
        content:
          text/plain:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: validatePassword 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
  /api/v1/{tenant}/acls/permissions:
    get:
      tags:
      - Misc
      summary: Retrieve resource-to-actions mapping
      description: Returns the full mapping of resources to their valid actions.
      operationId: listPermissions
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listPermissions 200 response
          content:
            application/json:
              schema:
                type: object
                properties:
                  FLOW:
                    type: array
                  EXECUTION:
                    type: array
                  TRIGGER:
                    type: array
                  NAMESPACE:
                    type: array
                  KVSTORE:
                    type: array
                  REUSABLE_INPUTS:
                    type: array
                  DASHBOARD:
                    type: array
                  SECRET:
                    type: array
                  CREDENTIAL:
                    type: array
                  BLUEPRINT:
                    type: array
                  APP:
                    type: array
                  AUDITLOG:
                    type: array
                  SYSTEM_SETTINGS:
                    type: array
                  TENANT_SETTINGS:
                    type: array
                  TESTSUITE:
                    type: array
                  ASSET:
                    type: array
                  USER:
                    type: array
                  GROUP:
                    type: array
                  ROLE:
                    type: array
                  BINDING:
                    type: array
                  SERVICE_ACCOUNT:
                    type: array
                  INVITATION:
                    type: array
                  COPILOT:
                    type: array
                  MCP_SERVER:
                    type: array
                  SUPPORT:
                    type: array
                  POLICY:
                    type: array
                  CASE:
                    type: array
                  PROMOTION_TARGET:
                    type: array
                  APP_EXECUTION:
                    type: array
                  NAMESPACE_FILE:
                    type: array
                  TESTSUITE_RUN:
                    type: array
                  TENANT_ACCESS:
                    type: array
                  SECURITY_INTEGRATION:
                    type: array
                  CASE_TEMPLATE:
                    type: array
                  BANNER:
                    type: array
                  KILL_SWITCH:
                    type: array
                  TENANT:
                    type: array
                  VERSIONED_PLUGIN:
                    type: array
                  WORKER_GROUP:
                    type: array
                  WORKER_QUEUE:
                    type: array
                  INSTANCE:
                    type: array
                  UNKNOWN:
                    type: array
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/acls/templates:
    get:
      tags:
      - Misc
      summary: Retrieve managed role templates
      description: Returns the predefined permission templates for managed roles.
      operationId: listTemplates
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listTemplates 200 response
          content:
            application/json:
              schema:
                type: object
                properties:
                  ADMIN:
                    $ref: '#/components/schemas/Map_Resource.List_Action__'
                  VIEWER:
                    $ref: '#/components/schemas/Map_Resource.List_Action__'
                  EDITOR:
                    $ref: '#/components/schemas/Map_Resource.List_Action__'
                  LAUNCHER:
                    $ref: '#/components/schemas/Map_Resource.List_Action__'
                  DEVELOPER:
                    $ref: '#/components/schemas/Map_Resource.List_Action__'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/ai/generate/app:
    post:
      tags:
      - AI
      summary: Generate or regenerate an app based on a prompt (EE only)
      operationId: generateApp
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: Prompt and context required for app generation
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppGenerationPrompt'
        required: true
      responses:
        '200':
          description: generateApp 200 response
          content:
            application/yaml:
              schema:
                type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/ai/generate/dashboard:
    post:
      tags:
      - AI
      summary: Generate or regenerate a dashboard based on a prompt (EE only)
      operationId: generateDashboard
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: Prompt and context required for dashboard generation
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AiController.DashboardGenerationPrompt'
        required: true
      responses:
        '200':
          description: generateDashboard 200 response
          content:
            application/yaml:
              schema:
                type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/ai/generate/flow:
    post:
      tags:
      - AI
      summary: Generate or regenerate a flow based on a prompt
      operationId: generateFlow
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: Prompt and context required for flow generation
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AiController.FlowGenerationPrompt'
        required: true
      responses:
        '200':
          description: generateFlow 200 response
          content:
            application/yaml:
              schema:
                type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/ai/generate/test:
    post:
      tags:
      - AI
      summary: Generate or regenerate a test suite based on a prompt (EE only)
      operationId: generateTestSuite
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: Prompt and context required for test suite generation
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TestSuiteGenerationPrompt'
        required: true
      responses:
        '200':
          description: generateTestSuite 200 response
          content:
            application/yaml:
              schema:
                type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/ai/providers:
    get:
      tags:
      - AI
      summary: List available AI providers
      operationId: getProviders
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getProviders 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AiController.AiProviderResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/ai/threads:
    get:
      tags:
      - AI
      summary: List the caller's Copilot conversation threads (EE)
      operationId: list_3
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: list_3 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiThreadSummary'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - AI
      summary: Create a Copilot conversation thread
      operationId: create_3
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiCreateThreadRequest'
        required: true
      responses:
        '200':
          description: create_3 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiThreadSummary'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/ai/threads/{threadId}:
    get:
      tags:
      - AI
      summary: Fetch a Copilot thread with its full message history
      operationId: get_4
      parameters:
      - name: threadId
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: get_4 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiThreadDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - AI
      summary: Soft-delete a Copilot conversation thread (EE)
      operationId: delete_3
      parameters:
      - name: threadId
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: delete_3 204 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/ai/threads/{threadId}/chat:
    post:
      tags:
      - AI
      summary: Open a streaming agent chat turn (SSE)
      operationId: chat
      parameters:
      - name: threadId
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiChatTurnRequest'
        required: true
      responses:
        '200':
          description: chat 200 response
          content:
            text/event-stream:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Event_Object_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/ai/threads/{threadId}/confirm:
    post:
      tags:
      - AI
      summary: Confirm a proposed action and stream the resumed turn (SSE)
      operationId: confirm
      parameters:
      - name: threadId
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiConfirmActionRequest'
        required: true
      responses:
        '200':
          description: confirm 200 response
          content:
            text/event-stream:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Event_Object_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/ai/threads/{threadId}/rename:
    patch:
      tags:
      - AI
      summary: Rename a Copilot conversation thread (EE)
      operationId: rename
      parameters:
      - name: threadId
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiRenameThreadRequest'
        required: true
      responses:
        '200':
          description: rename 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiThreadSummary'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/apps:
    post:
      tags:
      - Apps
      summary: Create a new app
      operationId: createApp
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The app
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: createApp 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppsController.ApiAppSource'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Apps
      summary: Delete existing apps
      operationId: bulkDeleteApps
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The list of Apps UID
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppsController.ApiBulkOperationRequest'
        required: true
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppsController.ApiBulkOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/apps/catalog:
    get:
      tags:
      - Apps
      summary: Search for apps from catalog
      operationId: searchAppsFromCatalog
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchAppsFromCatalog 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_AppsController.ApiAppCatalogItem_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/apps/disable:
    post:
      tags:
      - Apps
      summary: Disable existing apps
      operationId: bulkDisableApps
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The list of Apps UID
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppsController.ApiBulkOperationRequest'
        required: true
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppsController.ApiBulkOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/apps/enable:
    post:
      tags:
      - Apps
      summary: Enable existing apps
      operationId: bulkEnableApps
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The list of Apps UID
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppsController.ApiBulkOperationRequest'
        required: true
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppsController.ApiBulkOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/apps/export:
    post:
      tags:
      - Apps
      summary: Export apps as a ZIP archive of YAML sources.
      operationId: bulkExportApps
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The list of Apps UID
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppsController.ApiBulkOperationRequest'
        required: true
      responses:
        '200':
          description: bulkExportApps 200 response
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/apps/import:
    post:
      tags:
      - Apps
      summary: |2
            Import apps as a ZIP archive of yaml sources or a multi-objects YAML file.
            When sending a Yaml that contains one or more apps, a list of index is returned.
            When sending a ZIP archive, a list of files that couldn't be imported is returned.
      operationId: bulkImportApps
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                fileUpload:
                  type: string
                  description: The file to import, can be a ZIP archive or a multi-objects YAML file
                  format: binary
            encoding:
              fileUpload:
                contentType: application/octet-stream
                explode: false
        required: true
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppsController.ApiBulkImportResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/apps/preview:
    post:
      tags:
      - Apps
      summary: Open the app for the given source
      operationId: previewApp
      parameters:
      - name: state
        in: query
        description: Render a specific execution state's layout (preview-first builder)
        explode: false
        schema:
          type: string
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The app
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: previewApp 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/apps/preview/dispatch/{dispatch}:
    post:
      tags:
      - Apps
      summary: Dispatch for the given app source (preview).
      operationId: previewDispatchApp
      parameters:
      - name: dispatch
        in: path
        description: The ID to dispatch
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The app source (part '__kestra_app_source__') and the dispatch data
        content:
          multipart/form-data:
            schema:
              type: array
              items:
                type: string
                format: binary
      responses:
        '200':
          description: previewDispatchApp 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/apps/search:
    get:
      tags:
      - Apps
      summary: Search for apps
      operationId: searchApps
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchApps 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_AppsController.ApiApp_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/apps/states:
    get:
      tags:
      - Apps
      summary: List the execution layout states available in the app builder
      operationId: listStates
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listStates 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/apps/tags:
    get:
      tags:
      - Apps
      summary: Get all the app tags
      operationId: listTags
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listTags 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppsController.ApiAppTags'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/apps/view/{id}/dispatch/{dispatch}:
    post:
      tags:
      - Apps
      summary: Dispatch for a given app.
      operationId: dispatchApp
      parameters:
      - name: id
        in: path
        description: The ID of the app.
        required: true
        schema:
          type: string
      - name: dispatch
        in: path
        description: The ID to dispatch
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The data of the app
        content:
          multipart/form-data:
            schema:
              type: array
              items:
                type: string
                format: binary
      responses:
        '200':
          description: dispatchApp 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/apps/view/{id}/file/download:
    get:
      tags:
      - Apps
      summary: Download file from an app execution
      operationId: downloadFileFromAppExecution
      parameters:
      - name: id
        in: path
        description: The ID of the app.
        required: true
        schema:
          type: string
      - name: path
        in: query
        description: The internal storage uri
        required: true
        explode: false
        schema:
          type: string
          format: uri
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: downloadFileFromAppExecution 200 response
          content:
            application/json:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/apps/view/{id}/file/meta:
    get:
      tags:
      - Apps
      summary: Get file meta information from an app execution
      operationId: getFileMetaFromAppExecution
      parameters:
      - name: id
        in: path
        description: The ID of the app.
        required: true
        schema:
          type: string
      - name: path
        in: query
        description: The internal storage uri
        required: true
        explode: false
        schema:
          type: string
          format: uri
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getFileMetaFromAppExecution 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileMetas'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/apps/view/{id}/file/preview:
    get:
      tags:
      - Apps
      summary: Get file preview from an app execution
      operationId: getFilePreviewFromAppExecution
      parameters:
      - name: id
        in: path
        description: The ID of the app.
        required: true
        schema:
          type: string
      - name: path
        in: query
        description: The internal storage uri
        required: true
        explode: false
        schema:
          type: string
          format: uri
      - name: maxRows
        in: query
        description: The max row returns
        explode: false
        schema:
          type: integer
          format: int32
          nullable: true
      - name: encoding
        in: query
        description: The file encoding as Java charset name. Defaults to UTF-8
        explode: false
        schema:
          type: string
          default: UTF-8
        example: ISO-8859-1
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getFilePreviewFromAppExecution 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/apps/view/{id}/streams/{stream}:
    get:
      tags:
      - Apps
      summary: Get an event stream from a given app.
      operationId: getStreamEventsFromApp
      parameters:
      - name: id
        in: path
        description: The ID of the app.
        required: true
        schema:
          type: string
      - name: stream
        in: path
        description: The ID of the stream to get
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getStreamEventsFromApp 200 response
          content:
            text/event-stream:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Event_AppResponse_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/apps/view/{uid}:
    get:
      tags:
      - Apps
      summary: Open an app
      operationId: openApp
      parameters:
      - name: uid
        in: path
        description: The ID of the app
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: openApp 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/apps/view/{uid}/logs/download:
    get:
      tags:
      - Apps
      summary: Download logs for an app execution
      operationId: getLogsFromAppExecution
      parameters:
      - name: uid
        in: path
        description: The ID of the app.
        required: true
        schema:
          type: string
      - name: executionId
        in: query
        description: The ID of the execution.
        required: true
        explode: false
        schema:
          type: string
      - name: minLevel
        in: query
        description: The min log level filter
        explode: false
        schema:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/Level'
      - name: taskIds
        in: query
        description: The tasks' IDs
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getLogsFromAppExecution 200 response
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/apps/{uid}:
    get:
      tags:
      - Apps
      summary: Retrieve an app
      operationId: getApp
      parameters:
      - name: uid
        in: path
        description: The ID of the app
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getApp 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppsController.ApiAppSource'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Apps
      summary: Update an existing app
      operationId: updateApp
      parameters:
      - name: uid
        in: path
        description: The ID of the app
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The app
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: updateApp 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppsController.ApiAppSource'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Apps
      summary: Delete an existing app
      operationId: deleteApp
      parameters:
      - name: uid
        in: path
        description: The ID of the app
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteApp 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/apps/{uid}/disable:
    post:
      tags:
      - Apps
      summary: Disable the app.
      operationId: disableApp
      parameters:
      - name: uid
        in: path
        description: The ID of app
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: disableApp 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppsController.ApiApp'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/apps/{uid}/enable:
    post:
      tags:
      - Apps
      summary: Enable the app.
      operationId: enableApp
      parameters:
      - name: uid
        in: path
        description: The ID of app
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: enableApp 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppsController.ApiApp'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/assets:
    post:
      tags:
      - Assets
      summary: Create a new asset
      description: 'Asset IDs are unique per tenant: neither the namespace nor the type is part of the identity. Creating an asset with an ID that is already taken is rejected with HTTP 409.'
      operationId: createAsset
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The asset
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '409':
          description: An asset with the same ID already exists
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '423':
          description: Asset locked
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: createAsset 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetsController.ApiAsset'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/assets/by-ids:
    delete:
      tags:
      - Assets
      summary: Delete assets by asset ids
      operationId: deleteAssetsByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The asset ids
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        '200':
          description: Number of deleted assets
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkResponse'
        '400':
          description: If any assetId didn't match an existing asset
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '423':
          description: Asset locked
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/assets/by-query:
    delete:
      tags:
      - Assets
      summary: Delete assets by query
      operationId: deleteAssetsByQuery
      parameters:
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: purge
        in: query
        description: If true, will purge instead of soft-delete
        explode: false
        schema:
          type: boolean
          default: false
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Number of deleted assets, locked ones excluded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/assets/lineage-events/by-query:
    delete:
      tags:
      - Assets
      summary: Delete asset lineage events by query, hard-delete (purge) only
      operationId: deleteAssetLineageEventsByQuery
      parameters:
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/assets/lineage-events/search:
    get:
      tags:
      - Assets
      summary: Search for asset lineage events
      operationId: searchAssetLineageEvents
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchAssetLineageEvents 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_AssetsController.ApiAssetLineageEvent_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/assets/search:
    get:
      tags:
      - Assets
      summary: Search for assets
      operationId: searchAssets
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchAssets 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_AssetsController.ApiAsset_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/assets/usages/by-query:
    delete:
      tags:
      - Assets
      summary: Delete asset usages by query, hard-delete (purge) only
      operationId: deleteAssetUsagesByQuery
      parameters:
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/assets/usages/search:
    get:
      tags:
      - Assets
      summary: Search for asset usages
      operationId: searchAssetUsages
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchAssetUsages 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_AssetsController.ApiAssetUsage_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/assets/{id}:
    get:
      tags:
      - Assets
      summary: Retrieve an asset
      operationId: getAsset
      parameters:
      - name: id
        in: path
        description: The ID of the asset
        required: true
        schema:
          type: string
      - name: allowDeleted
        in: query
        description: Get asset even if soft deleted
        explode: false
        schema:
          type: boolean
          default: false
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getAsset 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetsController.ApiAsset'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Assets
      summary: Update an existing asset
      description: The asset must already exist. Any field can be changed, including the namespace and the type.
      operationId: updateAsset
      parameters:
      - name: id
        in: path
        description: The ID of the asset
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The asset
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '423':
          description: Asset locked
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: updateAsset 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetsController.ApiAsset'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Assets
      summary: Delete an asset
      operationId: deleteAsset
      parameters:
      - name: id
        in: path
        description: The ID of the asset
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '423':
          description: Asset locked
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: deleteAsset 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/assets/{id}/dependencies:
    get:
      tags:
      - Assets
      summary: Get an asset dependencies
      operationId: getAssetDependencies
      parameters:
      - name: id
        in: path
        description: The asset id
        required: true
        schema:
          type: string
      - name: destinationOnly
        in: query
        description: If true, list only destination dependencies, otherwise list also source dependencies
        explode: false
        schema:
          type: boolean
          default: false
      - name: expandAll
        in: query
        description: If true, expand all dependencies recursively
        explode: false
        schema:
          type: boolean
          default: false
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getAssetDependencies 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetTopologyGraph'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/assets/{id}/lock:
    post:
      tags:
      - Assets
      summary: Lock an asset (manual user lock, or an execution lock when executionId is set)
      operationId: lockAsset
      parameters:
      - name: id
        in: path
        description: The ID of the asset
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The lock options
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetsController.AssetLockRequest'
      responses:
        '200':
          description: lockAsset 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetsController.ApiAssetLock'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Assets
      summary: Unlock an asset (forced manual unlock, or an execution releasing its own lock when executionId is set)
      operationId: unlockAsset
      parameters:
      - name: id
        in: path
        description: The ID of the asset
        required: true
        schema:
          type: string
      - name: executionId
        in: query
        description: When set, the execution releases ONLY its own lock (owner-checked, no-op otherwise). When absent, a forced manual unlock removes the lock regardless of owner.
        explode: false
        schema:
          type: string
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: unlockAsset 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/auditlogs/export:
    get:
      tags:
      - Audit Logs
      summary: Export all audit logs as a streamed CSV file
      operationId: exportAuditLogs
      parameters:
      - name: filters
        in: query
        description: A list of query filters
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Ok
          content:
            text/csv:
              schema:
                type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/auditlogs/find:
    post:
      tags:
      - Audit Logs
      summary: Find a specific audit log
      operationId: findAuditLog
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The find request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuditLogController.FindRequest'
        required: true
      responses:
        '200':
          description: findAuditLog 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuditLogController.ApiAuditLogItem'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/auditlogs/history/{detailId}:
    get:
      tags:
      - Audit Logs
      summary: Find all audit logs about a specific resource.
      operationId: listAuditLogFromResourceId
      parameters:
      - name: detailId
        in: path
        description: The resource Id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listAuditLogFromResourceId 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AuditLogController.AuditLogOption'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/auditlogs/search:
    get:
      tags:
      - Audit Logs
      summary: Search for audit logs
      operationId: searchAuditLogs
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: A list of query filters
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchAuditLogs 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_AuditLogController.ApiAuditLogItem_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/auditlogs/{id}/diff:
    get:
      tags:
      - Audit Logs
      summary: Retrieve the diff between audit logs
      description: Retrieves the diff between the current version and a selected previous version of a given resource based on audit logs.
      operationId: getResourceDiffFromAuditLog
      parameters:
      - name: id
        in: path
        description: The id of the audit log
        required: true
        schema:
          type: string
      - name: previousId
        in: query
        description: The id of a previous audit log to compare with
        explode: false
        schema:
          type: string
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getResourceDiffFromAuditLog 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuditLogController.AuditLogDiff'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/basicAuth:
    post:
      tags:
      - Misc
      summary: Configure basic authentication for the instance.
      description: Sets up basic authentication credentials. Once credentials already exist, the request must also carry the current password.
      operationId: createBasicAuth
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BasicAuthCredentials'
        required: true
      responses:
        '200':
          description: createBasicAuth 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/bindings:
    post:
      tags:
      - Bindings
      summary: Create a binding
      operationId: createBinding
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The binding
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IAMBindingController.ApiCreateBindingRequest'
        required: true
      responses:
        '200':
          description: createBinding 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMBindingController.ApiBindingDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/bindings/bulk:
    post:
      tags:
      - Bindings
      summary: Create multiple bindings
      operationId: bulkCreateBinding
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The bindings
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/IAMBindingController.ApiCreateBindingRequest'
        required: true
      responses:
        '200':
          description: bulkCreateBinding 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IAMBindingController.ApiBindingDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/bindings/search:
    get:
      tags:
      - Bindings
      summary: Search for bindings
      operationId: searchBindings
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: type
        in: query
        description: Binding type filter
        explode: false
        schema:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/Binding.Type'
      - name: id
        in: query
        description: External id filter
        explode: false
        schema:
          type: string
          nullable: true
      - name: namespace
        in: query
        description: A namespace filter
        explode: false
        schema:
          type: string
          nullable: true
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchBindings 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_IAMBindingController.ApiBindingDetail_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/bindings/{id}:
    get:
      tags:
      - Bindings
      summary: Retrieve a binding
      operationId: getBinding
      parameters:
      - name: id
        in: path
        description: The binding id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getBinding 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMBindingController.ApiBindingDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Bindings
      summary: Delete a binding
      operationId: deleteBinding
      parameters:
      - name: id
        in: path
        description: The binding id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: On success
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/blueprints/community/{kind}:
    get:
      tags:
      - Blueprints
      summary: List all blueprints
      description: Lists all community blueprints of the specified kind. Community blueprints are shared and versioned.
      operationId: searchBlueprints
      parameters:
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: string
          nullable: true
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: kind
        in: path
        description: The blueprint kind
        required: true
        schema:
          $ref: '#/components/schemas/BlueprintController.Kind'
      - name: filters
        in: query
        description: A list of query filters
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchBlueprints 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_BlueprintController.ApiBlueprintItem_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/blueprints/community/{kind}/tags:
    get:
      tags:
      - Blueprint Tags
      summary: List blueprint tags matching the filter
      description: Lists tags for community blueprints of the specified kind, optionally filtered by query.
      operationId: listBlueprintTags
      parameters:
      - name: kind
        in: path
        description: The blueprint kind
        required: true
        schema:
          $ref: '#/components/schemas/BlueprintController.Kind'
      - name: filters
        in: query
        description: A list of query filters
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listBlueprintTags 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BlueprintController.ApiBlueprintTagItem'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/blueprints/community/{kind}/{id}:
    get:
      tags:
      - Blueprints
      summary: Retrieve a blueprint
      description: Retrieves details of a specific community blueprint.
      operationId: getBlueprint
      parameters:
      - name: id
        in: path
        description: The blueprint id
        required: true
        schema:
          type: string
      - name: kind
        in: path
        description: The blueprint kind
        required: true
        schema:
          $ref: '#/components/schemas/BlueprintController.Kind'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getBlueprint 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlueprintController.ApiBlueprintItemWithSource'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/blueprints/community/{kind}/{id}/graph:
    get:
      tags:
      - Blueprints
      summary: Retrieve a blueprint graph
      description: Retrieves the topology graph representation of a specific community blueprint.
      operationId: getBlueprintGraph
      parameters:
      - name: id
        in: path
        description: The blueprint id
        required: true
        schema:
          type: string
      - name: kind
        in: path
        description: The blueprint kind
        required: true
        schema:
          $ref: '#/components/schemas/BlueprintController.Kind'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getBlueprintGraph 200 response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/blueprints/community/{kind}/{id}/source:
    get:
      tags:
      - Blueprints
      summary: Retrieve a blueprint source code
      description: Retrieves the YAML source code for a specific community blueprint.
      operationId: getBlueprintSource
      parameters:
      - name: id
        in: path
        description: The blueprint id
        required: true
        schema:
          type: string
      - name: kind
        in: path
        description: The blueprint kind
        required: true
        schema:
          $ref: '#/components/schemas/BlueprintController.Kind'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getBlueprintSource 200 response
          content:
            application/yaml:
              schema:
                type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/blueprints/custom:
    get:
      tags:
      - Blueprints
      summary: List all internal blueprints
      description: Lists all internal (custom) blueprints for the current tenant. Requires BLUEPRINT permission.
      operationId: searchInternalBlueprints
      parameters:
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: string
          nullable: true
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 1
      - name: source
        in: query
        description: Whether to include the flow source in the response
        explode: false
        schema:
          type: boolean
          nullable: true
          default: false
      - name: filters
        in: query
        description: A list of query filters
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchInternalBlueprints 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_Blueprint_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - Blueprints
      summary: Create a new internal blueprint
      description: Creates a new internal (custom) blueprint for the current tenant. Requires BLUEPRINT permission.
      operationId: createInternalBlueprints
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The internal blueprint to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BlueprintController.ApiBlueprintItemWithSource'
        required: true
      responses:
        '200':
          description: createInternalBlueprints 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlueprintController.ApiBlueprintItemWithSource'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      deprecated: true
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/blueprints/custom/tags:
    get:
      tags:
      - Blueprint Tags
      summary: List all internal blueprint tags
      description: Lists all tags used by internal (custom) blueprints for the current tenant.
      operationId: internalBlueprintTags
      parameters:
      - name: filters
        in: query
        description: A list of query filters
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: internalBlueprintTags 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/blueprints/custom/{id}:
    get:
      tags:
      - Blueprints
      summary: Retrieve an internal blueprint
      description: Retrieves details of a specific internal (custom) blueprint. Requires BLUEPRINT permission.
      operationId: internalBlueprint
      parameters:
      - name: id
        in: path
        description: The blueprint id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: internalBlueprint 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlueprintController.ApiFlowBlueprint'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Blueprints
      summary: Update an internal blueprint
      description: Updates an existing internal (custom) blueprint for the current tenant. Requires BLUEPRINT permission.
      operationId: updateInternalBlueprints
      parameters:
      - name: id
        in: path
        description: The id of the internal blueprint to update
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The new internal blueprint for update
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BlueprintController.ApiBlueprintItemWithSource'
        required: true
      responses:
        '200':
          description: updateInternalBlueprints 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlueprintWithFlowEntity'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      deprecated: true
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Blueprints
      summary: Delete an internal blueprint
      description: Deletes an internal (custom) blueprint for the current tenant. Requires BLUEPRINT permission.
      operationId: deleteInternalBlueprints
      parameters:
      - name: id
        in: path
        description: The internal blueprint id to delete
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteInternalBlueprints 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      deprecated: true
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/blueprints/custom/{id}/source:
    get:
      tags:
      - Blueprints
      summary: Retrieve an internal blueprint source code
      description: Retrieves the YAML source code for a specific internal (custom) blueprint. Requires BLUEPRINT permission.
      operationId: internalBlueprintFlow
      parameters:
      - name: id
        in: path
        description: The blueprint id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: internalBlueprintFlow 200 response
          content:
            application/yaml:
              schema:
                type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/blueprints/flow/{id}:
    get:
      tags:
      - Blueprints
      summary: Retrieve an flow blueprint
      description: Retrieves details of a specific flow blueprint. Requires BLUEPRINT permission.
      operationId: getFlowBlueprint
      parameters:
      - name: id
        in: path
        description: The blueprint id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getFlowBlueprint 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlueprintController.ApiFlowBlueprint'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/blueprints/flows:
    post:
      tags:
      - Blueprints
      summary: Create a Flow Blueprint
      operationId: createFlowBlueprint
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BlueprintController.FlowBlueprintCreateOrUpdate'
        required: true
      responses:
        '200':
          description: createFlowBlueprint 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlueprintController.ApiFlowBlueprint'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/blueprints/flows/validate:
    post:
      tags:
      - Blueprints
      summary: Validate a Flow Blueprint
      description: Validates a flow blueprint source without persisting it. Returns constraint violations if any. Requires BLUEPRINT permission with the VIEW action.
      operationId: validateFlowBlueprint
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The flow blueprint source code
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: validateFlowBlueprint 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateConstraintViolation'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/blueprints/flows/{id}:
    get:
      tags:
      - Blueprints
      summary: Retrieve an flow blueprint
      description: Retrieves details of a specific flow blueprint. Requires BLUEPRINT permission.
      operationId: getFlowBlueprintById
      parameters:
      - name: id
        in: path
        description: The blueprint id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getFlowBlueprintById 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlueprintController.ApiFlowBlueprint'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Blueprints
      summary: Update a Flow Blueprint
      operationId: updateFlowBlueprint
      parameters:
      - name: id
        in: path
        description: The flow blueprint id to update
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BlueprintController.FlowBlueprintCreateOrUpdate'
        required: true
      responses:
        '200':
          description: updateFlowBlueprint 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlueprintController.ApiFlowBlueprint'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Blueprints
      summary: Delete an Flow Blueprint
      description: Deletes an Flow Blueprint for the current tenant. Requires BLUEPRINT permission.
      operationId: deleteFlowBlueprints
      parameters:
      - name: id
        in: path
        description: The flow blueprint id to delete
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteFlowBlueprints 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/blueprints/flows/{id}/use-template:
    post:
      tags:
      - Blueprints
      summary: Use a Flow Blueprint template to generate a Flow source
      operationId: useBlueprintTemplate
      parameters:
      - name: id
        in: path
        description: The flow blueprint id to use
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BlueprintController.UseBlueprintTemplateRequest'
        required: true
      responses:
        '200':
          description: useBlueprintTemplate 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlueprintController.UseBlueprintTemplateResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/blueprints/flows/{id}/use-template/validate:
    post:
      tags:
      - Blueprints
      summary: Validate the template arguments of a Flow Blueprint template
      description: Resolves the template arguments against the values already provided, so conditional arguments ('dependsOn') and validation errors can be rendered by the form. Requires BLUEPRINT permission.
      operationId: validateBlueprintTemplateArguments
      parameters:
      - name: id
        in: path
        description: The flow blueprint id to use
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BlueprintController.UseBlueprintTemplateRequest'
        required: true
      responses:
        '200':
          description: validateBlueprintTemplateArguments 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlueprintController.ApiValidateBlueprintTemplateArgumentsResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/case-templates:
    post:
      tags:
      - Cases
      summary: Create a case template
      operationId: create_4
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaseTemplatesController.CaseTemplateRequest'
        required: true
      responses:
        '200':
          description: create_4 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CaseTemplatesController.ApiCaseTemplate'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/case-templates/search:
    get:
      tags:
      - Cases
      summary: Search for case templates
      operationId: search
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: search 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_CaseTemplatesController.ApiCaseTemplate_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/case-templates/{id}:
    get:
      tags:
      - Cases
      summary: Retrieve a case template
      operationId: get_5
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: get_5 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CaseTemplatesController.ApiCaseTemplate'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Cases
      summary: Update a case template
      operationId: update_3
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaseTemplatesController.CaseTemplateRequest'
        required: true
      responses:
        '200':
          description: update_3 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CaseTemplatesController.ApiCaseTemplate'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Cases
      summary: Delete a case template
      operationId: delete_4
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: delete_4 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases:
    post:
      tags:
      - Cases
      summary: Create a new case
      operationId: createCase
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CasesController.CaseCreateRequest'
        required: true
      responses:
        '200':
          description: createCase 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesController.ApiCase'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/assignees:
    get:
      tags:
      - Cases
      summary: List the distinct assignees among cases matching the given filters
      description: Used to build the board's per-assignee columns.
      operationId: assignees
      parameters:
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: dateFilter
        in: query
        description: Which case date field the time range filter is applied to
        explode: false
        schema:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ExecutionRepositoryInterface.DateFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: assignees 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_CasesController.ApiSubjectRef_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/by-asset/{assetId}:
    get:
      tags:
      - Cases
      summary: List the cases linked to an asset, explicit and auto-detected
      description: Used to build the asset detail page's linked-cases panel.
      operationId: byAsset
      parameters:
      - name: assetId
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: byAsset 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_CasesController.ApiCaseSummary_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/by-executions:
    post:
      tags:
      - Cases
      summary: Look up the cases linked to a batch of executions
      operationId: byExecutions
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        '200':
          description: byExecutions 200 response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: array
                  items:
                    $ref: '#/components/schemas/CasesController.ApiCaseSummary'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/by-ids/acknowledge:
    post:
      tags:
      - Cases
      summary: Acknowledge cases by case ids
      operationId: acknowledgeCasesByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The case ids
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        '200':
          description: Number of acknowledged cases
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkResponse'
        '400':
          description: If any caseId didn't match an existing case, or wasn't allowed for the requested action
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/by-ids/delete:
    post:
      tags:
      - Cases
      summary: Delete cases by case ids
      operationId: deleteCasesByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The case ids
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        '200':
          description: Number of deleted cases
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkResponse'
        '400':
          description: If any caseId didn't match an existing case, or wasn't allowed for the requested action
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/by-query:
    delete:
      tags:
      - Cases
      summary: Delete cases by query
      operationId: deleteCasesByQuery
      parameters:
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: dateFilter
        in: query
        description: Which case date field the time range filter is applied to
        explode: false
        schema:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ExecutionRepositoryInterface.DateFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Number of deleted cases
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkResponse'
        '400':
          description: If any caseId didn't match an existing case, or wasn't allowed for the requested action
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/counts:
    get:
      tags:
      - Cases
      summary: Count cases by status
      operationId: counts
      parameters:
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: dateFilter
        in: query
        description: Which case date field the time range filter is applied to
        explode: false
        schema:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ExecutionRepositoryInterface.DateFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: counts 200 response
          content:
            application/json:
              schema:
                type: object
                properties:
                  OPEN:
                    type: integer
                    format: int64
                  ACKNOWLEDGED:
                    type: integer
                    format: int64
                  INVESTIGATING:
                    type: integer
                    format: int64
                  RESOLVED:
                    type: integer
                    format: int64
                  CANCELLED:
                    type: integer
                    format: int64
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/from-executions:
    post:
      tags:
      - Cases
      summary: Create a case from a selection of executions
      operationId: createFromExecutions
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CasesController.FromExecutionsRequest'
        required: true
      responses:
        '200':
          description: createFromExecutions 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesController.ApiCase'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/from-executions/by-query:
    post:
      tags:
      - Cases
      summary: Create a case from executions matching a query
      operationId: createFromExecutionsByQuery
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CasesController.FromExecutionsByQueryRequest'
        required: true
      responses:
        '200':
          description: createFromExecutionsByQuery 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesController.ApiCase'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/from-task:
    post:
      tags:
      - Cases
      summary: Create a case from a task run, or attach to a matching open case
      description: 'Best-effort creates a case from a task run, or attaches the triggering execution to a matching already-open case (same tenant + flow namespace/id + task id), used by the `CreateCase` plugin task. This is a check-then-act, not atomic: concurrent runs of the same task can each create their own case. Unlike #createCaseFromRequest, title/description are stored verbatim: the task has already rendered any Pebble expressions itself.'
      operationId: createFromTask
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CasesController.CaseFromTaskRequest'
        required: true
      responses:
        '200':
          description: createFromTask 200 response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/search:
    get:
      tags:
      - Cases
      summary: Search for cases
      operationId: search_1
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: dateFilter
        in: query
        description: Which case date field the time range filter is applied to
        explode: false
        schema:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ExecutionRepositoryInterface.DateFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: search_1 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_CasesController.ApiCase_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/{id}:
    get:
      tags:
      - Cases
      summary: Retrieve a case
      operationId: getCase
      parameters:
      - name: id
        in: path
        description: The ID of the case
        required: true
        schema:
          type: string
      - name: allowDeleted
        in: query
        description: Get case even if soft deleted
        explode: false
        schema:
          type: boolean
          default: false
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getCase 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesController.ApiCase'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Cases
      summary: Update a case
      operationId: updateCase
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CasesController.CaseUpdateRequest'
        required: true
      responses:
        '200':
          description: updateCase 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesController.ApiCase'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Cases
      summary: Delete a case
      operationId: deleteCase
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteCase 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/{id}/acknowledge:
    post:
      tags:
      - Cases
      summary: Acknowledge a case
      operationId: acknowledge
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: acknowledge 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesController.ApiCase'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/{id}/actions:
    post:
      tags:
      - Cases
      summary: Attach a flow as a runnable action on a case
      operationId: attachAction
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CasesController.AttachActionRequest'
        required: true
      responses:
        '200':
          description: attachAction 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesController.ApiCase'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/{id}/actions/run:
    post:
      tags:
      - Cases
      summary: Run one of a case's attached flow actions
      operationId: runAction
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CasesController.RunActionRequest'
        required: true
      responses:
        '200':
          description: runAction 200 response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/{id}/actions/{namespace}/{flowId}:
    put:
      tags:
      - Cases
      summary: Replace an attached action's label or target flow
      operationId: updateAction
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      - name: flowId
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CasesController.AttachActionRequest'
        required: true
      responses:
        '200':
          description: updateAction 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesController.ApiCase'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Cases
      summary: Detach a flow action from a case
      operationId: detachAction
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      - name: flowId
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: detachAction 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesController.ApiCase'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/{id}/assets:
    get:
      tags:
      - Cases
      summary: List a case's linked assets, explicit and auto-detected
      operationId: assets
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: assets 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_CasesController.ApiCaseAsset_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - Cases
      summary: Explicitly link an asset to a case
      operationId: attachAsset
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CasesController.AttachAssetRequest'
        required: true
      responses:
        '200':
          description: attachAsset 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesController.ApiCase'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/{id}/assets/{assetId}:
    delete:
      tags:
      - Cases
      summary: Unlink an asset from a case
      operationId: detachAsset
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: assetId
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: detachAsset 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesController.ApiCase'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/{id}/assign:
    post:
      tags:
      - Cases
      summary: Assign a case to users/groups
      operationId: assign
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CasesController.AssignRequest'
        required: true
      responses:
        '200':
          description: assign 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesController.ApiCase'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/{id}/attachments/{attachmentId}:
    get:
      tags:
      - Cases
      summary: Download a comment attachment
      operationId: downloadAttachment
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: attachmentId
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: downloadAttachment 200 response
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/{id}/auto-attach:
    post:
      tags:
      - Cases
      summary: Enable auto-attaching future matching executions to a case
      operationId: enableAutoAttach
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CasesController.AutoAttachRequest'
        required: true
      responses:
        '200':
          description: enableAutoAttach 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesController.ApiCase'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Cases
      summary: Disable auto-attaching future matching executions from a case
      operationId: disableAutoAttach
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: disableAutoAttach 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesController.ApiCase'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/{id}/cancel:
    post:
      tags:
      - Cases
      summary: Cancel a case
      operationId: cancel
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CasesController.CancelRequest'
      responses:
        '200':
          description: cancel 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesController.ApiCase'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/{id}/comments:
    post:
      tags:
      - Cases
      summary: Comment on a case
      description: Accepts an optional markdown body and up to 5 file attachments, stored via the internal storage.
      operationId: addComment
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                body:
                  type: string
                  nullable: true
                files:
                  type: array
                  nullable: true
                  items:
                    type: string
                    format: binary
            encoding:
              files:
                contentType: application/octet-stream
                explode: false
              body:
                contentType: application/octet-stream
                explode: false
        required: true
      responses:
        '200':
          description: addComment 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesController.ApiCaseEvent'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/{id}/events:
    get:
      tags:
      - Cases
      summary: List a case's timeline (system events + comments)
      operationId: events
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: events 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_CasesController.ApiCaseEvent_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/{id}/executions:
    get:
      tags:
      - Cases
      summary: List a case's linked executions, hydrated with live state
      operationId: executions
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: executions 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_CasesController.ApiCaseExecution_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - Cases
      summary: Link executions to a case by id
      operationId: linkExecutions
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CasesController.LinkExecutionsRequest'
        required: true
      responses:
        '200':
          description: linkExecutions 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesController.ApiCase'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/{id}/executions/by-query:
    post:
      tags:
      - Cases
      summary: Link executions matching a query to a case
      operationId: linkExecutionsByQuery
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CasesController.LinkExecutionsByQueryRequest'
        required: true
      responses:
        '200':
          description: linkExecutionsByQuery 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesController.ApiCase'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/{id}/executions/{executionId}:
    delete:
      tags:
      - Cases
      summary: Unlink an execution from a case
      operationId: unlinkExecution
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: executionId
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: unlinkExecution 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/{id}/follow:
    post:
      tags:
      - Cases
      summary: Follow a case
      operationId: follow
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: follow 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesController.ApiCase'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/{id}/resolve:
    post:
      tags:
      - Cases
      summary: Resolve a case
      operationId: resolve
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CasesController.ResolveRequest'
        required: true
      responses:
        '200':
          description: resolve 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesController.ApiCase'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/{id}/status:
    post:
      tags:
      - Cases
      summary: Change a case's status
      description: Generic transition endpoint; also allows reopening a terminal case.
      operationId: changeStatus
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CasesController.StatusRequest'
        required: true
      responses:
        '200':
          description: changeStatus 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesController.ApiCase'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/cases/{id}/unfollow:
    post:
      tags:
      - Cases
      summary: Unfollow a case
      operationId: unfollow
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: unfollow 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesController.ApiCase'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/concurrency-limit/search:
    get:
      tags:
      - Flows
      summary: Search for flow concurrency limits
      operationId: searchConcurrencyLimitsasInstanceOwner
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchConcurrencyLimitsasInstanceOwner 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_ConcurrencyLimit_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/concurrency-limit/{namespace}/{flowId}:
    get:
      tags:
      - Flows
      summary: Get the concurrency limit of a flow
      operationId: getConcurrencyLimit
      parameters:
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      - name: flowId
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getConcurrencyLimit 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConcurrencyLimit'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Flows
      summary: Update a flow concurrency limit
      operationId: updateConcurrencyLimitasInstanceOwner
      parameters:
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      - name: flowId
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConcurrencyLimit'
        required: true
      responses:
        '200':
          description: updateConcurrencyLimitasInstanceOwner 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConcurrencyLimit'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/credentials:
    get:
      tags:
      - Credentials
      summary: List all tenant-level credentials
      operationId: listCredentials
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listCredentials 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_ApiCredentialResponse_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - Credentials
      summary: Create a new tenant-level credential
      operationId: createCredential
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiCreateCredentialRequest'
        required: true
      responses:
        '200':
          description: createCredential 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiCredentialResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/credentials/{id}:
    get:
      tags:
      - Credentials
      summary: Get a credential by ID
      operationId: getCredential
      parameters:
      - name: id
        in: path
        description: The credential ID
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getCredential 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiCredentialResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Credentials
      summary: Update an existing credential
      operationId: updateCredential
      parameters:
      - name: id
        in: path
        description: The credential ID
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiUpdateCredentialRequest'
        required: true
      responses:
        '200':
          description: updateCredential 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiCredentialResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Credentials
      summary: Delete a credential
      operationId: deleteCredential
      parameters:
      - name: id
        in: path
        description: The credential ID
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteCredential 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/credentials/{id}/test:
    post:
      tags:
      - Credentials
      summary: Test a credential connection by attempting to fetch a token
      operationId: testConnection
      parameters:
      - name: id
        in: path
        description: The credential ID
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: testConnection 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTestConnectionResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/dashboards:
    get:
      tags:
      - Dashboards
      summary: Search for dashboards
      operationId: searchDashboards
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: q
        in: query
        description: The filter query
        explode: false
        schema:
          type: string
          nullable: true
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchDashboards 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_DashboardController.DashboardResponse_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - Dashboards
      summary: Create a dashboard from yaml source
      operationId: createDashboard
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The dashboard definition as YAML
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '422':
          description: If the dashboard id is reserved ('_default')
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: createDashboard 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DashboardController.DashboardResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/dashboards/charts/export:
    post:
      tags:
      - Dashboards
      summary: Export a chart data
      operationId: exportChart
      parameters:
      - name: format
        in: query
        description: The export format
        explode: false
        schema:
          $ref: '#/components/schemas/ExportFormat'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DashboardController.PreviewRequest'
        required: true
      responses:
        '200':
          description: exportChart 200 response
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/dashboards/charts/preview:
    post:
      tags:
      - Dashboards
      summary: Preview a chart data
      operationId: previewChart
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DashboardController.PreviewRequest'
        required: true
      responses:
        '200':
          description: previewChart 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_Map_String.Object__'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/dashboards/defaults/definitions:
    get:
      tags:
      - Dashboards
      summary: Get the built-in default dashboard definitions
      operationId: getDefaultDashboardDefinitions
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getDefaultDashboardDefinitions 200 response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/dashboards/settings/default-dashboards:
    get:
      tags:
      - Dashboards
      summary: Get default dashboards
      operationId: getDefaultDashboards_1
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getDefaultDashboards_1 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DashboardSettings'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/dashboards/validate:
    post:
      tags:
      - Dashboards
      summary: Validate dashboard from yaml source
      operationId: validateDashboard
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The dashboard definition as YAML
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: validateDashboard 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateConstraintViolation'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/dashboards/validate/chart:
    post:
      tags:
      - Dashboards
      summary: Validate a chart from yaml source
      operationId: validateChart
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The chart definition as YAML
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: validateChart 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateConstraintViolation'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/dashboards/{id}:
    get:
      tags:
      - Dashboards
      summary: Get a dashboard
      operationId: getDashboard
      parameters:
      - name: id
        in: path
        description: The dashboard id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getDashboard 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DashboardController.DashboardResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Dashboards
      summary: Update a dashboard
      operationId: updateDashboard
      parameters:
      - name: id
        in: path
        description: The dashboard id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The dashboard definition as YAML
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '422':
          description: If the dashboard id is reserved ('_default')
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: updateDashboard 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DashboardController.DashboardResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Dashboards
      summary: Delete a dashboard
      operationId: deleteDashboard
      parameters:
      - name: id
        in: path
        description: The dashboard id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteDashboard 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/dashboards/{id}/charts/{chartId}:
    post:
      tags:
      - Dashboards
      summary: Generate a dashboard chart data
      operationId: getDashboardChartData
      parameters:
      - name: id
        in: path
        description: The dashboard id
        required: true
        schema:
          type: string
      - name: chartId
        in: path
        description: The chart id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The filters to apply, some can override chart definition like labels & namespace
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChartFiltersOverrides'
        required: true
      responses:
        '200':
          description: getDashboardChartData 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_Map_String.Object__'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/dashboards/{id}/charts/{chartId}/export:
    post:
      tags:
      - Dashboards
      summary: Export a dashboard chart data
      operationId: exportDashboardChart
      parameters:
      - name: id
        in: path
        description: The dashboard id
        required: true
        schema:
          type: string
      - name: chartId
        in: path
        description: The chart id
        required: true
        schema:
          type: string
      - name: format
        in: query
        description: The export format
        explode: false
        schema:
          $ref: '#/components/schemas/ExportFormat'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The filters to apply, some can override chart definition like labels & namespace
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChartFiltersOverrides'
        required: true
      responses:
        '200':
          description: exportDashboardChart 200 response
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/dependencies:
    get:
      tags:
      - Tenants
      summary: Get tenant dependencies
      operationId: getFlowDependenciesFromTenant
      parameters:
      - name: destinationOnly
        in: query
        description: if true, list only destination dependencies, otherwise list also source dependencies
        explode: false
        schema:
          type: boolean
          default: false
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getFlowDependenciesFromTenant 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowTopologyGraph'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions:
    get:
      tags:
      - Executions
      summary: Search for executions for a flow
      operationId: searchExecutionsByFlowId
      parameters:
      - name: namespace
        in: query
        description: The flow namespace
        required: true
        explode: false
        schema:
          type: string
      - name: flowId
        in: query
        description: The flow id
        required: true
        explode: false
        schema:
          type: string
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchExecutionsByFlowId 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_ApiLightExecution_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/by-ids:
    delete:
      tags:
      - Executions
      summary: Delete a list of executions
      operationId: deleteExecutionsByIds
      parameters:
      - name: includeNonTerminated
        in: query
        description: Whether to delete non-terminated executions
        explode: false
        schema:
          type: boolean
          nullable: true
          default: false
      - name: deleteLogs
        in: query
        description: Whether to delete execution logs
        required: false
        explode: false
        schema:
          type: boolean
          default: true
      - name: deleteMetrics
        in: query
        description: Whether to delete execution metrics
        required: false
        explode: false
        schema:
          type: boolean
          default: true
      - name: deleteStorage
        in: query
        description: Whether to delete execution files in the internal storage
        required: false
        explode: false
        schema:
          type: boolean
          default: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The execution id
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkResponse'
        '400':
          description: Validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/by-query:
    delete:
      tags:
      - Executions
      summary: Delete executions filter by query parameters
      operationId: deleteExecutionsByQuery
      parameters:
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[timeRange][EQUALS]=PT168H`, `filters[scope][EQUALS]=USER`, `filters[state][IN]=FAILED,CANCELLED`, `filters[labels][NOT_EQUALS][foo]=bar`, `filters[namespace][CONTAINS]=test`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: includeNonTerminated
        in: query
        description: Whether to delete non-terminated executions
        explode: false
        schema:
          type: boolean
          nullable: true
          default: false
      - name: deleteLogs
        in: query
        description: Whether to delete execution logs
        required: false
        explode: false
        schema:
          type: boolean
          default: true
      - name: deleteMetrics
        in: query
        description: Whether to delete execution metrics
        required: false
        explode: false
        schema:
          type: boolean
          default: true
      - name: deleteStorage
        in: query
        description: Whether to delete execution files in the internal storage
        required: false
        explode: false
        schema:
          type: boolean
          default: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkResponse'
        '400':
          description: Validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/change-status/by-ids:
    post:
      tags:
      - Executions
      summary: Change executions state by id asynchronously
      operationId: updateExecutionsStatusByIds
      parameters:
      - name: newStatus
        in: query
        description: The new state of the executions
        required: true
        explode: false
        schema:
          $ref: '#/components/schemas/State.Type'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The list of executions id
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '400':
          description: Validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: updateExecutionsStatusByIds 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/change-status/by-query:
    post:
      tags:
      - Executions
      summary: Change executions state by query parameters asynchronously
      operationId: updateExecutionsStatusByQuery
      parameters:
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[timeRange][EQUALS]=PT168H`, `filters[scope][EQUALS]=USER`, `filters[state][IN]=FAILED,CANCELLED`, `filters[labels][NOT_EQUALS][foo]=bar`, `filters[namespace][CONTAINS]=test`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: newStatus
        in: query
        description: The new state of the executions
        required: true
        explode: false
        schema:
          $ref: '#/components/schemas/State.Type'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '400':
          description: Validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: updateExecutionsStatusByQuery 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/distinct-field-values:
    get:
      tags:
      - Executions
      summary: List distinct values for one of the executions filter fields, optionally narrowed by additional query filters
      operationId: findDistinctFieldValues
      parameters:
      - name: field
        in: query
        description: The field whose distinct values to return. Must be a field supported by the EXECUTION resource.
        required: true
        explode: false
        schema:
          $ref: '#/components/schemas/QueryFilter.Field'
      - name: filters
        in: query
        description: 'Additional filters to narrow the distinct values. PHP-style nested query is used - examples: `filters[flowId][CONTAINS]=test`, `filters[state][IN]=FAILED,WARNING`'
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: size
        in: query
        description: Maximum number of distinct values to return.
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 100
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: findDistinctFieldValues 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/export/by-query/csv:
    get:
      tags:
      - Executions
      summary: Export all executions as a streamed CSV file
      operationId: exportExecutions
      parameters:
      - name: filters
        in: query
        description: A list of filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: exportExecutions 200 response
          content:
            text/csv:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/flows/{namespace}/{flowId}:
    get:
      tags:
      - Executions
      summary: Get flow information's for an execution
      operationId: getFlowFromExecution
      parameters:
      - name: namespace
        in: path
        description: The namespace of the flow
        required: true
        schema:
          type: string
      - name: flowId
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: revision
        in: query
        description: The flow revision
        explode: false
        schema:
          type: integer
          format: int32
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getFlowFromExecution 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowForExecution'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/force-run/by-ids:
    post:
      tags:
      - Executions
      summary: Force run a list of executions asynchronously
      operationId: forceRunByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The list of executions id
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '400':
          description: Validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: forceRunByIds 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/force-run/by-query:
    post:
      tags:
      - Executions
      summary: Force run executions filter by query parameters asynchronously
      operationId: forceRunExecutionsByQuery
      parameters:
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[timeRange][EQUALS]=PT168H`, `filters[scope][EQUALS]=USER`, `filters[state][IN]=FAILED,CANCELLED`, `filters[labels][NOT_EQUALS][foo]=bar`, `filters[namespace][CONTAINS]=test`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '400':
          description: Validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: forceRunExecutionsByQuery 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/kill/by-ids:
    delete:
      tags:
      - Executions
      summary: Kill a list of executions asynchronously
      operationId: killExecutionsByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The list of executions id
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '400':
          description: Validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: killExecutionsByIds 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/kill/by-query:
    delete:
      tags:
      - Executions
      summary: Kill executions filter by query parameters
      operationId: killExecutionsByQuery
      parameters:
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[timeRange][EQUALS]=PT168H`, `filters[scope][EQUALS]=USER`, `filters[state][IN]=FAILED,CANCELLED`, `filters[labels][NOT_EQUALS][foo]=bar`, `filters[namespace][CONTAINS]=test`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '400':
          description: Validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: killExecutionsByQuery 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/labels/by-ids:
    post:
      tags:
      - Executions
      summary: Set labels on a list of executions asynchronously
      operationId: setLabelsOnTerminatedExecutionsByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The request containing a list of labels and a list of executions
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExecutionController.SetLabelsByIdsRequest'
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '400':
          description: Validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: setLabelsOnTerminatedExecutionsByIds 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/labels/by-query:
    post:
      tags:
      - Executions
      summary: Set label on executions filter by query parameters asynchronously
      operationId: setLabelsOnTerminatedExecutionsByQuery
      parameters:
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[timeRange][EQUALS]=PT168H`, `filters[scope][EQUALS]=USER`, `filters[state][IN]=FAILED,CANCELLED`, `filters[labels][NOT_EQUALS][foo]=bar`, `filters[namespace][CONTAINS]=test`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The labels to add to the execution
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/Label'
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '400':
          description: Validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: setLabelsOnTerminatedExecutionsByQuery 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/latest:
    post:
      tags:
      - Executions
      summary: Get the latest execution for given flows
      operationId: getLatestExecutions
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ExecutionRepositoryInterface.FlowFilter'
        required: true
      responses:
        '200':
          description: getLatestExecutions 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ExecutionController.LastExecutionResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/namespaces:
    get:
      tags:
      - Executions
      summary: Get all namespaces that have executable flows
      operationId: listExecutableDistinctNamespaces
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listExecutableDistinctNamespaces 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/namespaces/{namespace}/flows:
    get:
      tags:
      - Executions
      summary: Get all flow ids for a namespace. Data returned are FlowForExecution containing minimal information about a Flow for when you are allowed to executing but not reading.
      operationId: listFlowExecutionsByNamespace
      parameters:
      - name: namespace
        in: path
        description: The namespace
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listFlowExecutionsByNamespace 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FlowForExecution'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/namespaces/{namespace}/flows/{flowId}/average-duration:
    get:
      tags:
      - Executions
      summary: Get the average duration of the recent executions of a flow, used to estimate the progress of a running execution.
      operationId: getExecutionAverageDuration
      parameters:
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: flowId
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getExecutionAverageDuration 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionController.ExecutionAverageDuration'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/pause/by-ids:
    post:
      tags:
      - Executions
      summary: Pause a list of running executions asynchronously
      operationId: pauseExecutionsByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The list of executions id
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '400':
          description: Validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: pauseExecutionsByIds 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/pause/by-query:
    post:
      tags:
      - Executions
      summary: Pause executions filter by query parameters asynchronously
      operationId: pauseExecutionsByQuery
      parameters:
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[timeRange][EQUALS]=PT168H`, `filters[scope][EQUALS]=USER`, `filters[state][IN]=FAILED,CANCELLED`, `filters[labels][NOT_EQUALS][foo]=bar`, `filters[namespace][CONTAINS]=test`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '400':
          description: Validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: pauseExecutionsByQuery 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/replay/by-ids:
    post:
      tags:
      - Executions
      summary: Create new executions from old ones asynchronously. Keep the flow revision
      operationId: replayExecutionsByIds
      parameters:
      - name: latestRevision
        in: query
        description: If latest revision should be used
        explode: false
        schema:
          type: boolean
          nullable: true
          default: false
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The list of executions id
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '400':
          description: Validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: replayExecutionsByIds 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/replay/by-query:
    post:
      tags:
      - Executions
      summary: Create new executions from old ones filter by query parameters asynchronously. Keep the flow revision
      operationId: replayExecutionsByQuery
      parameters:
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[timeRange][EQUALS]=PT168H`, `filters[scope][EQUALS]=USER`, `filters[state][IN]=FAILED,CANCELLED`, `filters[labels][NOT_EQUALS][foo]=bar`, `filters[namespace][CONTAINS]=test`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: latestRevision
        in: query
        description: If latest revision should be used
        explode: false
        schema:
          type: boolean
          nullable: true
          default: false
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '400':
          description: Validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: replayExecutionsByQuery 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/restart/by-ids:
    post:
      tags:
      - Executions
      summary: Restart a list of executions asynchronously
      operationId: restartExecutionsByIds
      parameters:
      - name: latestRevision
        in: query
        description: If latest revision should be used
        explode: false
        schema:
          type: boolean
          nullable: true
          default: false
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The list of executions id
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '400':
          description: Validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: restartExecutionsByIds 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/restart/by-query:
    post:
      tags:
      - Executions
      summary: Restart executions filter by query parameters asynchronously
      operationId: restartExecutionsByQuery
      parameters:
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[timeRange][EQUALS]=PT168H`, `filters[scope][EQUALS]=USER`, `filters[state][IN]=FAILED,CANCELLED`, `filters[labels][NOT_EQUALS][foo]=bar`, `filters[namespace][CONTAINS]=test`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: latestRevision
        in: query
        description: If latest revision should be used
        explode: false
        schema:
          type: boolean
          nullable: true
          default: false
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '400':
          description: Validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: restartExecutionsByQuery 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/resume/by-ids:
    post:
      tags:
      - Executions
      summary: Resume a list of paused executions asynchronously
      operationId: resumeExecutionsByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The list of executions id
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '400':
          description: Validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: resumeExecutionsByIds 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/resume/by-query:
    post:
      tags:
      - Executions
      summary: Resume executions filter by query parameters asynchronously
      operationId: resumeExecutionsByQuery
      parameters:
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[timeRange][EQUALS]=PT168H`, `filters[scope][EQUALS]=USER`, `filters[state][IN]=FAILED,CANCELLED`, `filters[labels][NOT_EQUALS][foo]=bar`, `filters[namespace][CONTAINS]=test`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '400':
          description: Validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: resumeExecutionsByQuery 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/search:
    get:
      tags:
      - Executions
      summary: Search for executions
      operationId: searchExecutions
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
        examples:
          Sort by start date in ascending order:
            value: state.startDate:asc
          Sort by namespace in descending order:
            value: namespace:desc
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[timeRange][EQUALS]=PT168H`, `filters[scope][EQUALS]=USER`, `filters[state][IN]=FAILED,CANCELLED`, `filters[labels][NOT_EQUALS][foo]=bar`, `filters[namespace][CONTAINS]=test`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: dateFilter
        in: query
        description: Which execution date field the time interval is applied to
        explode: false
        schema:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ExecutionRepositoryInterface.DateFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchExecutions 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_ApiLightExecution_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/unqueue/by-ids:
    post:
      tags:
      - Executions
      summary: Unqueue a list of executions asynchronously
      operationId: unqueueExecutionsByIds
      parameters:
      - name: state
        in: query
        description: The new state of the unqueued executions
        required: true
        explode: false
        schema:
          $ref: '#/components/schemas/State.Type'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The list of executions id
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '400':
          description: Validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: unqueueExecutionsByIds 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/unqueue/by-query:
    post:
      tags:
      - Executions
      summary: Unqueue executions filter by query parameters asynchronously
      operationId: unqueueExecutionsByQuery
      parameters:
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[timeRange][EQUALS]=PT168H`, `filters[scope][EQUALS]=USER`, `filters[state][IN]=FAILED,CANCELLED`, `filters[labels][NOT_EQUALS][foo]=bar`, `filters[namespace][CONTAINS]=test`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: newState
        in: query
        description: The new state of the unqueued executions
        explode: false
        schema:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/State.Type'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '400':
          description: Validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: unqueueExecutionsByQuery 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/webhook/{namespace}/{id}/{key}:
    get:
      tags:
      - Executions
      summary: Trigger a new execution by GET webhook trigger
      operationId: triggerExecutionByGetWebhook
      parameters:
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: key
        in: path
        description: The webhook trigger uid
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Executions
      summary: Trigger a new execution by PUT webhook trigger
      operationId: triggerExecutionByPutWebhook
      parameters:
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: key
        in: path
        description: The webhook trigger uid
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: 'The webhook payload, of any content type. What the flow sees of it depends on the `fetchType` of the trigger: `trigger.body` by default, `trigger.uri` when the trigger stores it. A `multipart/form-data` payload is handled by a dedicated route: its file parts are stored in Kestra''s internal storage and reach the flow as `trigger.parts`, its other parts as `trigger.formFields`.'
        content:
          '*/*':
            schema:
              type: string
          multipart/form-data:
            schema:
              type: object
              description: 'A form whose part names are chosen by the caller: each file part is exposed on `trigger.parts` with the URI of its content in Kestra''s internal storage, each other part on `trigger.formFields`.'
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - Executions
      summary: Trigger a new execution by POST webhook trigger
      operationId: triggerExecutionByPostWebhook
      parameters:
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: key
        in: path
        description: The webhook trigger uid
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: 'The webhook payload, of any content type. What the flow sees of it depends on the `fetchType` of the trigger: `trigger.body` by default, `trigger.uri` when the trigger stores it. A `multipart/form-data` payload is handled by a dedicated route: its file parts are stored in Kestra''s internal storage and reach the flow as `trigger.parts`, its other parts as `trigger.formFields`.'
        content:
          '*/*':
            schema:
              type: string
          multipart/form-data:
            schema:
              type: object
              description: 'A form whose part names are chosen by the caller: each file part is exposed on `trigger.parts` with the URI of its content in Kestra''s internal storage, each other part on `trigger.formFields`.'
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/webhook/{namespace}/{id}/{key}/{path}:
    get:
      tags:
      - Executions
      summary: Trigger a new execution by GET webhook trigger
      operationId: triggerExecutionByGetWebhookWithPath
      parameters:
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: key
        in: path
        description: The webhook trigger uid
        required: true
        schema:
          type: string
      - name: path
        in: path
        description: Optional additional path segments
        required: true
        schema:
          type: string
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Executions
      summary: Trigger a new execution by PUT webhook trigger
      operationId: triggerExecutionByPutWebhookWithPath
      parameters:
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: key
        in: path
        description: The webhook trigger uid
        required: true
        schema:
          type: string
      - name: path
        in: path
        description: Optional additional path segments
        required: true
        schema:
          type: string
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: 'The webhook payload, of any content type. What the flow sees of it depends on the `fetchType` of the trigger: `trigger.body` by default, `trigger.uri` when the trigger stores it. A `multipart/form-data` payload is handled by a dedicated route: its file parts are stored in Kestra''s internal storage and reach the flow as `trigger.parts`, its other parts as `trigger.formFields`.'
        content:
          '*/*':
            schema:
              type: string
          multipart/form-data:
            schema:
              type: object
              description: 'A form whose part names are chosen by the caller: each file part is exposed on `trigger.parts` with the URI of its content in Kestra''s internal storage, each other part on `trigger.formFields`.'
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - Executions
      summary: Trigger a new execution by POST webhook trigger
      operationId: triggerExecutionByPostWebhookWithPath
      parameters:
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: key
        in: path
        description: The webhook trigger uid
        required: true
        schema:
          type: string
      - name: path
        in: path
        description: Optional additional path segments
        required: true
        schema:
          type: string
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: 'The webhook payload, of any content type. What the flow sees of it depends on the `fetchType` of the trigger: `trigger.body` by default, `trigger.uri` when the trigger stores it. A `multipart/form-data` payload is handled by a dedicated route: its file parts are stored in Kestra''s internal storage and reach the flow as `trigger.parts`, its other parts as `trigger.formFields`.'
        content:
          '*/*':
            schema:
              type: string
          multipart/form-data:
            schema:
              type: object
              description: 'A form whose part names are chosen by the caller: each file part is exposed on `trigger.parts` with the URI of its content in Kestra''s internal storage, each other part on `trigger.formFields`.'
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/{executionId}:
    get:
      tags:
      - Executions
      summary: Get an execution
      operationId: getExecution
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getExecution 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiExecution'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Executions
      summary: Delete an execution
      operationId: deleteExecution
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: deleteLogs
        in: query
        description: Whether to delete execution logs
        required: false
        explode: false
        schema:
          type: boolean
          default: true
      - name: deleteMetrics
        in: query
        description: Whether to delete execution metrics
        required: false
        explode: false
        schema:
          type: boolean
          default: true
      - name: deleteStorage
        in: query
        description: Whether to delete execution files in the internal storage
        required: false
        explode: false
        schema:
          type: boolean
          default: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: On success
        '200':
          description: deleteExecution 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/{executionId}/actions/change-status:
    post:
      tags:
      - Executions
      summary: Change the state of an execution
      operationId: updateExecutionStatus
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: status
        in: query
        description: The new state of the execution
        required: true
        explode: false
        schema:
          $ref: '#/components/schemas/State.Type'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Execution'
        '409':
          description: if the execution state cannot be changed
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/{executionId}/actions/eval:
    post:
      tags:
      - Executions
      summary: Evaluate a variable expression for this execution
      operationId: evalExpression
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The Pebble expression that should be evaluated
        content:
          text/plain:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: evalExpression 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionController.EvalResult'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/{executionId}/actions/eval/{taskRunId}:
    post:
      tags:
      - Executions
      summary: Evaluate a variable expression for this taskrun
      operationId: evalTaskRunExpression
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: taskRunId
        in: path
        description: The taskrun id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The Pebble expression that should be evaluated
        content:
          text/plain:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: evalTaskRunExpression 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionController.EvalResult'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/{executionId}/actions/force-run:
    post:
      tags:
      - Executions
      summary: Force run an execution
      operationId: forceRunExecution
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Execution'
        '409':
          description: if the execution cannot be force-run
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/{executionId}/actions/kill:
    delete:
      tags:
      - Executions
      summary: Kill an execution
      operationId: killExecution
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: isOnKillCascade
        in: query
        description: Specifies whether killing the execution also kill all subflow executions.
        explode: false
        schema:
          type: boolean
          default: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: On success
          content:
            text/json:
              schema:
                $ref: '#/components/schemas/Execution'
        '409':
          description: if the executions is already finished
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '404':
          description: if the executions is not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/{executionId}/actions/labels:
    post:
      tags:
      - Executions
      summary: Add or update labels of a terminated execution
      operationId: setLabelsOnTerminatedExecution
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The labels to add to the execution
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/Label'
        required: true
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Execution'
        '404':
          description: If the execution cannot be found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '400':
          description: If the execution is not terminated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '409':
          description: If labels cannot be applied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/{executionId}/actions/pause:
    post:
      tags:
      - Executions
      summary: Pause a running execution.
      operationId: pauseExecution
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Execution'
        '409':
          description: if the executions is not running
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/{executionId}/actions/replay:
    post:
      tags:
      - Executions
      summary: Create a new execution from an old one and start it from a specified task run id
      operationId: replayExecution
      parameters:
      - name: executionId
        in: path
        description: the original execution id to clone
        required: true
        schema:
          type: string
      - name: taskRunId
        in: query
        description: The taskrun id
        explode: false
        schema:
          type: string
          nullable: true
      - name: revision
        in: query
        description: The flow revision to use for new execution
        explode: false
        schema:
          type: integer
          format: int32
          nullable: true
      - name: breakpoints
        in: query
        description: Set a list of breakpoints at specific tasks 'id.value', separated by a coma.
        explode: false
        schema:
          type: string
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Execution'
        '409':
          description: if the execution cannot be replayed
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/{executionId}/actions/replay-with-inputs:
    post:
      tags:
      - Executions
      summary: Create a new execution from an old one and start it from a specified task run id
      operationId: replayExecutionWithinputs
      parameters:
      - name: executionId
        in: path
        description: the original execution id to clone
        required: true
        schema:
          type: string
      - name: taskRunId
        in: query
        description: The taskrun id
        explode: false
        schema:
          type: string
          nullable: true
      - name: revision
        in: query
        description: The flow revision to use for new execution
        explode: false
        schema:
          type: integer
          format: int32
          nullable: true
      - name: breakpoints
        in: query
        description: Set a list of breakpoints at specific tasks 'id.value', separated by a coma.
        explode: false
        schema:
          type: string
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The inputs (multipart map)
        content:
          multipart/form-data:
            schema:
              type: array
              additionalProperties: true
              items:
                type: string
                format: binary
        required: true
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Execution'
        '409':
          description: if the execution cannot be replayed
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
      x-sdk-customization:
        x-multipart: 'true'
  /api/v1/{tenant}/executions/{executionId}/actions/restart:
    post:
      tags:
      - Executions
      summary: Restart a new execution from an old one
      operationId: restartExecution
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: revision
        in: query
        description: The flow revision to use for new execution
        explode: false
        schema:
          type: integer
          format: int32
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Execution'
        '409':
          description: if the execution cannot be restarted
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/{executionId}/actions/resume:
    post:
      tags:
      - Executions
      summary: Resume a paused execution.
      operationId: resumeExecution
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The inputs
        content:
          multipart/form-data:
            schema:
              type: array
              items:
                type: string
                format: binary
        required: true
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Execution'
        '409':
          description: if the executions is not paused
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
      x-sdk-customization:
        x-multipart: 'true'
  /api/v1/{tenant}/executions/{executionId}/actions/resume-from-breakpoint:
    post:
      tags:
      - Executions
      summary: Resume an execution from a breakpoint (in the 'BREAKPOINT' state).
      operationId: resumeExecutionFromBreakpoint
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: breakpoints
        in: query
        description: '"Set a list of breakpoints at specific tasks ''id.value'', separated by a coma.'
        explode: false
        schema:
          type: string
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Execution'
        '409':
          description: If the executions is not in the 'BREAKPOINT' state or has no breakpoint
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/{executionId}/actions/resume/validate:
    post:
      tags:
      - Executions
      summary: Validate inputs to resume a paused execution.
      operationId: validateResumeExecutionInputs
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The inputs
        content:
          multipart/form-data:
            schema:
              type: array
              items:
                type: string
                format: binary
        required: true
      responses:
        '204':
          description: On success
        '409':
          description: if the executions is not paused
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: validateResumeExecutionInputs 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ExecutionController.ApiValidateExecutionInputsResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/{executionId}/actions/state:
    post:
      tags:
      - Executions
      summary: Change state for a taskrun in an execution
      operationId: updateTaskRunState
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: the taskRun id and state to apply
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExecutionController.StateRequest'
        required: true
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Execution'
        '409':
          description: if the task run state cannot be changed
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/{executionId}/actions/unqueue:
    post:
      tags:
      - Executions
      summary: Unqueue an execution
      operationId: unqueueExecution
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: state
        in: query
        description: The new state of the execution
        required: true
        explode: false
        schema:
          $ref: '#/components/schemas/State.Type'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Execution'
        '409':
          description: if the execution cannot be unqueued
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/{executionId}/file:
    get:
      tags:
      - Executions
      summary: Download file for an execution
      operationId: downloadFileFromExecution
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: path
        in: query
        description: The internal storage uri
        required: true
        explode: false
        schema:
          type: string
          format: uri
      - name: format
        in: query
        description: The requested file format; RAW returns the raw bytes (default), JSONL converts Ion records to JSON Lines
        explode: false
        schema:
          $ref: '#/components/schemas/FileFormat'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: downloadFileFromExecution 200 response
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
            application/x-ndjson:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/{executionId}/file/metas:
    get:
      tags:
      - Executions
      summary: Get file meta information for an execution
      operationId: getFileMetadatasFromExecution
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: path
        in: query
        description: The internal storage uri
        required: true
        explode: false
        schema:
          type: string
          format: uri
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getFileMetadatasFromExecution 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileMetas'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/{executionId}/file/preview:
    get:
      tags:
      - Executions
      summary: Get file preview for an execution
      operationId: previewFileFromExecution
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: path
        in: query
        description: The internal storage uri
        required: true
        explode: false
        schema:
          type: string
          format: uri
      - name: maxRows
        in: query
        description: The max row returns
        explode: false
        schema:
          type: integer
          format: int32
          nullable: true
      - name: encoding
        in: query
        description: The file encoding as Java charset name. Defaults to UTF-8
        explode: false
        schema:
          type: string
          default: UTF-8
        example: ISO-8859-1
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: previewFileFromExecution 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/{executionId}/flow:
    get:
      tags:
      - Executions
      summary: Get flow information's for an execution
      operationId: getFlowFromExecutionById
      parameters:
      - name: executionId
        in: path
        description: The execution that you want flow information
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getFlowFromExecutionById 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowForExecution'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/{executionId}/follow:
    get:
      tags:
      - Executions
      summary: Follow an execution
      operationId: followExecution
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: followExecution 200 response
          content:
            text/event-stream:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Event_Execution_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
      x-sdk-customization:
        x-replace-follow-execution: 'true'
        x-skipped: 'true'
  /api/v1/{tenant}/executions/{executionId}/follow-dependencies:
    get:
      tags:
      - Executions
      summary: Follow all execution dependencies executions
      operationId: followDependenciesExecutions
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: destinationOnly
        in: query
        description: If true, list only destination dependencies, otherwise list also source dependencies
        explode: false
        schema:
          type: boolean
          default: false
      - name: expandAll
        in: query
        description: If true, expand all dependencies recursively
        explode: false
        schema:
          type: boolean
          default: false
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: followDependenciesExecutions 200 response
          content:
            text/event-stream:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Event_ExecutionStatusEvent_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
      x-sdk-customization:
        x-replace-follow-dependencies-execution: 'true'
        x-skipped: 'true'
  /api/v1/{tenant}/executions/{executionId}/graph:
    get:
      tags:
      - Executions
      summary: Generate a graph for an execution
      operationId: getExecutionFlowGraph
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: subflows
        in: query
        description: The subflow tasks to display
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getExecutionFlowGraph 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowGraph'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/executions/{namespace}/{id}:
    post:
      tags:
      - Executions
      summary: Create a new execution for a flow
      operationId: createExecution
      parameters:
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: labels
        in: query
        description: The labels as a list of 'key:value'
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: wait
        in: query
        description: If the server will wait the end of the execution
        explode: false
        schema:
          type: boolean
          default: false
      - name: revision
        in: query
        description: The flow revision or latest if null
        explode: false
        schema:
          type: integer
          format: int32
          nullable: true
      - name: scheduleDate
        in: query
        description: Schedule the flow on a specific date
        explode: false
        schema:
          type: string
          format: date-time
          nullable: true
      - name: breakpoints
        in: query
        description: Set a list of breakpoints at specific tasks 'id.value', separated by a coma.
        explode: false
        schema:
          type: string
          nullable: true
      - name: kind
        in: query
        description: Specific execution kind
        explode: false
        schema:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ExecutionKind'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The inputs
        content:
          multipart/form-data:
            schema:
              type: array
              items:
                type: string
                format: binary
      responses:
        '409':
          description: if the flow is disabled
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: On execution created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionController.ExecutionResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
      x-sdk-customization:
        x-multipart: 'true'
  /api/v1/{tenant}/executions/{namespace}/{id}/validate:
    post:
      tags:
      - Executions
      summary: Validate the creation of a new execution for a flow
      operationId: validateNewExecutionInputs
      parameters:
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: labels
        in: query
        description: The labels as a list of 'key:value'
        required: true
        schema:
          type: array
          items:
            type: string
      - name: revision
        in: query
        description: The flow revision or latest if null
        explode: false
        schema:
          type: integer
          format: int32
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The inputs
        content:
          multipart/form-data:
            schema:
              type: array
              items:
                type: string
                format: binary
        required: true
      responses:
        '409':
          description: if the flow is disabled
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: validateNewExecutionInputs 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ExecutionController.ApiValidateExecutionInputsResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/expressions/render:
    post:
      tags:
      - Expressions
      summary: Render Pebble expressions for display
      description: 'Renders a list of Pebble expressions for display purposes only, using a restricted engine: secret() is masked as [secret: KEY], env() is kept raw, only a safe allowlist of pure functions is invoked, and anything else is kept raw. Resolution is all-or-nothing per expression: an expression that references anything unresolvable is returned unchanged. Provide an executionId to resolve against an execution context, or a flow source to resolve against a flow context; otherwise only globals are available.'
      operationId: renderExpressions
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExpressionController.RenderExpressionRequest'
        required: true
      responses:
        '200':
          description: renderExpressions 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpressionController.RenderedExpressions'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows:
    post:
      tags:
      - Flows
      summary: Create a flow from yaml source
      operationId: createFlow
      parameters:
      - name: draft
        in: query
        description: Save the flow as a draft. Drafts are not picked up by webhooks, schedules or subflows and are not validated for constraint violations.
        explode: false
        schema:
          type: boolean
          default: false
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The flow source code
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: createFlow 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowWithSource'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/bulk:
    post:
      tags:
      - Flows
      summary: Update from multiples yaml sources
      description: |-
        All flow will be created / updated for this namespace.
        Flow that already created but not in `flows` will be deleted if the query delete is `true`
      operationId: bulkUpdateFlows
      parameters:
      - name: delete
        in: query
        description: If missing flow should be deleted
        explode: false
        schema:
          type: boolean
          default: true
      - name: namespace
        in: query
        description: The namespace where to update flows
        explode: false
        schema:
          type: string
          nullable: true
      - name: allowNamespaceChild
        in: query
        description: If namespace child should are allowed to be updated
        explode: false
        schema:
          type: boolean
          default: false
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: A list of flows source code split with "---"
        content:
          application/x-yaml:
            schema:
              type: string
              nullable: true
      responses:
        '200':
          description: bulkUpdateFlows 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FlowInterface'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/delete/by-ids:
    delete:
      tags:
      - Flows
      summary: Delete flows by their IDs.
      operationId: deleteFlowsByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: A list of tuple flow ID and namespace as flow identifiers
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/IdWithNamespace'
        required: true
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/delete/by-query:
    delete:
      tags:
      - Flows
      summary: Delete flows returned by the query parameters.
      operationId: deleteFlowsByQuery
      parameters:
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[labels][NOT_EQUALS][foo]=bar`, `filters[namespace][CONTAINS]=test`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/deprecated:
    get:
      tags:
      - Flows
      summary: List flows containing deprecated tasks
      operationId: listDeprecated
      parameters:
      - name: namespace
        in: query
        description: A namespace filter prefix
        explode: false
        schema:
          type: string
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listDeprecated 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FlowController.FlowWithDeprecatedTasks'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/disable/by-ids:
    post:
      tags:
      - Flows
      summary: Disable flows by their IDs.
      operationId: disableFlowsByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: A list of tuple flow ID and namespace as flow identifiers
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/IdWithNamespace'
        required: true
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/disable/by-query:
    post:
      tags:
      - Flows
      summary: Disable flows returned by the query parameters.
      operationId: disableFlowsByQuery
      parameters:
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[labels][NOT_EQUALS][foo]=bar`, `filters[namespace][CONTAINS]=test`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/distinct-namespaces:
    get:
      tags:
      - Flows
      summary: List all distinct namespaces
      operationId: listDistinctNamespaces
      parameters:
      - name: q
        in: query
        description: A string filter
        explode: false
        schema:
          type: string
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listDistinctNamespaces 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/enable/by-ids:
    post:
      tags:
      - Flows
      summary: Enable flows by their IDs.
      operationId: enableFlowsByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: A list of tuple flow ID and namespace as flow identifiers
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/IdWithNamespace'
        required: true
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/enable/by-query:
    post:
      tags:
      - Flows
      summary: Enable flows returned by the query parameters.
      operationId: enableFlowsByQuery
      parameters:
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[labels][NOT_EQUALS][foo]=bar`, `filters[namespace][CONTAINS]=test`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/export/by-ids:
    post:
      tags:
      - Flows
      summary: Export flows as a ZIP archive of yaml sources.
      operationId: exportFlowsByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: A list of tuple flow ID and namespace as flow identifiers
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/IdWithNamespace'
        required: true
      responses:
        '200':
          description: exportFlowsByIds 200 response
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/export/by-query:
    get:
      tags:
      - Flows
      summary: Export flows as a ZIP archive of yaml sources.
      operationId: exportFlowsByQuery
      parameters:
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[labels][NOT_EQUALS][foo]=bar`, `filters[namespace][CONTAINS]=test`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: exportFlowsByQuery 200 response
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/export/by-query/csv:
    get:
      tags:
      - Flows
      summary: Export all flows as a streamed CSV file
      operationId: exportFlows
      parameters:
      - name: filters
        in: query
        description: A list of filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: exportFlows 200 response
          content:
            text/csv:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/expressions:
    post:
      tags:
      - Flows
      summary: Get available Pebble expressions for a flow
      description: Returns a categorized map of expression strings available for autocompletion in the No-Code editor.
      operationId: expressions
      parameters:
      - name: taskId
        in: query
        description: Optional task ID to scope outputs to prior tasks
        explode: false
        schema:
          type: string
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The flow source code
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: Categorized expressions map
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpressionContext'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/graph:
    post:
      tags:
      - Flows
      summary: Generate a graph for a flow source
      operationId: generateFlowGraphFromSource
      parameters:
      - name: subflows
        in: query
        description: The subflow tasks to display
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The flow source code
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: generateFlowGraphFromSource 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowGraph'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/hashes/by-ids:
    post:
      tags:
      - Flows
      summary: Batch-compute source hashes for flows by id (drift detection)
      operationId: flowHashesByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/IdWithNamespace'
        required: true
      responses:
        '200':
          description: flowHashesByIds 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiFlowHashesResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/import:
    post:
      tags:
      - Flows
      summary: |2
            Import flows as a ZIP archive of yaml sources or a multi-objects YAML file.
            When sending a Yaml that contains one or more flows, a list of index is returned.
            When sending a ZIP archive, a list of files that couldn't be imported is returned.
      operationId: importFlows
      parameters:
      - name: failOnError
        in: query
        description: If should fail on invalid flows
        explode: false
        schema:
          type: boolean
          default: false
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                fileUpload:
                  type: string
                  description: The file to import, can be a ZIP archive or a multi-objects YAML file
                  format: binary
            encoding:
              fileUpload:
                contentType: application/octet-stream
                explode: false
        required: true
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/policies/preview:
    post:
      tags:
      - Flows
      summary: Preview the governance policy effects (mutations + violations) on a flow source
      operationId: previewPolicies
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyPreviewRequest'
        required: true
      responses:
        '200':
          description: previewPolicies 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyPreviewResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/promote/by-ids:
    post:
      tags:
      - Promote
      summary: Promote flows by their IDs to one or more SERVER-mode targets
      operationId: promoteByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiPromote.BatchRequest'
        required: true
      responses:
        '200':
          description: promoteByIds 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPromote.BatchResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/search:
    get:
      tags:
      - Flows
      summary: Search for flows
      operationId: searchFlows
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
        examples:
          Sort by namespace in ascending order:
            value: namespace:asc
          Sort by flow ID in descending order:
            value: id:desc
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[labels][NOT_EQUALS][foo]=bar`, `filters[namespace][CONTAINS]=test`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchFlows 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_Flow_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/source:
    get:
      tags:
      - Flows
      summary: Search for flows source code
      operationId: searchFlowsBySourceCode
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: q
        in: query
        description: A string filter
        explode: false
        schema:
          type: string
          nullable: true
      - name: namespace
        in: query
        description: A namespace filter prefix
        explode: false
        schema:
          type: string
          nullable: true
      - name: caseSensitive
        in: query
        description: Whether the query must match with exact case
        explode: false
        schema:
          type: boolean
          default: false
      - name: wholeWord
        in: query
        description: Whether the query must match on word boundaries only
        explode: false
        schema:
          type: boolean
          default: false
      - name: regex
        in: query
        description: Whether the query is a regular expression rather than a literal string
        explode: false
        schema:
          type: boolean
          default: false
      - name: scope
        in: query
        description: Restricts matches to a top-level section of the flow YAML
        explode: false
        schema:
          $ref: '#/components/schemas/SourceSearchScope'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchFlowsBySourceCode 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_SourceSearchResult_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/source/replace/apply:
    post:
      tags:
      - Flows
      summary: Apply a Source Search replace-all operation
      description: Replaces every match in the given flows and persists the new revisions. Flows the caller is not allowed to edit are skipped.
      operationId: applyReplaceBySourceCode
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The search query, replacement and target flows
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SourceSearchReplaceApplyRequest'
        required: true
      responses:
        '200':
          description: applyReplaceBySourceCode 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SourceSearchReplaceApplyResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/source/replace/line:
    post:
      tags:
      - Flows
      summary: Apply a Source Search replace on a single match line
      description: Replaces the matches on one line of one flow and persists the new revision. Returns the flow as skipped if it is not editable or fails validation.
      operationId: replaceLineBySourceCode
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The search query, replacement and target match line
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SourceSearchReplaceLineRequest'
        required: true
      responses:
        '200':
          description: replaceLineBySourceCode 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SourceSearchReplaceApplyResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/source/replace/preview:
    post:
      tags:
      - Flows
      summary: Preview a Source Search replace-all operation
      description: Computes the matched lines and their proposed replacement for every matching flow, without persisting anything.
      operationId: previewReplaceBySourceCode
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The search query and replacement
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SourceSearchReplacePreviewRequest'
        required: true
      responses:
        '200':
          description: previewReplaceBySourceCode 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SourceSearchReplacePreviewResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/validate:
    post:
      tags:
      - Flows
      summary: Validate a list of flows
      operationId: validateFlows
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: Flows as YAML string or multipart files
        content:
          application/x-yaml:
            schema:
              type: string
          multipart/form-data:
            schema:
              type: object
        required: true
      responses:
        '200':
          description: validateFlows 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValidateConstraintViolation'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/validate/task:
    post:
      tags:
      - Flows
      summary: Validate a task
      operationId: validateTask
      parameters:
      - name: section
        in: query
        description: 'The flow section the definition belongs to (triggers, or any task-holding section: tasks, errors, finally, afterExecution)'
        required: true
        explode: false
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: A task definition that can be from tasks or triggers
        content:
          application/x-yaml:
            schema:
              type: object
          application/json:
            schema:
              type: object
            example: null
        required: true
      responses:
        '200':
          description: validateTask 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateConstraintViolation'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/validate/trigger:
    post:
      tags:
      - Flows
      summary: Validate trigger
      operationId: validateTrigger
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The trigger
        content:
          application/json:
            schema:
              type: object
        required: true
      responses:
        '200':
          description: validateTrigger 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateConstraintViolation'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/{namespace}:
    get:
      tags:
      - Flows
      summary: Retrieve all flows from a given namespace
      operationId: listFlowsByNamespace
      parameters:
      - name: namespace
        in: path
        description: Namespace to filter flows
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listFlowsByNamespace 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Flow'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - Flows
      summary: Update a complete namespace from yaml source
      description: |-
        All flow will be created / updated for this namespace.
        Flow that already created but not in `flows` will be deleted if the query delete is `true`
      operationId: updateFlowsInNamespace
      parameters:
      - name: delete
        in: query
        description: If missing flows should be deleted
        explode: false
        schema:
          type: boolean
          default: true
      - name: override
        in: query
        description: If namespace of all provided flows should be overridden
        explode: false
        schema:
          type: boolean
          default: false
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: A list of flows source code
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: updateFlowsInNamespace 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FlowInterface'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/{namespace}/{id}:
    get:
      tags:
      - Flows
      summary: Get a flow
      operationId: getFlow
      parameters:
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: source
        in: query
        description: Include the source code
        explode: false
        schema:
          type: boolean
          default: false
      - name: revision
        in: query
        description: Get latest revision by default
        explode: false
        schema:
          type: integer
          format: int32
          nullable: true
      - name: allowDeleted
        in: query
        description: Get flow even if deleted
        explode: false
        schema:
          type: boolean
          default: false
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowWithSource'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Flows
      summary: Update a flow
      operationId: updateFlow
      parameters:
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: draft
        in: query
        description: Save the flow as a draft. Drafts are not picked up by webhooks, schedules or subflows and are not validated for constraint violations.
        explode: false
        schema:
          type: boolean
          default: false
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The flow source code
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowWithSource'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Flows
      summary: Delete a flow
      operationId: deleteFlow
      parameters:
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: On success
        '200':
          description: deleteFlow 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/{namespace}/{id}/dependencies:
    get:
      tags:
      - Flows
      summary: Get flow dependencies
      operationId: getFlowDependencies
      parameters:
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: destinationOnly
        in: query
        description: If true, list only destination dependencies, otherwise list also source dependencies
        explode: false
        schema:
          type: boolean
          default: false
      - name: expandAll
        in: query
        description: If true, expand all dependencies recursively
        explode: false
        schema:
          type: boolean
          default: false
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getFlowDependencies 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowTopologyGraph'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/{namespace}/{id}/graph:
    get:
      tags:
      - Flows
      summary: Generate a graph for a flow
      operationId: generateFlowGraph
      parameters:
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: revision
        in: query
        description: The flow revision
        explode: false
        schema:
          type: integer
          format: int32
          nullable: true
      - name: subflows
        in: query
        description: The subflow tasks to display
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Return a FlowGraph object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowGraph'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/{namespace}/{id}/promote:
    post:
      tags:
      - Promote
      summary: Promote a flow to one or more SERVER-mode targets
      operationId: promote
      parameters:
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiPromote.Request'
        required: true
      responses:
        '422':
          description: The flow's latest revision is a draft, which cannot be promoted
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: promote 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPromote.Response'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/{namespace}/{id}/promotions:
    get:
      tags:
      - Promote
      summary: List a flow's promotion history
      operationId: listPromotions
      parameters:
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listPromotions 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_ApiPromotionResponse_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - Promote
      summary: Report a CLIENT-mode promote performed by the browser
      operationId: reportPromote
      parameters:
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiPromoteReportRequest'
        required: true
      responses:
        '200':
          description: reportPromote 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/{namespace}/{id}/promotions/{auditId}/diff:
    get:
      tags:
      - Promote
      summary: Recompute the diff of a past promote from its audit record
      operationId: promoteDiff
      parameters:
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: auditId
        in: path
        description: The audit log id of the promote
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: promoteDiff 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPromoteDiffResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/{namespace}/{id}/revisions:
    get:
      tags:
      - Flows
      summary: Get revisions for a flow
      operationId: listFlowRevisions
      parameters:
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: allowDelete
        in: query
        explode: false
        schema:
          type: boolean
          default: false
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listFlowRevisions 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FlowWithSource'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Flows
      summary: Delete revisions for a flow
      operationId: deleteRevisions
      parameters:
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: revisions
        in: query
        required: true
        explode: false
        schema:
          minItems: 1
          type: array
          items:
            minimum: 1
            type: integer
            format: int32
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteRevisions 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/flows/{namespace}/{id}/tasks/{taskId}:
    get:
      tags:
      - Flows
      summary: Get a flow task
      operationId: getTaskFromFlow
      parameters:
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The task id
        required: true
        schema:
          type: string
      - name: revision
        in: query
        description: The flow revision
        explode: false
        schema:
          type: integer
          format: int32
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getTaskFromFlow 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Task'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/groups:
    post:
      tags:
      - Groups
      summary: Create a group
      operationId: createGroup
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The group
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IAMGroupController.ApiCreateGroupRequest'
        required: true
      responses:
        '200':
          description: Group was created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMGroupController.ApiGroupDetail'
        '409':
          description: A group with the given name already exists
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/groups/autocomplete:
    post:
      tags:
      - Groups
      summary: List groups for autocomplete
      operationId: autocompleteGroups
      parameters:
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: Autocomplete request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiAutocomplete'
        required: true
      responses:
        '200':
          description: autocompleteGroups 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiGroupSummary'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/groups/ids:
    post:
      tags:
      - Groups
      summary: List groups by ids
      operationId: listGroupIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The ids that must be present on results
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiIds'
        required: true
      responses:
        '200':
          description: listGroupIds 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiGroupSummary'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/groups/search:
    get:
      tags:
      - Groups
      summary: Search for groups
      operationId: searchGroups
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchGroups 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_ApiGroupSummary_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/groups/{id}:
    get:
      tags:
      - Groups
      summary: Retrieve a group
      description: Retrieves details of a specific group by its ID within the current tenant.
      operationId: getGroup
      parameters:
      - name: id
        in: path
        description: The group id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Group details successfully retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMGroupController.ApiGroupDetail'
        '404':
          description: Group not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Groups
      summary: Update a group
      operationId: updateGroup
      parameters:
      - name: id
        in: path
        description: The group id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The group
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IAMGroupController.ApiUpdateGroupRequest'
        required: true
      responses:
        '200':
          description: Group was updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMGroupController.ApiGroupDetail'
        '404':
          description: Group not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '409':
          description: A group with the given name already exists
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Groups
      summary: Delete a group
      operationId: deleteGroup
      parameters:
      - name: id
        in: path
        description: The group id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Group was deleted successfully
        '404':
          description: Group not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/groups/{id}/members:
    get:
      tags:
      - Groups
      summary: Search for users in a group
      operationId: searchGroupMembers
      parameters:
      - name: id
        in: path
        description: The group id
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchGroupMembers 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_IAMGroupController.ApiGroupMember_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/groups/{id}/members/membership/{userId}:
    put:
      tags:
      - Groups
      summary: Update a user's membership type in a group
      description: Allows a group owner or an authorized user to change the role of a user within a group to OWNER or MEMBER.
      operationId: setUserMembershipForGroup
      parameters:
      - name: id
        in: path
        description: The ID of the group
        required: true
        schema:
          type: string
      - name: userId
        in: path
        description: The ID of the user whose membership is being updated
        required: true
        schema:
          type: string
      - name: membership
        in: query
        description: The new membership type to assign to the user.
        required: true
        explode: false
        schema:
          $ref: '#/components/schemas/GroupIdentifier.Membership'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Membership type successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMGroupController.ApiGroupMember'
        '404':
          description: User or group not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '409':
          description: User is not a member of the group
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/groups/{id}/members/{userId}:
    put:
      tags:
      - Groups
      summary: Add a user to a group
      description: Adds the specified user, by id or username, to the given group. The user must already have access to the tenant.
      operationId: addUserToGroup
      parameters:
      - name: id
        in: path
        description: The ID of the group
        required: true
        schema:
          type: string
      - name: userId
        in: path
        description: The ID or username of the user to add to the group
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: User was successfully added to the group
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMGroupController.ApiGroupMember'
        '404':
          description: Group or user not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '409':
          description: User is already a member of the group
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Groups
      summary: Remove a user from a group
      description: Removes the specified user from the given group. If the user has no other group bindings within the tenant, their access to the tenant will also be revoked.
      operationId: deleteUserFromGroup
      parameters:
      - name: id
        in: path
        description: The ID of the group
        required: true
        schema:
          type: string
      - name: userId
        in: path
        description: The ID of the user to remove from the group
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: User was successfully removed from the group
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMGroupController.ApiGroupMember'
        '404':
          description: Group or user not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '409':
          description: User is not a member of the group
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/integrations/{integration}/scim/v2/Groups:
    get:
      tags:
      - SCIM-Groups
      description: Find by a combination of query parameters
      operationId: queryGroups
      parameters:
      - name: attributes
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: excludedAttributes
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: filter
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: sortBy
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: sortOrder
        in: query
        explode: false
        schema:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/SortOrder'
      - name: startIndex
        in: query
        explode: false
        schema:
          type: integer
          format: int32
          nullable: true
      - name: count
        in: query
        explode: false
        schema:
          type: integer
          format: int32
          nullable: true
      - name: integration
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '400':
          description: Bad Request
        '404':
          description: Not found
        '500':
          description: Internal Server Error
        '501':
          description: Not Implemented
        '200':
          description: OK response
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimResource'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - SCIM-Groups
      description: Create
      operationId: createSCIMResourceByIdGroups
      parameters:
      - name: attributes
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: excludedAttributes
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: integration
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/scim+json:
            schema:
              $ref: '#/components/schemas/ScimUser'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimResource'
        '400':
          description: Bad Request
        '409':
          description: Conflict
        '500':
          description: Internal Server Error
        '501':
          description: Not Implemented
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/integrations/{integration}/scim/v2/Groups/.search:
    post:
      tags:
      - SCIM-Groups
      description: Search
      operationId: findGroups
      parameters:
      - name: integration
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/scim+json:
            schema:
              $ref: '#/components/schemas/SearchRequest'
        required: true
      responses:
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
        '501':
          description: Not Implemented
        '200':
          description: OK response
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimResource'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/integrations/{integration}/scim/v2/Groups/{id}:
    get:
      tags:
      - SCIM-Groups
      description: Find by id
      operationId: getSCIMResourceByIdGroups
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: attributes
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: excludedAttributes
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: integration
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '400':
          description: Bad Request
        '404':
          description: Not found
        '500':
          description: Internal Server Error
        '501':
          description: Not Implemented
        '200':
          description: OK response
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimResource'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - SCIM-Groups
      description: Update
      operationId: updateGroups
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: attributes
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: excludedAttributes
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: integration
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/scim+json:
            schema:
              $ref: '#/components/schemas/ScimResource'
        required: true
      responses:
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
        '501':
          description: Not Implemented
        '200':
          description: OK response
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimResource'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - SCIM-Groups
      description: Delete from the backing store
      operationId: deleteGroups
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: integration
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '404':
          description: Not found
        '500':
          description: Internal Server Error
        '501':
          description: Not Implemented
      security:
      - bearerAuth: []
      - basicAuth: []
    patch:
      tags:
      - SCIM-Groups
      description: Patch a portion of the backing store
      operationId: patchGroups
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: attributes
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: excludedAttributes
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: integration
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/scim+json:
            schema:
              $ref: '#/components/schemas/PatchRequest'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '404':
          description: Not found
        '500':
          description: Internal Server Error
        '501':
          description: Not Implemented
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/integrations/{integration}/scim/v2/ResourceTypes:
    get:
      tags:
      - SCIM-Configuration
      description: Get All Resource Types
      operationId: getAllResourceTypes
      parameters:
      - name: integration
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK response
          content:
            application/scim+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ResourceType'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/integrations/{integration}/scim/v2/ResourceTypes/{name}:
    get:
      tags:
      - SCIM-Configuration
      description: Get Resource Type by URN
      operationId: getResourceType
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      - name: integration
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK response
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ResourceType'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/integrations/{integration}/scim/v2/Schemas:
    get:
      tags:
      - SCIM-Configuration
      description: Get All Schemas
      operationId: getAllSchemas
      parameters:
      - name: integration
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK response
          content:
            application/scim+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Schema'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/integrations/{integration}/scim/v2/Schemas/{uri}:
    get:
      tags:
      - SCIM-Configuration
      description: Get Schemas by URN
      operationId: getSchema
      parameters:
      - name: uri
        in: path
        required: true
        schema:
          type: string
      - name: integration
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK response
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/Schema'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/integrations/{integration}/scim/v2/ServiceProviderConfig:
    get:
      tags:
      - SCIM-Configuration
      description: Get Service Provider Configuration
      operationId: getServiceProviderConfiguration
      parameters:
      - name: integration
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK response
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ServiceProviderConfiguration'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/integrations/{integration}/scim/v2/Users:
    get:
      tags:
      - SCIM-Users
      description: Find by a combination of query parameters
      operationId: queryUsers
      parameters:
      - name: attributes
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: excludedAttributes
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: filter
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: sortBy
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: sortOrder
        in: query
        explode: false
        schema:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/SortOrder'
      - name: startIndex
        in: query
        explode: false
        schema:
          type: integer
          format: int32
          nullable: true
      - name: count
        in: query
        explode: false
        schema:
          type: integer
          format: int32
          nullable: true
      - name: integration
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '400':
          description: Bad Request
        '404':
          description: Not found
        '500':
          description: Internal Server Error
        '501':
          description: Not Implemented
        '200':
          description: OK response
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimResource'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - SCIM-Users
      description: Create
      operationId: createSCIMResourceByIdUsers
      parameters:
      - name: attributes
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: excludedAttributes
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: integration
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/scim+json:
            schema:
              $ref: '#/components/schemas/ScimUser'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimResource'
        '400':
          description: Bad Request
        '409':
          description: Conflict
        '500':
          description: Internal Server Error
        '501':
          description: Not Implemented
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/integrations/{integration}/scim/v2/Users/.search:
    post:
      tags:
      - SCIM-Users
      description: Search
      operationId: findUsers
      parameters:
      - name: integration
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/scim+json:
            schema:
              $ref: '#/components/schemas/SearchRequest'
        required: true
      responses:
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
        '501':
          description: Not Implemented
        '200':
          description: OK response
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimResource'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/integrations/{integration}/scim/v2/Users/{id}:
    get:
      tags:
      - SCIM-Users
      description: Find by id
      operationId: getSCIMResourceByIdUsers
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: attributes
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: excludedAttributes
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: integration
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '400':
          description: Bad Request
        '404':
          description: Not found
        '500':
          description: Internal Server Error
        '501':
          description: Not Implemented
        '200':
          description: OK response
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimResource'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - SCIM-Users
      description: Update
      operationId: updateUsers
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: attributes
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: excludedAttributes
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: integration
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/scim+json:
            schema:
              $ref: '#/components/schemas/ScimResource'
        required: true
      responses:
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
        '501':
          description: Not Implemented
        '200':
          description: OK response
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimResource'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - SCIM-Users
      description: Delete from the backing store
      operationId: deleteUsers
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: integration
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '404':
          description: Not found
        '500':
          description: Internal Server Error
        '501':
          description: Not Implemented
      security:
      - bearerAuth: []
      - basicAuth: []
    patch:
      tags:
      - SCIM-Users
      description: Patch a portion of the backing store
      operationId: patchUsers
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: attributes
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: excludedAttributes
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: integration
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/scim+json:
            schema:
              $ref: '#/components/schemas/PatchRequest'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '404':
          description: Not found
        '500':
          description: Internal Server Error
        '501':
          description: Not Implemented
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/invitations:
    post:
      tags:
      - Invitations
      summary: Create an invitation
      description: Creates a new invitation and sends an email if the mail server is enabled.
      operationId: createInvitation
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: Create a new invitation, send an email if the server-mail is enabled
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IAMInvitationController.ApiInvitationCreateRequest'
        required: true
      responses:
        '201':
          description: Invitation successfully created
        '204':
          description: Tenant access granted to the user
        '403':
          description: Insufficient privileges to invite an instance owner
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '409':
          description: Invitation already exists for the given email, or user already had access to the tenant
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/invitations/email/{email}:
    get:
      tags:
      - Invitations
      summary: Retrieve all invitations for a given email
      description: Returns all invitations created for a given email address in the current tenant.
      operationId: listInvitationsByEmail
      parameters:
      - name: email
        in: path
        description: The email address of the invited
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listInvitationsByEmail 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IAMInvitationController.ApiInvitationDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/invitations/search:
    get:
      tags:
      - Invitations
      summary: Search for invitations
      description: Search and filter invitations by email, status, and pagination.
      operationId: searchInvitations
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchInvitations 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_IAMInvitationController.ApiInvitationDetail_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/invitations/{id}:
    get:
      tags:
      - Invitations
      summary: Retrieve an invitation
      description: Retrieves the invitation by its ID, including the invitation link.
      operationId: getInvitation
      parameters:
      - name: id
        in: path
        description: The id of the invitation
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '404':
          description: Invitation not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: getInvitation 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMInvitationController.ApiInvitationDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Invitations
      summary: Delete an invitation
      description: Deletes the invitation by its ID.
      operationId: deleteInvitation
      parameters:
      - name: id
        in: path
        description: The id of the invitation
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Invitation successfully deleted
        '404':
          description: Invitation not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/kv:
    get:
      tags:
      - KV
      summary: List all keys
      operationId: listAllKeys
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
        examples:
          Sort by key in ascending order:
            value: key:asc
          Sort by description in descending order:
            value: description:desc
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - example: `filters[namespace][IN]=company.team`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listAllKeys 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_KVEntry_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/logs/search:
    get:
      tags:
      - Logs
      summary: Search for logs
      operationId: searchLogs
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
        examples:
          Sort by timestamp in ascending order:
            value: timestamp:asc
      - name: cursor
        in: query
        description: An opaque cursor token (from a previous response's nextCursor) for cursor-paginated log stores
        explode: false
        schema:
          type: string
          nullable: true
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[flowId][EQUALS]=hello-world`, `filters[timeRange][EQUALS]=P7D`, `filters[level][EQUALS]=DEBUG`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchLogs 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CursorOrOffsetPagedResults_LogEntry_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/logs/{executionId}:
    get:
      tags:
      - Logs
      summary: Get logs for a specific execution, taskrun or task
      operationId: listLogsFromExecution
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: filters
        in: query
        description: Filters
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listLogsFromExecution 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LogEntry'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Logs
      summary: Delete logs for a specific execution, taskrun or task
      operationId: deleteLogsFromExecution
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: minLevel
        in: query
        description: The min log level filter
        explode: false
        schema:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/Level'
      - name: taskRunId
        in: query
        description: The taskrun id
        explode: false
        schema:
          type: string
          nullable: true
      - name: taskId
        in: query
        description: The task id
        explode: false
        schema:
          type: string
          nullable: true
      - name: attempt
        in: query
        description: The attempt number
        explode: false
        schema:
          type: integer
          format: int32
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteLogsFromExecution 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/logs/{executionId}/download:
    get:
      tags:
      - Logs
      summary: Download logs for a specific execution, taskrun or task
      operationId: downloadLogsFromExecution
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: filters
        in: query
        description: Filters
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: downloadLogsFromExecution 200 response
          content:
            text/plain:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/logs/{executionId}/follow:
    get:
      tags:
      - Logs
      summary: Follow logs for a specific execution
      operationId: followLogsFromExecution
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: filters
        in: query
        description: Filters
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: followLogsFromExecution 200 response
          content:
            text/event-stream:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Event_FollowLogEvent_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/logs/{namespace}/{flowId}:
    delete:
      tags:
      - Logs
      summary: Delete logs for a specific execution, taskrun or task
      operationId: deleteLogsFromFlow
      parameters:
      - name: namespace
        in: path
        description: The namespace
        required: true
        schema:
          type: string
      - name: flowId
        in: path
        description: The flow identifier
        required: true
        schema:
          type: string
      - name: triggerId
        in: query
        description: The trigger id
        required: true
        explode: false
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteLogsFromFlow 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/mcp-servers:
    get:
      tags:
      - Mcp
      summary: List MCP servers
      operationId: listMcps
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listMcps 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_ApiMcpServer_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - Mcp
      summary: Create an MCP server
      operationId: createMcp
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The MCP server to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiMcpServer'
        required: true
      responses:
        '200':
          description: createMcp 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiMcpServer'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/mcp-servers/{id}:
    get:
      tags:
      - Mcp
      summary: Get an MCP server
      operationId: getMcp
      parameters:
      - name: id
        in: path
        description: The MCP server id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getMcp 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiMcpServer'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Mcp
      summary: Update an MCP server
      operationId: updateMcp
      parameters:
      - name: id
        in: path
        description: The MCP server id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The MCP server to update
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiMcpServer'
        required: true
      responses:
        '200':
          description: updateMcp 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiMcpServer'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Mcp
      summary: Delete an MCP server
      operationId: deleteMcp
      parameters:
      - name: id
        in: path
        description: The MCP server id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteMcp 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/mcp-servers/{id}/toggle:
    patch:
      tags:
      - Mcp
      summary: Toggle an MCP server's enabled state
      operationId: toggleMcp
      parameters:
      - name: id
        in: path
        description: The MCP server id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: toggleMcp 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiMcpServer'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/mcp-servers/{id}/tools:
    get:
      tags:
      - Mcp
      summary: List tools exposed by an MCP server
      operationId: listTools
      parameters:
      - name: id
        in: path
        description: The MCP server id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listTools 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/McpServerController.ApiMcpTool'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/metrics/aggregates/{namespace}/{flowId}/{metric}:
    get:
      tags:
      - Metrics
      summary: Get metrics aggregations for a specific flow
      operationId: aggregateMetricsFromFlow
      parameters:
      - name: namespace
        in: path
        description: The namespace
        required: true
        schema:
          type: string
      - name: flowId
        in: path
        description: The flow Id
        required: true
        schema:
          type: string
      - name: metric
        in: path
        description: The metric name
        required: true
        schema:
          type: string
      - name: startDate
        in: query
        description: The start datetime, default to now - 30 days
        schema:
          type: string
          format: date-time
          nullable: true
      - name: endDate
        in: query
        description: The end datetime, default to now
        schema:
          type: string
          format: date-time
          nullable: true
      - name: aggregation
        in: query
        description: 'The type of aggregation: avg, sum, min or max'
        explode: false
        schema:
          type: string
          default: sum
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: aggregateMetricsFromFlow 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetricAggregations'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/metrics/aggregates/{namespace}/{flowId}/{taskId}/{metric}:
    get:
      tags:
      - Metrics
      summary: Get metrics aggregations for a specific flow
      operationId: aggregateMetricsFromTask
      parameters:
      - name: namespace
        in: path
        description: The namespace
        required: true
        schema:
          type: string
      - name: flowId
        in: path
        description: The flow Id
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The task Id
        required: true
        schema:
          type: string
      - name: metric
        in: path
        description: The metric name
        required: true
        schema:
          type: string
      - name: startDate
        in: query
        description: The start datetime, default to now - 30 days
        schema:
          type: string
          format: date-time
          nullable: true
      - name: endDate
        in: query
        description: The end datetime, default to now
        schema:
          type: string
          format: date-time
          nullable: true
      - name: aggregation
        in: query
        description: 'The type of aggregation: avg, sum, min or max'
        explode: false
        schema:
          type: string
          default: sum
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: aggregateMetricsFromTask 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetricAggregations'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/metrics/names/{namespace}/{flowId}:
    get:
      tags:
      - Metrics
      summary: Get metrics names for a specific flow
      operationId: listFlowMetrics
      parameters:
      - name: namespace
        in: path
        description: The namespace
        required: true
        schema:
          type: string
      - name: flowId
        in: path
        description: The flow Id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listFlowMetrics 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/metrics/names/{namespace}/{flowId}/{taskId}:
    get:
      tags:
      - Metrics
      summary: Get metrics names for a specific task in a flow
      operationId: listTaskMetrics
      parameters:
      - name: namespace
        in: path
        description: The namespace
        required: true
        schema:
          type: string
      - name: flowId
        in: path
        description: The flow Id
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        description: The task Id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listTaskMetrics 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/metrics/tasks/{namespace}/{flowId}:
    get:
      tags:
      - Metrics
      summary: Get tasks id that have metrics for a specific flow, include deleted or renamed tasks
      operationId: listTasksWithMetrics
      parameters:
      - name: namespace
        in: path
        description: The namespace
        required: true
        schema:
          type: string
      - name: flowId
        in: path
        description: The flow Id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listTasksWithMetrics 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/metrics/{executionId}:
    get:
      tags:
      - Metrics
      summary: Get metrics for a specific execution
      operationId: searchByExecution
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: taskRunId
        in: query
        description: The taskrun id
        explode: false
        schema:
          type: string
          nullable: true
      - name: taskId
        in: query
        description: The task id
        explode: false
        schema:
          type: string
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchByExecution 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_MetricEntry_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces:
    post:
      tags:
      - Namespaces
      summary: Create a namespace
      operationId: createNamespace
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The namespace
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Namespace'
        required: true
      responses:
        '200':
          description: createNamespace 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Namespace'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/autocomplete:
    post:
      tags:
      - Namespaces
      summary: List namespaces for autocomplete
      description: Returns a list of namespaces for use in autocomplete fields, optionally allowing to filter by query and ids. Used especially for binding creation.
      operationId: autocompleteNamespaces
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiAutocomplete'
        required: true
      responses:
        '200':
          description: autocompleteNamespaces 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/search:
    get:
      tags:
      - Namespaces
      summary: Search for namespaces
      operationId: searchNamespaces
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: existing
        in: query
        description: Return only existing namespace
        explode: false
        schema:
          type: boolean
          default: false
      - name: filters
        in: query
        description: A list of query filters
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchNamespaces 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_Namespace_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{id}:
    get:
      tags:
      - Namespaces
      summary: Get a namespace
      operationId: getNamespace
      parameters:
      - name: id
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getNamespace 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Namespace'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Namespaces
      summary: Update a namespace
      operationId: updateNamespace
      parameters:
      - name: id
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The namespace
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Namespace'
        required: true
      responses:
        '200':
          description: updateNamespace 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Namespace'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Namespaces
      summary: Delete a namespace and its child namespaces
      operationId: deleteNamespace
      parameters:
      - name: id
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: On success
        '404':
          description: If neither the namespace nor any of its child namespaces exists
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '409':
          description: If the namespace or one of its child namespaces contains flows
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{id}/inherited-variables:
    get:
      tags:
      - Namespaces
      summary: List inherited variables
      operationId: inheritedVariables
      parameters:
      - name: id
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: inheritedVariables 200 response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/credentials:
    get:
      tags:
      - Credentials
      - Namespaces
      summary: List credentials in a namespace
      operationId: listNamespaceCredentials
      parameters:
      - name: namespace
        in: path
        description: The namespace
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listNamespaceCredentials 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_ApiCredentialResponse_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - Credentials
      - Namespaces
      summary: Create a credential in a namespace
      operationId: createNamespaceCredential
      parameters:
      - name: namespace
        in: path
        description: The namespace
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiCreateCredentialRequest'
        required: true
      responses:
        '200':
          description: createNamespaceCredential 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiCredentialResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/credentials/inherited:
    get:
      tags:
      - Credentials
      - Namespaces
      summary: Get inherited credentials from parent namespaces
      operationId: getInheritedCredentials
      parameters:
      - name: namespace
        in: path
        description: The namespace
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getInheritedCredentials 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiInheritedCredentialsResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/credentials/{name}:
    get:
      tags:
      - Credentials
      - Namespaces
      summary: Get a credential by name in a namespace
      operationId: getNamespaceCredential
      parameters:
      - name: namespace
        in: path
        description: The namespace
        required: true
        schema:
          type: string
      - name: name
        in: path
        description: The credential name
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getNamespaceCredential 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiCredentialResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Credentials
      - Namespaces
      summary: Update a credential in a namespace
      operationId: updateNamespaceCredential
      parameters:
      - name: namespace
        in: path
        description: The namespace
        required: true
        schema:
          type: string
      - name: name
        in: path
        description: The credential name
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiUpdateCredentialRequest'
        required: true
      responses:
        '200':
          description: updateNamespaceCredential 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiCredentialResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Credentials
      - Namespaces
      summary: Delete a credential from a namespace
      operationId: deleteNamespaceCredential
      parameters:
      - name: namespace
        in: path
        description: The namespace
        required: true
        schema:
          type: string
      - name: name
        in: path
        description: The credential name
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteNamespaceCredential 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/credentials/{name}/test:
    post:
      tags:
      - Credentials
      - Namespaces
      summary: Test a credential connection
      operationId: testNamespaceConnection
      parameters:
      - name: namespace
        in: path
        description: The namespace
        required: true
        schema:
          type: string
      - name: name
        in: path
        description: The credential name
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: testNamespaceConnection 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTestConnectionResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/dependencies:
    get:
      tags:
      - Flows
      summary: Retrieve flow dependencies
      operationId: getFlowDependenciesFromNamespace
      parameters:
      - name: namespace
        in: path
        description: The flow namespace
        required: true
        schema:
          type: string
      - name: destinationOnly
        in: query
        description: if true, list only destination dependencies, otherwise list also source dependencies
        explode: false
        schema:
          type: boolean
          default: false
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getFlowDependenciesFromNamespace 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowTopologyGraph'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/files:
    get:
      tags:
      - Files
      summary: Get namespace file content
      operationId: getFileContent
      parameters:
      - name: namespace
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: path
        in: query
        description: The internal storage uri
        required: true
        explode: false
        schema:
          type: string
      - name: revision
        in: query
        description: The revision, if not provided, the latest revision will be returned
        explode: false
        schema:
          type: integer
          format: int32
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getFileContent 200 response
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Files
      summary: Move a file or directory
      operationId: moveFileDirectory
      parameters:
      - name: namespace
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: from
        in: query
        description: The internal storage uri to move from
        required: true
        explode: false
        schema:
          type: string
          format: uri
      - name: to
        in: query
        description: The internal storage uri to move to
        required: true
        explode: false
        schema:
          type: string
          format: uri
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: moveFileDirectory 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - Files
      summary: Create a file
      operationId: createNamespaceFile
      parameters:
      - name: namespace
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: path
        in: query
        description: The internal storage uri
        required: true
        explode: false
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                fileContent:
                  type: string
                  description: The file to upload
                  format: binary
            encoding:
              fileContent:
                contentType: application/octet-stream
                explode: false
        required: true
      responses:
        '200':
          description: createNamespaceFile 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Files
      summary: Delete a file or directory
      operationId: deleteFileDirectory
      parameters:
      - name: namespace
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: path
        in: query
        description: The internal storage uri of the file / directory to delete
        required: true
        explode: false
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteFileDirectory 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/files/directory:
    get:
      tags:
      - Files
      summary: List directory content
      operationId: listNamespaceDirectoryFiles
      parameters:
      - name: namespace
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: path
        in: query
        description: The internal storage uri
        explode: false
        schema:
          type: string
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listNamespaceDirectoryFiles 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FileAttributes'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - Files
      summary: Create a directory
      operationId: createNamespaceDirectory
      parameters:
      - name: namespace
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: path
        in: query
        description: The internal storage uri
        explode: false
        schema:
          type: string
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: createNamespaceDirectory 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/files/export:
    get:
      tags:
      - Files
      summary: Export namespace files as a ZIP
      operationId: exportNamespaceFiles
      parameters:
      - name: namespace
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: exportNamespaceFiles 200 response
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/files/revisions:
    get:
      tags:
      - Files
      summary: Get namespace file revisions
      operationId: getFileRevisions
      parameters:
      - name: namespace
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: path
        in: query
        description: The internal storage uri
        explode: false
        schema:
          type: string
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getFileRevisions 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/NamespaceFileRevision'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/files/search:
    get:
      tags:
      - Files
      summary: Find files which path contain the given string in their URI
      operationId: searchNamespaceFiles
      parameters:
      - name: namespace
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: q
        in: query
        description: The string the file path should contain
        required: true
        explode: false
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchNamespaceFiles 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/files/stats:
    get:
      tags:
      - Files
      summary: Get namespace file stats such as size, creation & modification dates and type
      operationId: getFileMetadatas
      parameters:
      - name: namespace
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: path
        in: query
        description: The internal storage uri
        explode: false
        schema:
          type: string
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getFileMetadatas 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileAttributes'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/inherited-secrets:
    get:
      tags:
      - Namespaces
      summary: List inherited secrets
      operationId: getInheritedSecrets
      parameters:
      - name: namespace
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getInheritedSecrets 200 response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: array
                  items:
                    type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/kv:
    delete:
      tags:
      - KV
      summary: Bulk-delete multiple key/value pairs from the given namespace.
      operationId: deleteKeyValues
      parameters:
      - name: namespace
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The keys
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KVController.ApiDeleteBulkRequest'
        required: true
      responses:
        '200':
          description: deleteKeyValues 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KVController.ApiDeleteBulkResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/kv/inheritance:
    get:
      tags:
      - KV
      summary: List all keys for inherited namespaces
      operationId: listKeysWithInheritence
      parameters:
      - name: namespace
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listKeysWithInheritence 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/KVEntry'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/kv/{key}:
    get:
      tags:
      - KV
      summary: Get value for a key
      operationId: getKeyValue
      parameters:
      - name: namespace
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: key
        in: path
        description: The key
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getKeyValue 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KVController.KvDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - KV
      summary: Puts a key-value pair in store
      operationId: setKeyValue
      parameters:
      - name: namespace
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: key
        in: path
        description: The key
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The value of the key
        content:
          text/plain:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: setKeyValue 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - KV
      summary: Delete a key-value pair
      operationId: deleteKeyValue
      parameters:
      - name: namespace
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: key
        in: path
        description: The key
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteKeyValue 200 response
          content:
            application/json:
              schema:
                type: boolean
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/policies:
    post:
      tags:
      - Policies
      summary: Create a namespace-scope policy from its YAML source
      operationId: createNamespacePolicy
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: createNamespacePolicy 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Policy'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/policies/delete/by-ids:
    delete:
      tags:
      - Policies
      summary: Delete namespace-scope policies by their IDs
      operationId: deleteNamespacePoliciesByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        '200':
          description: deleteNamespacePoliciesByIds 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/policies/export:
    post:
      tags:
      - Policies
      summary: Export every namespace-scope policy of a namespace as YAML documents joined by '---'
      operationId: exportNamespacePolicies
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: exportNamespacePolicies 200 response
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/policies/export/by-ids:
    post:
      tags:
      - Policies
      summary: Export namespace-scope policies by their IDs as YAML documents joined by '---'
      operationId: exportNamespacePoliciesByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        '200':
          description: exportNamespacePoliciesByIds 200 response
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/policies/search:
    get:
      tags:
      - Policies
      summary: 'Search the policies applying to a namespace — its whole scope chain (STATIC, INSTANCE, TENANT, ancestors and own), ordered outermost → leaf. Backed by the resolution metastore: results converge with writes within the broadcast latency (typically sub-second).'
      operationId: searchNamespacePolicies
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: filters
        in: query
        description: A list of query filters
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      responses:
        '200':
          description: searchNamespacePolicies 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_ApiPolicySummary_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/policies/validate:
    post:
      tags:
      - Policies
      summary: Validate a namespace-scope policy YAML source without persisting it
      operationId: validateNamespacePolicy
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: validateNamespacePolicy 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateConstraintViolation'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/policies/{id}:
    get:
      tags:
      - Policies
      summary: Get a namespace-scope policy
      operationId: getNamespacePolicy
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getNamespacePolicy 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Policy'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Policies
      summary: Update a namespace-scope policy from its YAML source
      operationId: updateNamespacePolicy
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: updateNamespacePolicy 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Policy'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Policies
      summary: Delete a namespace-scope policy
      operationId: deleteNamespacePolicy
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: On success
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/policies/{id}/evaluate:
    get:
      tags:
      - Policies
      summary: Dry-run a namespace-scope policy against every flow in its scope
      operationId: evaluateNamespacePolicy
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 25
      responses:
        '200':
          description: evaluateNamespacePolicy 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyEvaluation'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/reusable-inputs:
    get:
      tags:
      - Reusable Inputs
      summary: List reusable inputs visible from a namespace (including inherited ones)
      operationId: list_4
      parameters:
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: list_4 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_ReusableInputsWithSource_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/reusable-inputs/{id}:
    get:
      tags:
      - Reusable Inputs
      summary: Get reusable inputs by id, resolving namespace inheritance
      operationId: get_6
      parameters:
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: revision
        in: query
        explode: false
        schema:
          type: integer
          format: int32
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: get_6 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReusableInputsWithSource'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Reusable Inputs
      summary: Create or update reusable inputs from their YAML source
      operationId: createOrUpdate
      parameters:
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: failIfExists
        in: query
        description: Reject instead of overwriting if a block with this id already exists in the namespace
        explode: false
        schema:
          type: boolean
          default: false
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-yaml:
            schema:
              type: string
          text/plain:
            schema:
              type: string
          application/json:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: createOrUpdate 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReusableInputsWithSource'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Reusable Inputs
      summary: Delete reusable inputs
      operationId: delete_5
      parameters:
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: delete_5 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/reusable-inputs/{id}/revisions:
    get:
      tags:
      - Reusable Inputs
      summary: List all revisions of reusable inputs (history view)
      operationId: revisions
      parameters:
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: revisions 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ReusableInputsWithSource'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/secrets:
    put:
      tags:
      - Namespaces
      summary: Update secrets for a namespace
      operationId: putSecrets
      parameters:
      - name: namespace
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSecretValue'
        required: true
      responses:
        '200':
          description: putSecrets 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiSecretMetaEE'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/namespaces/{namespace}/secrets/{key}:
    delete:
      tags:
      - Namespaces
      summary: Delete a secret for a namespace
      operationId: deleteSecret
      parameters:
      - name: namespace
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: key
        in: path
        description: The secret key
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteSecret 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    patch:
      tags:
      - Namespaces
      summary: Patch a secret metadata for a namespace
      operationId: patchSecret
      parameters:
      - name: namespace
        in: path
        description: The namespace id
        required: true
        schema:
          type: string
      - name: key
        in: path
        description: The secret key
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSecretMetaEE'
        required: true
      responses:
        '200':
          description: patchSecret 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiSecretMetaEE'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/outputs/executions/{executionId}:
    get:
      tags:
      - Outputs
      summary: Get the flow-level outputs of an execution
      operationId: getExecutionOutputs
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The execution outputs as a map of output names to their values
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/outputs/tasks/{executionId}:
    get:
      tags:
      - Outputs
      summary: List the task runs of an execution having outputs
      operationId: getTaskOutputsInformation
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getTaskOutputsInformation 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OutputController.TaskOutputInformation'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/outputs/tasks/{executionId}/{taskRunId}:
    get:
      tags:
      - Outputs
      summary: Get task run outputs
      operationId: getTaskRunOutputs
      parameters:
      - name: executionId
        in: path
        description: The execution id
        required: true
        schema:
          type: string
      - name: taskRunId
        in: path
        description: The task run id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The task run outputs as a map of output names to their values
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/policies:
    post:
      tags:
      - Policies
      summary: Create a tenant-scope policy from its YAML source
      operationId: createTenantPolicy
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: createTenantPolicy 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Policy'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/policies/delete/by-ids:
    delete:
      tags:
      - Policies
      summary: Delete tenant-scope policies by their IDs
      operationId: deleteTenantPoliciesByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        '200':
          description: deleteTenantPoliciesByIds 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/policies/export:
    post:
      tags:
      - Policies
      summary: Export every tenant-scope policy as YAML documents joined by '---'
      operationId: exportTenantPolicies
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: exportTenantPolicies 200 response
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/policies/export/by-ids:
    post:
      tags:
      - Policies
      summary: Export tenant-scope policies by their IDs as YAML documents joined by '---'
      operationId: exportTenantPoliciesByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        '200':
          description: exportTenantPoliciesByIds 200 response
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/policies/import:
    post:
      tags:
      - Policies
      summary: 'Import policies from YAML documents of any scope. Every document is authorized against its own scope before anything is written: a denial rejects the whole import. Content problems (unparseable document, missing scope) are accumulated as per-document errors.'
      operationId: importPolicies
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                fileUpload:
                  type: string
                  format: binary
            encoding:
              fileUpload:
                contentType: application/octet-stream
                explode: false
        required: true
      responses:
        '200':
          description: importPolicies 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyImportResult'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/policies/search:
    get:
      tags:
      - Policies
      summary: 'Search for policies across scopes (without a global grant, restricted to what concerns the caller''s namespaces: INSTANCE and TENANT policies plus NAMESPACE policies on their subtrees and ancestors)'
      operationId: searchPolicies
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: A list of query filters
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      responses:
        '200':
          description: searchPolicies 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_ApiPolicySummary_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/policies/validate:
    post:
      tags:
      - Policies
      summary: Validate a tenant-scope policy YAML source without persisting it
      operationId: validateTenantPolicy
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: validateTenantPolicy 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateConstraintViolation'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/policies/{id}:
    get:
      tags:
      - Policies
      summary: Get a tenant-scope policy
      operationId: getTenantPolicy
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getTenantPolicy 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Policy'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Policies
      summary: Update a tenant-scope policy from its YAML source
      operationId: updateTenantPolicy
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: updateTenantPolicy 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Policy'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Policies
      summary: Delete a tenant-scope policy
      operationId: deleteTenantPolicy
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: On success
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/policies/{id}/evaluate:
    get:
      tags:
      - Policies
      summary: Dry-run a tenant-scope policy against every flow in its scope
      operationId: evaluateTenantPolicy
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 25
      responses:
        '200':
          description: evaluateTenantPolicy 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyEvaluation'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/promotion-targets:
    get:
      tags:
      - Promote
      summary: List all promotion targets
      operationId: listPromotionTargets
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listPromotionTargets 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_ApiPromotionTargetResponse_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - Promote
      summary: Create a new promotion target
      operationId: createPromotionTarget
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiCreatePromotionTargetRequest'
        required: true
      responses:
        '200':
          description: createPromotionTarget 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPromotionTargetResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/promotion-targets/test:
    post:
      tags:
      - Promote
      summary: Test connectivity to an unsaved SERVER-mode promotion target definition, or to edits of a saved one
      operationId: testPromotionTarget
      parameters:
      - name: id
        in: query
        description: The saved promotion target being edited; its stored token is used when the definition omits one
        explode: false
        schema:
          type: string
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiCreatePromotionTargetRequest'
        required: true
      responses:
        '200':
          description: testPromotionTarget 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTestConnectionResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/promotion-targets/{id}:
    get:
      tags:
      - Promote
      summary: Get a promotion target by id
      operationId: getPromotionTarget
      parameters:
      - name: id
        in: path
        description: The promotion target id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getPromotionTarget 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPromotionTargetResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Promote
      summary: Update an existing promotion target
      operationId: updatePromotionTarget
      parameters:
      - name: id
        in: path
        description: The promotion target id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiUpdatePromotionTargetRequest'
        required: true
      responses:
        '200':
          description: updatePromotionTarget 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPromotionTargetResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Promote
      summary: Delete a promotion target
      operationId: deletePromotionTarget
      parameters:
      - name: id
        in: path
        description: The promotion target id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deletePromotionTarget 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/promotion-targets/{id}/flow-hashes:
    post:
      tags:
      - Promote
      summary: Batch-fetch flow source hashes from a SERVER-mode target (flows-table drift column)
      operationId: getTargetFlowHashes
      parameters:
      - name: id
        in: path
        description: The promotion target id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiFlowHashBatch.Request'
        required: true
      responses:
        '200':
          description: getTargetFlowHashes 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiFlowHashBatch.Response'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/promotion-targets/{id}/flow-source:
    get:
      tags:
      - Promote
      summary: Fetch a flow's source and revision from a SERVER-mode target (for drift/diff)
      operationId: getTargetFlowSource
      parameters:
      - name: id
        in: path
        description: The promotion target id
        required: true
        schema:
          type: string
      - name: namespace
        in: query
        description: The flow namespace
        required: true
        explode: false
        schema:
          type: string
      - name: flowId
        in: query
        description: The flow id
        required: true
        explode: false
        schema:
          type: string
      - name: revision
        in: query
        description: The flow revision (latest if omitted)
        explode: false
        schema:
          type: integer
          format: int32
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getTargetFlowSource 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiFlowSourceResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/promotion-targets/{id}/test:
    post:
      tags:
      - Promote
      summary: Test connectivity to a saved promotion target
      operationId: testSavedPromotionTarget
      parameters:
      - name: id
        in: path
        description: The promotion target id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: testSavedPromotionTarget 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTestConnectionResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/quota-limits:
    get:
      tags:
      - Quotas
      summary: Search for quota limits
      operationId: searchQuotaLimits
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchQuotaLimits 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/QuotaLimit'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/quota-limits/reset:
    post:
      tags:
      - Quotas
      summary: Reset a quota limit
      operationId: resetQuotaLimit
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuotaLimitController.ApiQuotaLimitResetRequest'
        required: true
      responses:
        '200':
          description: resetQuotaLimit 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/reusable-inputs/namespaces:
    get:
      tags:
      - Reusable Inputs
      summary: List namespaces that define at least one reusable inputs definition (editor autocompletion)
      operationId: namespacesWithBlocks
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: namespacesWithBlocks 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/roles:
    post:
      tags:
      - Roles
      summary: Create a role
      operationId: createRole
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IAMRoleController.ApiRoleCreateOrUpdateRequest'
        required: true
      responses:
        '200':
          description: Role successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMRoleController.ApiRoleDetail'
        '403':
          description: Insufficient privileges to create the role
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '422':
          description: Invalid role (e.g. missing or blank name)
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/roles/autocomplete:
    post:
      tags:
      - Roles
      summary: List roles for autocomplete
      operationId: autocompleteRoles
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: Autocomplete request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiAutocomplete'
        required: true
      responses:
        '200':
          description: autocompleteRoles 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiRoleSummary'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/roles/ids:
    post:
      tags:
      - Roles
      summary: List roles by ids
      operationId: listRolesFromGivenIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The ids that must be present on results
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiIds'
        required: true
      responses:
        '200':
          description: listRolesFromGivenIds 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Role'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/roles/search:
    get:
      tags:
      - Roles
      summary: Search for roles
      operationId: searchRoles
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchRoles 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_ApiRoleSummary_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/roles/{id}:
    get:
      tags:
      - Roles
      summary: Retrieve a role
      operationId: getRole
      parameters:
      - name: id
        in: path
        description: The role id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '404':
          description: Role not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: getRole 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMRoleController.ApiRoleDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Roles
      summary: Update a role
      operationId: updateRole
      parameters:
      - name: id
        in: path
        description: The role id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IAMRoleController.ApiRoleCreateOrUpdateRequest'
        required: true
      responses:
        '200':
          description: Role successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMRoleController.ApiRoleDetail'
        '404':
          description: Role not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Insufficient privileges to update the role
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Roles
      summary: Delete a role
      operationId: deleteRole
      parameters:
      - name: id
        in: path
        description: The role id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: On success
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/secrets:
    get:
      tags:
      - Secrets
      summary: Search secrets of all namespaces
      operationId: listSecrets
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listSecrets 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSecretListResponse_ApiSecretMeta_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/security-integrations:
    get:
      tags:
      - SecurityIntegrations
      summary: List all security integrations
      description: Instance-owner-only.
      operationId: listSecurityIntegrations
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listSecurityIntegrations 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      deprecated: true
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - SecurityIntegrations
      summary: Create a security integration
      description: Instance-owner-only.
      operationId: createSecurityIntegration
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The security integration definition
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSecurityIntegrationRequest'
        required: true
      responses:
        '200':
          description: createSecurityIntegration 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/security-integrations/search:
    get:
      tags:
      - SecurityIntegrations
      summary: Retrieve security integrations filtered by Filters
      description: Instance-owner-only.
      operationId: searchSecurityIntegration
      parameters:
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchSecurityIntegration 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_SecurityIntegration_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/security-integrations/{id}:
    get:
      tags:
      - SecurityIntegrations
      summary: Retrieve a security integration
      description: Instance-owner-only.
      operationId: getSecurityIntegration
      parameters:
      - name: id
        in: path
        description: The ID of security integration
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getSecurityIntegration 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - SecurityIntegrations
      summary: Delete a security integration
      description: Instance-owner-only.
      operationId: deleteSecurityIntegration
      parameters:
      - name: id
        in: path
        description: The ID of security integration
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteSecurityIntegration 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/security-integrations/{id}/disable:
    post:
      tags:
      - SecurityIntegrations
      summary: Disable a security integration
      description: Instance-owner-only. Disables the specified integration.
      operationId: disableSecurityIntegration
      parameters:
      - name: id
        in: path
        description: The ID of security integration
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: disableSecurityIntegration 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/security-integrations/{id}/enable:
    post:
      tags:
      - SecurityIntegrations
      summary: Enable a security integration
      description: Instance-owner-only. Enables the specified integration.
      operationId: enableSecurityIntegration
      parameters:
      - name: id
        in: path
        description: The ID of security integration
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: enableSecurityIntegration 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/service-accounts:
    get:
      tags:
      - ServiceAccount
      summary: List service accounts for the given tenant
      operationId: listServiceAccountsForTenant
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listServiceAccountsForTenant 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_IAMTenantAccessController.ApiUserTenantAccess_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - ServiceAccount
      summary: Create a service account for the given tenant
      operationId: createServiceAccountForTenant
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The service account
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IAMServiceAccountController.ApiServiceAccountRequest'
        required: true
      responses:
        '200':
          description: Service account successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMServiceAccountController.ApiServiceAccountResponse'
        '404':
          description: Group not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/service-accounts/{id}:
    get:
      tags:
      - ServiceAccount
      summary: Retrieve a service account
      operationId: getServiceAccountForTenant
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '404':
          description: Service account not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: getServiceAccountForTenant 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMServiceAccountController.ApiServiceAccountResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - ServiceAccount
      summary: Update a user service account
      operationId: updateServiceAccount
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The user
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IAMServiceAccountController.ApiServiceAccountRequest'
        required: true
      responses:
        '404':
          description: Service account, or group not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: updateServiceAccount 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMServiceAccountController.ApiServiceAccountResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - ServiceAccount
      summary: Delete a service account
      operationId: deleteServiceAccountForTenant
      parameters:
      - name: id
        in: path
        description: The service account id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '404':
          description: Service account
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: deleteServiceAccountForTenant 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/service-accounts/{id}/api-tokens:
    get:
      tags:
      - ServiceAccount
      summary: List API tokens for a specific service account
      operationId: listApiTokensForServiceAccountWithTenant
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listApiTokensForServiceAccountWithTenant 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - ServiceAccount
      summary: Create new API Token for a specific service account
      operationId: createApiTokensForServiceAccountWithTenant
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The create api-token request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateApiTokenRequest'
        required: true
      responses:
        '200':
          description: createApiTokensForServiceAccountWithTenant 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/service-accounts/{id}/api-tokens/{tokenId}:
    delete:
      tags:
      - ServiceAccount
      summary: Delete an API Token for specific service account and token id
      operationId: deleteApiTokenForServiceAccountWithTenant
      parameters:
      - name: id
        in: path
        description: The user id
        required: true
        schema:
          type: string
      - name: tokenId
        in: path
        description: The token id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteApiTokenForServiceAccountWithTenant 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/stats/generate-reports:
    get:
      tags:
      - Misc
      operationId: generate
      parameters:
      - name: from
        in: query
        description: The start date
        schema:
          type: string
          format: date
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: generate 200 response
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/support/debug-info:
    get:
      tags:
      - Misc
      summary: Retrieve debug information for a support ticket
      description: Returns aggregated debug information about the current Kestra instance. Requires the SUPPORT permission.
      operationId: supportDebugInfo
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: supportDebugInfo 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SupportDebugInfo'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/support/forward:
    post:
      tags:
      - Misc
      summary: Forward support ticket to configured registry proxy
      description: Requires the SUPPORT permission.
      operationId: forwardSupportTicket
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                payload:
                  type: string
                files:
                  type: array
                  nullable: true
                  items:
                    type: string
                    format: binary
            encoding:
              payload:
                contentType: application/octet-stream
                explode: false
              files:
                contentType: application/octet-stream
                explode: false
        required: true
      responses:
        '200':
          description: forwardSupportTicket 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/tenant-access:
    get:
      tags:
      - Tenant Access
      summary: Retrieve users belonging to the tenant
      operationId: listTenantAccess
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: filters
        in: query
        description: Filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: listTenantAccess 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_IAMTenantAccessController.ApiUserTenantAccess_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    post:
      tags:
      - Tenant Access
      summary: Create tenant access for a user
      description: Grants tenant access permissions to a user identified by email
      operationId: createTenantAccess
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IAMTenantAccessController.ApiCreateTenantAccessRequest'
        required: true
      responses:
        '204':
          description: Access successfully created
        '404':
          description: User not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '409':
          description: User already has access to the tenant
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/tenant-access/autocomplete:
    post:
      tags:
      - Users
      summary: List users for autocomplete
      operationId: autocompleteUsers
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: Autocomplete request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IAMTenantAccessController.UserApiAutocomplete'
        required: true
      responses:
        '200':
          description: autocompleteUsers 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IAMTenantAccessController.ApiUserTenantAccess'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/tenant-access/{userId}:
    get:
      tags:
      - Tenant Access
      summary: Retrieve tenant access for a user
      description: Fetches the tenant access configuration for a given user
      operationId: getTenantAccess
      parameters:
      - name: userId
        in: path
        description: The user id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Tenant access successfully retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAMTenantAccessController.ApiTenantAccess'
        '404':
          description: User, or tenant access not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - Tenant Access
      summary: Create tenant access for a user
      description: Grants tenant access permissions to a user identified by userId
      operationId: createTenantAccess_1
      parameters:
      - name: userId
        in: path
        description: The user id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Access successfully created
        '404':
          description: User not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - Tenant Access
      summary: Delete tenant access for a user
      description: Removes tenant access permissions for the specified user
      operationId: deleteTenantAccess
      parameters:
      - name: userId
        in: path
        description: The user id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Access successfully deleted
        '404':
          description: User, or tenant access not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/tests:
    post:
      tags:
      - TestSuites
      summary: Create a test from YAML source
      description: Creates a new test from a YAML definition. Requires TEST permission with the CREATE action.
      operationId: createTestSuite
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The TestSuite source code
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: createTestSuite 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestSuite'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/tests/by-ids:
    delete:
      tags:
      - TestSuites
      summary: Delete multiple tests by id
      description: Deletes a test by namespace and ID. Requires TEST permission with the DELETE action.
      operationId: deleteTestSuitesByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TestSuiteController.TestSuiteBulkRequest'
        required: true
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/tests/disable/by-ids:
    post:
      tags:
      - TestSuites
      summary: Disable multiple tests by id
      description: Disable a test by namespace and ID. Requires TEST permission with the UPDATE action.
      operationId: disableTestSuitesByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TestSuiteController.TestSuiteBulkRequest'
        required: true
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/tests/enable/by-ids:
    post:
      tags:
      - TestSuites
      summary: Enable multiple tests by id
      description: Enable a test by namespace and ID. Requires TEST permission with the UPDATE action.
      operationId: enableTestSuitesByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TestSuiteController.TestSuiteBulkRequest'
        required: true
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/tests/results/search:
    get:
      tags:
      - TestSuites
      summary: Search for tests results
      description: with optional filtering by namespace, test suite ID and flow ID. Requires TEST permission with the READ action.
      operationId: searchTestSuitesResults
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: testSuiteId
        in: query
        description: The test suite id to filter on
        explode: false
        schema:
          type: string
          nullable: true
      - name: namespace
        in: query
        description: The namespace to filter on
        explode: false
        schema:
          type: string
          nullable: true
      - name: flowId
        in: query
        description: The flow id to filter on
        explode: false
        schema:
          type: string
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchTestSuitesResults 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_TestSuiteRunResult_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/tests/results/search/last:
    post:
      tags:
      - TestSuites
      summary: Get tests last result
      description: Get multiple tests last result for a query.
      operationId: getTestsLastResult
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TestSuiteController.SearchTestsLastResult'
        required: true
      responses:
        '200':
          description: getTestsLastResult 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestSuiteController.TestsLastResultResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/tests/results/{id}:
    get:
      tags:
      - TestSuites
      summary: Get a test result
      description: Get a test result once it was run.
      operationId: getTestResult
      parameters:
      - name: id
        in: path
        description: The test run ID
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getTestResult 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestSuiteRunResult'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/tests/run:
    post:
      tags:
      - TestSuites
      summary: Run multiple TestSuites by query
      description: Executes all TestSuites impacted by the specified filter. Requires TESTSUITE permission with the EXECUTE action.
      operationId: runTestSuitesByQuery
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TestSuiteService.RunByQueryRequest'
        required: true
      responses:
        '200':
          description: runTestSuitesByQuery 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestSuiteService.TestRunByQueryResult'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/tests/search:
    get:
      tags:
      - TestSuites
      summary: Search for tests
      description: Searches for tests with optional filtering by namespace and flow ID. Requires TEST permission with the READ action.
      operationId: searchTestSuites
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: namespace
        in: query
        description: The namespace to filter on
        explode: false
        schema:
          type: string
          nullable: true
      - name: flowId
        in: query
        description: The flow id to filter on
        explode: false
        schema:
          type: string
          nullable: true
      - name: includeChildNamespaces
        in: query
        description: Include child namespaces in filter or not
        explode: false
        schema:
          type: boolean
          default: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchTestSuites 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_TestSuite_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/tests/validate:
    post:
      tags:
      - TestSuites
      summary: Validate a test
      description: Validates a test YAML definition without persisting it. Returns constraint violations if any. Requires TEST permission with the READ action.
      operationId: validateTestSuite
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The TestSuite source code
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: validateTestSuite 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateConstraintViolation'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/tests/{namespace}/{id}:
    get:
      tags:
      - TestSuites
      summary: Retrieve a test
      description: Retrieves a test by namespace and ID. Requires TEST permission with the READ action.
      operationId: getTestSuite
      parameters:
      - name: namespace
        in: path
        description: The TestSuite namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The TestSuite ID
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getTestSuite 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestSuite'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    put:
      tags:
      - TestSuites
      summary: Update a test from YAML source
      description: Updates an existing test with a new YAML definition. Requires TEST permission with the UPDATE action.
      operationId: updateTestSuite
      parameters:
      - name: namespace
        in: path
        description: The TestSuite namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The TestSuite ID
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: The TestSuite source code
        content:
          application/x-yaml:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: updateTestSuite 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestSuite'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
    delete:
      tags:
      - TestSuites
      summary: Delete a test
      description: Deletes a test by namespace and ID. Requires TEST permission with the DELETE action.
      operationId: deleteTestSuite
      parameters:
      - name: namespace
        in: path
        description: The TestSuite namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The TestSuite ID
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: deleteTestSuite 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/tests/{namespace}/{id}/run:
    post:
      tags:
      - TestSuites
      summary: Run a full test
      description: Executes all test cases in the specified test. Requires TESTSUITE permission with the EXECUTE action.
      operationId: runTestSuite
      parameters:
      - name: namespace
        in: path
        description: The TestSuite namespace
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The TestSuite ID
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TestSuiteController.RunRequest'
      responses:
        '200':
          description: runTestSuite 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestSuiteRunResult'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/backfill/create:
    put:
      tags:
      - Triggers
      summary: Create a backfill
      operationId: createBackfill
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TriggerController.ApiCreateBackfillRequest'
        required: true
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTriggerState'
        '409':
          description: If the backfill cannot be created
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/backfill/delete:
    post:
      tags:
      - Triggers
      summary: Delete a backfill
      operationId: deleteBackfill
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TriggerController.ApiTriggerId'
        required: true
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTriggerState'
        '409':
          description: If the backfill cannot be deleted
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/backfill/delete/by-query:
    post:
      tags:
      - Triggers
      summary: Delete backfill for triggers matching query asynchronously
      operationId: deleteBackfillByQuery
      parameters:
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[flowId][EQUALS]=hello-world`, `filters[namespace][CONTAINS]=test`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '200':
          description: deleteBackfillByQuery 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/backfill/delete/by-triggers:
    post:
      tags:
      - Triggers
      summary: Delete backfill for given triggers asynchronously
      operationId: deleteBackfillByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/TriggerController.ApiTriggerId'
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '200':
          description: deleteBackfillByIds 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/backfill/pause:
    put:
      tags:
      - Triggers
      summary: Pause a backfill
      operationId: pauseBackfill
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TriggerController.ApiTriggerId'
        required: true
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTriggerState'
        '409':
          description: If the backfill cannot be paused
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/backfill/pause/by-query:
    post:
      tags:
      - Triggers
      summary: Pause backfill for triggers matching query asynchronously
      operationId: pauseBackfillByQuery
      parameters:
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[flowId][EQUALS]=hello-world`, `filters[namespace][CONTAINS]=test`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '200':
          description: pauseBackfillByQuery 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/backfill/pause/by-triggers:
    post:
      tags:
      - Triggers
      summary: Pause backfill for given triggers asynchronously
      operationId: pauseBackfillByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/TriggerController.ApiTriggerId'
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '200':
          description: pauseBackfillByIds 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/backfill/unpause:
    put:
      tags:
      - Triggers
      summary: Unpause a backfill
      operationId: unpauseBackfill
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TriggerController.ApiTriggerId'
        required: true
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTriggerState'
        '409':
          description: If the backfill cannot be resumed
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/backfill/unpause/by-query:
    post:
      tags:
      - Triggers
      summary: Unpause backfill for triggers matching query asynchronously
      operationId: unpauseBackfillByQuery
      parameters:
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[flowId][EQUALS]=hello-world`, `filters[namespace][CONTAINS]=test`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '200':
          description: unpauseBackfillByQuery 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/backfill/unpause/by-triggers:
    post:
      tags:
      - Triggers
      summary: Unpause backfill for given triggers asynchronously
      operationId: unpauseBackfillByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/TriggerController.ApiTriggerId'
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '200':
          description: unpauseBackfillByIds 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/delete/by-query:
    delete:
      tags:
      - Triggers
      summary: Delete triggers by query parameters asynchronously
      operationId: deleteTriggersByQuery
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                filters:
                  type: array
                  description: 'Filters. PHP-style nested query is used - examples: `filters[flowId][EQUALS]=hello-world`, `filters[namespace][CONTAINS]=test`'
                  items:
                    $ref: '#/components/schemas/QueryFilter'
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '200':
          description: deleteTriggersByQuery 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/delete/by-triggers:
    delete:
      tags:
      - Triggers
      summary: Delete given triggers asynchronously
      operationId: deleteTriggersByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/TriggerController.ApiTriggerId'
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '200':
          description: deleteTriggersByIds 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/export/by-query/csv:
    get:
      tags:
      - Triggers
      summary: Export all triggers as a streamed CSV file
      operationId: exportTriggers
      parameters:
      - name: filters
        in: query
        description: A list of filters
        required: true
        explode: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Ok
          content:
            text/csv:
              schema:
                type: string
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/search:
    get:
      tags:
      - Triggers
      summary: Search for triggers
      operationId: searchTriggers
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
        examples:
          Sort by next evaluation date in ascending order:
            value: nextEvaluationDate:asc
          Sort by trigger ID in descending order:
            value: triggerId:desc
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[flowId][EQUALS]=hello-world`, `filters[namespace][CONTAINS]=test`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: dateFilter
        in: query
        description: Which trigger date field the time interval is applied to
        explode: false
        schema:
          type: string
          nullable: true
          enum:
          - NEXT_EXECUTION_DATE
          - LAST_TRIGGERED_DATE
          x-enum-varnames:
          - QUERY
          - SCOPE
          - NAMESPACE
          - KIND
          - POLICY_SCOPE
          - ENFORCEMENT
          - LABELS
          - TAGS
          - METADATA
          - FLOW_ID
          - FLOW_REVISION
          - ID
          - ASSET_ID
          - TYPE
          - ACTION
          - CREATED
          - UPDATED
          - START_DATE
          - END_DATE
          - EXPIRATION_DATE
          - STATE
          - STATUS
          - SEVERITY
          - ASSIGNEE
          - EMAIL
          - TIME_RANGE
          - PARENT_ID
          - TRIGGER_EXECUTION_ID
          - TRIGGER_ID
          - TRIGGER_STATE
          - EXECUTION_ID
          - TASK_ID
          - TASK_RUN_ID
          - ATTEMPT_NUMBER
          - CHILD_FILTER
          - WORKER_ID
          - EXISTING_ONLY
          - USER_ID
          - RESOURCES
          - DETAILS
          - LEVEL
          - PATH
          - PARENT_PATH
          - VERSION
          - ENABLED
          - USERNAME
          - NAME
          - GROUP
          - EXTERNAL_ID
          - EXPIRED_AT
          - INSTANCE_OWNER
          - SOURCE
          - LOCKED
          - LAST_TRIGGERED_DATE
          - NEXT_EXECUTION_DATE
          - ARTIFACT_ID
          x-type: String
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchTriggers 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_ApiTriggerAndState_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/set-disabled:
    put:
      tags:
      - Triggers
      summary: Disable/enable a trigger
      operationId: disableTriggerById
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TriggerController.ApiDisableTriggerRequest'
        required: true
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTriggerState'
        '409':
          description: If the trigger state cannot be changed
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/set-disabled/by-query:
    post:
      tags:
      - Triggers
      summary: Disable/enable triggers by query parameters asynchronously
      operationId: disabledTriggersByQuery
      parameters:
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[flowId][EQUALS]=hello-world`, `filters[namespace][CONTAINS]=test`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: disabled
        in: query
        description: The disabled state
        explode: false
        schema:
          type: boolean
          default: true
      - name: recoverMissedSchedules
        in: query
        description: When true, missed schedules are recovered on enable according to the trigger's recoverMissedSchedules configuration; omitted or false, missed schedules are skipped
        explode: false
        schema:
          type: boolean
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '200':
          description: disabledTriggersByQuery 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/set-disabled/by-triggers:
    post:
      tags:
      - Triggers
      summary: Disable/enable given triggers asynchronously
      operationId: disabledTriggersByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TriggerController.SetDisabledRequest'
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '200':
          description: disabledTriggersByIds 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/unlock/by-query:
    post:
      tags:
      - Triggers
      summary: Unlock triggers by query parameters asynchronously
      operationId: unlockTriggersByQuery
      parameters:
      - name: filters
        in: query
        description: 'Filters. PHP-style nested query is used - examples: `filters[flowId][EQUALS]=hello-world`, `filters[namespace][CONTAINS]=test`'
        explode: false
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QueryFilter'
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '200':
          description: unlockTriggersByQuery 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/unlock/by-triggers:
    post:
      tags:
      - Triggers
      summary: Unlock given triggers asynchronously
      operationId: unlockTriggersByIds
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/TriggerController.ApiTriggerId'
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '200':
          description: unlockTriggersByIds 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAsyncOperationResponse'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/{namespace}/{flowId}:
    get:
      tags:
      - Triggers
      summary: Get all triggers for a flow
      operationId: searchTriggersForFlow
      parameters:
      - name: page
        in: query
        description: The current page
        explode: false
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        description: The current page size
        explode: false
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: sort
        in: query
        description: The sort of current page
        explode: false
        schema:
          type: array
          nullable: true
          items:
            type: string
      - name: q
        in: query
        description: A string filter
        explode: false
        schema:
          type: string
          nullable: true
      - name: namespace
        in: path
        description: The namespace
        required: true
        schema:
          type: string
          nullable: true
      - name: flowId
        in: path
        description: The flow id
        required: true
        schema:
          type: string
          nullable: true
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: searchTriggersForFlow 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResults_ApiTriggerState_'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/{namespace}/{flowId}/{triggerId}:
    delete:
      tags:
      - Triggers
      summary: Delete a trigger
      operationId: deleteTrigger
      parameters:
      - name: namespace
        in: path
        description: The namespace
        required: true
        schema:
          type: string
      - name: flowId
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: triggerId
        in: path
        description: The trigger id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: On success
        '409':
          description: If the trigger cannot be deleted
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '200':
          description: deleteTrigger 200 response
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/{namespace}/{flowId}/{triggerId}/restart:
    post:
      tags:
      - Triggers
      summary: Restart a trigger
      operationId: restartTrigger
      parameters:
      - name: namespace
        in: path
        description: The namespace
        required: true
        schema:
          type: string
      - name: flowId
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: triggerId
        in: path
        description: The trigger id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTriggerState'
        '409':
          description: If the trigger cannot be restarted
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/triggers/{namespace}/{flowId}/{triggerId}/unlock:
    post:
      tags:
      - Triggers
      summary: Unlock a trigger
      operationId: unlockTrigger
      parameters:
      - name: namespace
        in: path
        description: The namespace
        required: true
        schema:
          type: string
      - name: flowId
        in: path
        description: The flow id
        required: true
        schema:
          type: string
      - name: triggerId
        in: path
        description: The trigger id
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: On success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTriggerState'
        '409':
          description: If the trigger is already unlocked or is a realtime trigger
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/usages:
    get:
      tags:
      - Misc
      summary: Retrieve usage information for the current tenant
      operationId: tenantUsage
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: tenantUsage 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsageEE'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/usages/all:
    get:
      tags:
      - Misc
      summary: Retrieve instance usage information
      operationId: getUsages
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getUsages 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsageEE'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/users/{id}/groups:
    put:
      tags:
      - Users
      summary: Update the list of groups a user belongs to for the given tenant
      operationId: updateUserGroups
      parameters:
      - name: id
        in: path
        description: The user ID
        required: true
        schema:
          type: string
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IAMUserGroupController.ApiUpdateUserGroupsRequest'
        required: true
      responses:
        '204':
          description: User's groups successfully updated
        '404':
          description: User or one of the groups not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '400':
          description: Invalid request payload
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /api/v1/{tenant}/worker-selectors/tags:
    get:
      tags:
      - Misc
      summary: List worker-selector tags available to the current tenant
      operationId: workerSelectorTags
      parameters:
      - name: tenant
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: workerSelectorTags 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MiscController.WorkerSelectorTags'
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
      security:
      - bearerAuth: []
      - basicAuth: []
  /login:
    post:
      tags:
      - login
      operationId: login_1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UsernamePasswordCredentials'
        required: true
      responses:
        '200':
          description: login_1 200 response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Authentication required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: Access denied
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
components:
  schemas:
    AbstractFilter.FilterType:
      type: string
      enum:
      - CONTAINS
      - ENDS_WITH
      - EQUAL_TO
      - GREATER_THAN
      - GREATER_THAN_OR_EQUAL_TO
      - IN
      - IS_FALSE
      - IS_NOT_NULL
      - IS_NULL
      - IS_TRUE
      - LESS_THAN
      - LESS_THAN_OR_EQUAL_TO
      - NOT_CONTAINS
      - NOT_EQUAL_TO
      - NOT_IN
      - OR
      - REGEX
      - STARTS_WITH
      - PREFIX
    AbstractFlow:
      required:
      - deleted
      - disabled
      - draft
      - id
      - namespace
      type: object
      properties:
        id:
          maxLength: 100
          minLength: 1
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9._-]*
          type: string
        namespace:
          maxLength: 150
          minLength: 1
          pattern: ^[a-z0-9][a-z0-9._-]*
          type: string
        revision:
          minimum: 1
          type: integer
          format: int32
        updated:
          type: string
          description: The timestamp when this revision was created or last updated.
          format: date-time
        description:
          type: string
        inputs:
          type: array
          items:
            $ref: '#/components/schemas/Input_Object_'
        outputs:
          type: array
          items:
            $ref: '#/components/schemas/Output'
        disabled:
          title: Whether the flow is disabled.
          type: boolean
          description: 'A disabled flow does not run: its triggers are paused and new executions are rejected.'
        draft:
          type: boolean
          description: Whether this flow revision is a draft. Draft revisions are skipped when an execution starts without an explicit revision (webhooks, schedules, subflows, manual triggers). Executions can still target a draft by passing the revision explicitly.
        labels:
          description: Labels as a list of Label (key/value pairs) or as a map of string to string.
          oneOf:
          - $ref: '#/components/schemas/Map_Object.Object_'
        variables:
          type: object
        workerSelector:
          description: Routing requirements (tags + fallback) for this flow.
          allOf:
          - $ref: '#/components/schemas/WorkerSelector'
        deleted:
          type: boolean
    AbstractGraph:
      type: object
      properties:
        uid:
          type: string
        type:
          type: string
        branchType:
          $ref: '#/components/schemas/AbstractGraph.BranchType'
    AbstractGraph.BranchType:
      type: string
      enum:
      - ERROR
      - FINALLY
      - AFTER_EXECUTION
    AbstractTrigger:
      required:
      - id
      - type
      - when
      type: object
      properties:
        id:
          title: A unique ID for the whole flow.
          maxLength: 256
          minLength: 1
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]*
          type: string
          x-size-message: Trigger id must be at most 256 characters
        type:
          title: The class name for this current trigger.
          minLength: 1
          pattern: ^[A-Za-z_$][A-Za-z0-9_$]*(\.[A-Za-z_$][A-Za-z0-9_$]*)*$
          type: string
        version:
          title: Plugin Version
          type: string
          description: |
            Defines the version of the plugin to use.

            The version must follow the Semantic Versioning (SemVer) specification:
              - A single-digit MAJOR version (e.g., `1`).
              - A MAJOR.MINOR version (e.g., `1.1`).
              - A MAJOR.MINOR.PATCH version, optionally with any qualifier
                (e.g., `1.1.2`, `1.1.0-SNAPSHOT`).
        description:
          type: string
        when:
          title: A condition that determines whether the trigger should run.
          type: string
          description: A Pebble expression evaluated at trigger time. The trigger fires only when the expression evaluates to a truthy value (`true`, a non-empty string, a non-zero number). Use this to gate trigger execution on dynamic runtime values such as execution labels, flow variables, or environment conditions.
        disabled:
          type: boolean
          default: false
        workerSelector:
          description: Routing requirements (tags + fallback) for this trigger.
          allOf:
          - $ref: '#/components/schemas/WorkerSelector'
        policyRefs:
          type: array
          description: 'Identifiers of `enforcement: REFERENCE` governance policies to attach to this trigger and everything nested under it (Enterprise Edition; ignored in the open-source edition).'
          items:
            type: string
        logLevel:
          $ref: '#/components/schemas/Level'
        labels:
          title: The labels to pass to the execution created.
          description: Label values are dynamic and can reference trigger variables.
          oneOf:
          - type: array
          - $ref: '#/components/schemas/Map_Object.Object_'
        stopAfter:
          title: List of execution states after which a trigger should be stopped (a.k.a. disabled).
          type: array
          items:
            $ref: '#/components/schemas/State.Type'
        logToFile:
          type: boolean
        failOnTriggerError:
          type: boolean
        allowConcurrent:
          title: Specifies whether a trigger is allowed to start a new execution even if a previous run is still in progress.
          type: boolean
        assets:
          $ref: '#/components/schemas/AssetsDeclaration'
    AbstractTriggerForExecution:
      required:
      - id
      - type
      type: object
      properties:
        id:
          title: A unique ID for the whole flow.
          minLength: 1
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]*
          type: string
        type:
          title: The class name for this current trigger.
          minLength: 1
          pattern: ^[A-Za-z_$][A-Za-z0-9_$]*(\.[A-Za-z_$][A-Za-z0-9_$]*)*$
          type: string
        version:
          title: Plugin Version
          type: string
          description: |
            Defines the version of the plugin to use.

            The version must follow the Semantic Versioning (SemVer) specification:
              - A single-digit MAJOR version (e.g., `1`).
              - A MAJOR.MINOR version (e.g., `1.1`).
              - A MAJOR.MINOR.PATCH version, optionally with any qualifier
                (e.g., `1.1.2`, `1.1.0-SNAPSHOT`).
    AbstractUser:
      required:
      - email
      - type
      - username
      type: object
      properties:
        type:
          $ref: '#/components/schemas/UserType'
        groupList:
          type: array
          items:
            $ref: '#/components/schemas/GroupIdentifier'
        groups:
          type: array
          items:
            type: object
        username:
          type: string
        email:
          pattern: ^$|^[a-zA-Z0-9_!#$%&’*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$
          type: string
        instanceOwner:
          type: boolean
        id:
          type: string
        name:
          type: string
        description:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        providers:
          type: array
          items:
            $ref: '#/components/schemas/AbstractUser.TenantIdentityProvider'
    AbstractUser.TenantIdentityProvider:
      type: object
      allOf:
      - $ref: '#/components/schemas/IdentityProvider'
      - type: object
        properties:
          tenantId:
            type: string
            nullable: true
    Action:
      type: string
      enum:
      - VIEW
      - LIST
      - CREATE
      - UPDATE
      - DELETE
      - EXECUTE
      - RESTART
      - KILL
      - REPLAY
      - PAUSE
      - RESUME
      - UNQUEUE
      - FORCE_RUN
      - FOLLOW
      - TEMPLATE
      - CHANGE_LABELS
      - ACCESS_LOGS
      - ACCESS_OUTPUTS
      - ACCESS_FILES
      - EXPORT
      - IMPORT
      - DISABLE
      - ENABLE
      - VALIDATE
      - UNLOCK
      - LOCK
      - BACKFILL
      - PROMOTE
      - MANAGE_FILES
      - MANAGE_MEMBERS
      - MANAGE_GROUP_MEMBERSHIP
      - USE
      - IMPERSONATE
      - UNKNOWN
    AgentMessageRole:
      type: string
      enum:
      - USER
      - ASSISTANT
      - TOOL
      - SYSTEM
    AgentMessageType:
      type: string
      enum:
      - TEXT
      - TOOL_CALL
      - TOOL_RESULT
      - PROPOSED_ACTION
      - ARTEFACT_DRAFT
      - CANCELLED
    AgentMode:
      type: string
      enum:
      - ASK
      - PLAN
      - EDIT
    AgentThinking:
      type: object
      properties:
        text:
          type: string
          nullable: true
        signature:
          type: string
          nullable: true
        redacted:
          type: array
          nullable: true
          items:
            type: string
    AgentThreadStatus:
      type: string
      enum:
      - IDLE
      - RUNNING
      - AWAITING_CONFIRMATION
    AgentToolCall:
      type: object
      properties:
        id:
          type: string
          nullable: true
        kind:
          $ref: '#/components/schemas/AgentToolCall.Kind'
        tool:
          type: string
        family:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/AgentToolFamily'
        arguments:
          type: object
          additionalProperties:
            type: object
        thinking:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/AgentThinking'
    AgentToolCall.Kind:
      type: string
      enum:
      - PLATFORM
      - AUTHORING
    AgentToolFamily:
      type: string
      enum:
      - READ
      - MUTATE
      - ACT
    AiController.AiProviderResponse:
      type: object
      properties:
        id:
          type: string
        displayName:
          type: string
        isDefault:
          type: boolean
    AiController.DashboardGenerationPrompt:
      type: object
      allOf:
      - $ref: '#/components/schemas/DashboardGenerationPrompt'
      - type: object
        properties:
          providerId:
            type: string
    AiController.FlowGenerationPrompt:
      type: object
      allOf:
      - $ref: '#/components/schemas/FlowGenerationPrompt'
      - type: object
        properties:
          providerId:
            type: string
    ApiAsyncOperationResponse:
      type: object
      properties:
        operationId:
          type: string
          description: The operation identifier used to correlate logs and progress indicators
        totalItems:
          type: integer
          description: The number of domain events submitted for asynchronous processing
          format: int32
    ApiAuth:
      type: object
      properties:
        uid:
          type: string
        type:
          type: string
        name:
          type: string
    ApiAutocomplete:
      type: object
      properties:
        q:
          type: string
          nullable: true
        ids:
          type: array
          nullable: true
          items:
            type: string
        existingOnly:
          type: boolean
    ApiChatTurnRequest:
      type: object
      properties:
        prompt:
          type: string
        mode:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/AgentMode'
        additionalContext:
          type: object
          additionalProperties:
            type: object
          nullable: true
        providerId:
          type: string
          nullable: true
    ApiConfirmActionRequest:
      type: object
      properties:
        confirmationId:
          type: string
        decision:
          $ref: '#/components/schemas/ApiDecision'
        reason:
          type: string
          nullable: true
        providerId:
          type: string
          nullable: true
    ApiCreateCredentialRequest:
      title: Create Credential Request
      type: object
      description: Request to create a new credential. Use 'type' field to specify credential type.
      discriminator:
        propertyName: type
        mapping:
          OAUTH2: '#/components/schemas/ApiCreateCredentialRequest.ApiCreateOAuth2CredentialRequest'
          GITHUB_APP: '#/components/schemas/ApiCreateCredentialRequest.ApiCreateGitHubAppCredentialRequest'
      oneOf:
      - $ref: '#/components/schemas/ApiCreateCredentialRequest.ApiCreateOAuth2CredentialRequest'
      - $ref: '#/components/schemas/ApiCreateCredentialRequest.ApiCreateGitHubAppCredentialRequest'
    ApiCreateCredentialRequest.ApiCreateGitHubAppCredentialRequest:
      title: Create GitHub App Credential Request
      required:
      - authConfig
      - name
      - type
      type: object
      properties:
        type:
          description: Credential type discriminator
          example: github_app
          allOf:
          - $ref: '#/components/schemas/CredentialType'
        name:
          type: string
          description: Credential name
          example: github-app-prod
        description:
          type: string
          description: Credential description
        namespace:
          type: string
          description: Namespace (null for tenant-level)
        tokenCaching:
          description: Token caching configuration
          allOf:
          - $ref: '#/components/schemas/TokenCacheConfig'
        authConfig:
          description: GitHub App authentication configuration
          allOf:
          - $ref: '#/components/schemas/GithubAppConfig'
      description: Request to create a new GitHub App credential.
    ApiCreateCredentialRequest.ApiCreateOAuth2CredentialRequest:
      title: Create OAuth2 Credential Request
      required:
      - authConfig
      - name
      - tokenEndpoint
      - type
      type: object
      properties:
        type:
          description: Credential type discriminator
          example: oauth2
          allOf:
          - $ref: '#/components/schemas/CredentialType'
        name:
          type: string
          description: Credential name
          example: salesforce-prod
        description:
          type: string
          description: Credential description
        namespace:
          type: string
          description: Namespace (null for tenant-level)
        tokenEndpoint:
          type: string
          description: OAuth2 token endpoint URL
          example: https://login.salesforce.com/services/oauth2/token
        scopes:
          type: array
          description: OAuth2 scopes
          items:
            type: string
        audience:
          type: string
          description: OAuth2 audience
        tokenCaching:
          description: Token caching configuration
          allOf:
          - $ref: '#/components/schemas/TokenCacheConfig'
        authConfig:
          description: OAuth2 authentication configuration
          allOf:
          - $ref: '#/components/schemas/OAuth2Config'
      description: Request to create a new OAuth2 credential.
    ApiCreatePromotionTargetRequest:
      title: Create Promotion Target Request
      required:
      - connectionMode
      - name
      - targetTenant
      - url
      type: object
      properties:
        name:
          minLength: 1
          type: string
          description: The promotion target name
          example: production
        description:
          type: string
          description: The promotion target description
        disabled:
          type: boolean
          description: Whether the target is disabled
        url:
          minLength: 1
          type: string
          description: Base URL of the remote Kestra instance
          example: https://prod.kestra.company.com
        targetTenant:
          minLength: 1
          type: string
          description: The tenant on the target instance
        connectionMode:
          description: Connection mode (SERVER or CLIENT)
          allOf:
          - $ref: '#/components/schemas/ConnectionMode'
        apiToken:
          type: string
          description: Service-account API token used by the backend (SERVER mode only, encrypted at rest, never returned; CLIENT-mode targets must not carry one)
        gate:
          type: boolean
          description: Whether promotions to this target require confirmation
      description: Request to create a new PromotionTarget.
    ApiCreateThreadRequest:
      type: object
      properties:
        mode:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/AgentMode'
        title:
          type: string
          nullable: true
    ApiCredentialResponse:
      title: Credential Response
      type: object
      description: Response containing credential details. Use 'type' field to determine credential type.
      discriminator:
        propertyName: type
        mapping:
          OAUTH2: '#/components/schemas/ApiCredentialResponse.ApiOAuth2CredentialResponse'
          GITHUB_APP: '#/components/schemas/ApiCredentialResponse.ApiGitHubAppCredentialResponse'
      oneOf:
      - $ref: '#/components/schemas/ApiCredentialResponse.ApiOAuth2CredentialResponse'
      - $ref: '#/components/schemas/ApiCredentialResponse.ApiGitHubAppCredentialResponse'
    ApiCredentialResponse.ApiGitHubAppCredentialResponse:
      title: GitHub App Credential Response
      type: object
      properties:
        type:
          description: Credential type
          allOf:
          - $ref: '#/components/schemas/CredentialType'
        id:
          type: string
          description: Credential ID
        name:
          type: string
          description: Credential name
        description:
          type: string
          description: Credential description
        namespace:
          type: string
          description: Namespace
        tenantId:
          type: string
          description: Tenant ID
        tokenCaching:
          description: Token caching configuration
          allOf:
          - $ref: '#/components/schemas/TokenCacheConfig'
        authConfig:
          description: GitHub App authentication configuration (sensitive fields masked)
          allOf:
          - $ref: '#/components/schemas/GithubAppConfig'
        createdAt:
          type: string
          description: Created timestamp
          format: date-time
        updatedAt:
          type: string
          description: Updated timestamp
          format: date-time
      description: Response containing GitHub App credential details.
    ApiCredentialResponse.ApiOAuth2CredentialResponse:
      title: OAuth2 Credential Response
      type: object
      properties:
        type:
          description: Credential type
          allOf:
          - $ref: '#/components/schemas/CredentialType'
        id:
          type: string
          description: Credential ID
        name:
          type: string
          description: Credential name
        description:
          type: string
          description: Credential description
        namespace:
          type: string
          description: Namespace
        tenantId:
          type: string
          description: Tenant ID
        tokenEndpoint:
          type: string
          description: OAuth2 token endpoint URL
        scopes:
          type: array
          description: OAuth2 scopes
          items:
            type: string
        audience:
          type: string
          description: OAuth2 audience
        tokenCaching:
          description: Token caching configuration
          allOf:
          - $ref: '#/components/schemas/TokenCacheConfig'
        authConfig:
          description: OAuth2 authentication configuration (sensitive fields masked)
          allOf:
          - $ref: '#/components/schemas/OAuth2Config'
        createdAt:
          type: string
          description: Created timestamp
          format: date-time
        updatedAt:
          type: string
          description: Updated timestamp
          format: date-time
      description: Response containing OAuth2 credential details.
    ApiDecision:
      type: string
      enum:
      - APPROVE
      - REJECT
    ApiExecution:
      required:
      - flowId
      - flowRevision
      - id
      - metadata
      - namespace
      - originalId
      - state
      - tenantId
      type: object
      properties:
        tenantId:
          type: string
        id:
          type: string
        namespace:
          type: string
        flowId:
          type: string
        flowRevision:
          type: integer
          format: int32
        taskRunList:
          type: array
          items:
            $ref: '#/components/schemas/ApiTaskRun'
        inputs:
          type: object
          additionalProperties:
            type: object
        labels:
          type: array
          items:
            $ref: '#/components/schemas/Label'
        variables:
          type: object
          additionalProperties:
            type: object
        state:
          $ref: '#/components/schemas/State'
        parentId:
          type: string
        originalId:
          type: string
        trigger:
          $ref: '#/components/schemas/ExecutionTrigger'
        metadata:
          $ref: '#/components/schemas/ExecutionMetadata'
        scheduleDate:
          type: string
          format: date-time
        traceParent:
          type: string
        fixtures:
          type: array
          items:
            $ref: '#/components/schemas/TaskFixture'
        kind:
          $ref: '#/components/schemas/ExecutionKind'
        breakpoints:
          type: array
          items:
            $ref: '#/components/schemas/Breakpoint'
        loopRun:
          $ref: '#/components/schemas/LoopRun'
    ApiFlowHashBatch.Ref:
      title: Flow Reference
      type: object
      properties:
        namespace:
          type: string
          description: The flow namespace
        flowId:
          type: string
          description: The flow id
    ApiFlowHashBatch.Request:
      title: Flow Hash Batch Request
      required:
      - flows
      type: object
      properties:
        flows:
          maxItems: 100
          type: array
          description: The flows to fetch hashes for (max 100 per request)
          items:
            $ref: '#/components/schemas/ApiFlowHashBatch.Ref'
    ApiFlowHashBatch.Response:
      title: Flow Hash Batch Response
      type: object
      properties:
        results:
          type: array
          description: Per-flow results
          items:
            $ref: '#/components/schemas/ApiFlowHashBatch.Result'
    ApiFlowHashBatch.Result:
      title: Flow Hash Result
      type: object
      properties:
        namespace:
          type: string
          description: The flow namespace
        flowId:
          type: string
          description: The flow id
        hash:
          type: string
          description: The source hash on the target, or null when the flow is absent
        revision:
          type: integer
          description: The flow revision on the target when present
          format: int32
    ApiFlowHashesResponse:
      title: Flow Hashes Response
      type: object
      properties:
        hashes:
          type: array
          description: Per-flow source hashes
          items:
            $ref: '#/components/schemas/ApiFlowHashesResponse.Hash'
      description: Response of the bulk flow-hash endpoint. Wrapped in an object (never a bare array) so the API can evolve backwards-compatibly. One entry per requested flow; `hash`/`revision` are `null` when the flow does not exist on this instance.
    ApiFlowHashesResponse.Hash:
      title: Flow Hash
      type: object
      properties:
        namespace:
          type: string
          description: The flow namespace
        id:
          type: string
          description: The flow id
        hash:
          type: string
          description: The source hash, or null when the flow is absent
        revision:
          type: integer
          description: The flow revision when present
          format: int32
    ApiFlowSourceResponse:
      title: Flow Source Response
      type: object
      properties:
        namespace:
          type: string
          description: The flow namespace
        flowId:
          type: string
          description: The flow id
        source:
          type: string
          description: The raw flow source (YAML)
        revision:
          type: integer
          description: The flow revision on the target
          format: int32
      description: A flow's raw source and revision fetched from a target.
    ApiGroupSummary:
      required:
      - id
      - name
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
          nullable: true
        securityIntegrationName:
          type: string
          nullable: true
    ApiIds:
      type: object
      properties:
        ids:
          type: array
          items:
            type: string
    ApiInheritedCredentialsResponse:
      title: Inherited Credentials Response
      type: object
      properties:
        levels:
          type: array
          description: Inherited credentials grouped by namespace level
          items:
            $ref: '#/components/schemas/ApiInheritedCredentialsResponse.InheritedCredentialLevel'
    ApiInheritedCredentialsResponse.InheritedCredential:
      title: Inherited Credential
      type: object
      properties:
        id:
          type: string
          description: Credential ID
        name:
          type: string
          description: Credential name
        type:
          description: Credential type
          allOf:
          - $ref: '#/components/schemas/CredentialType'
        description:
          type: string
          description: Credential description
    ApiInheritedCredentialsResponse.InheritedCredentialLevel:
      title: Inherited Credential Level
      type: object
      properties:
        namespace:
          type: string
          description: The namespace from which credentials are inherited, or 'tenant' for tenant-level
        credentials:
          type: array
          description: Credentials available at this level
          items:
            $ref: '#/components/schemas/ApiInheritedCredentialsResponse.InheritedCredential'
    ApiInstanceMcpServer:
      type: object
      properties:
        tenantId:
          type: string
          description: Tenant that owns this MCP server.
        id:
          type: string
          description: Unique identifier of the MCP server.
        description:
          type: string
          description: Human-readable description of the MCP server.
        serverType:
          description: Visibility of the server.
          allOf:
          - $ref: '#/components/schemas/McpServer.ServerType'
        authType:
          description: Authentication type for private servers.
          allOf:
          - $ref: '#/components/schemas/McpServer.AuthType'
        disabled:
          type: boolean
          description: Whether the MCP server is disabled.
        isDefault:
          type: boolean
          description: Whether this is the default MCP server.
          readOnly: true
        created:
          type: string
          description: Timestamp when the server was created.
          format: date-time
          readOnly: true
        updated:
          type: string
          description: Timestamp when the server was last updated.
          format: date-time
          readOnly: true
      description: Instance-scoped API DTO for MCP servers, extending io.kestra.webserver.models.api.ApiMcpServer with a `tenantId` field so instance owners can identify which tenant owns each server.
    ApiLightExecution:
      required:
      - flowId
      - flowRevision
      - id
      - namespace
      - originalId
      - state
      - tenantId
      type: object
      properties:
        tenantId:
          type: string
        id:
          type: string
        namespace:
          type: string
        flowId:
          type: string
        flowRevision:
          type: integer
          format: int32
        inputs:
          type: object
          additionalProperties:
            type: object
        labels:
          type: array
          items:
            $ref: '#/components/schemas/Label'
        state:
          $ref: '#/components/schemas/State'
        parentId:
          type: string
        originalId:
          type: string
        trigger:
          $ref: '#/components/schemas/ExecutionTrigger'
        scheduleDate:
          type: string
          format: date-time
        kind:
          $ref: '#/components/schemas/ExecutionKind'
        loopRun:
          $ref: '#/components/schemas/LoopRun'
    ApiMcpServer:
      required:
      - id
      type: object
      properties:
        id:
          minLength: 1
          pattern: ^[a-z0-9][a-z0-9_-]*
          type: string
          description: Unique identifier of the MCP server.
        description:
          type: string
          description: Human-readable description of the MCP server.
        instructions:
          type: string
          description: Instructions sent to the AI model when using this server.
        serverType:
          description: Visibility of the server.
          allOf:
          - $ref: '#/components/schemas/McpServer.ServerType'
        authType:
          description: Authentication type for private servers.
          allOf:
          - $ref: '#/components/schemas/McpServer.AuthType'
        oauthProvider:
          type: string
          description: OAuth provider key from micronaut.security.oauth2.clients. Required when authType is OAUTH.
        oauthScopesSupported:
          type: array
          description: Scopes advertised in the server's RFC 9728 Protected Resource Metadata document. Only meaningful when authType is OAUTH. When null or empty the field is omitted from the PRM document.
          items:
            type: string
        disabled:
          type: boolean
          description: Whether the MCP server is disabled.
        isDefault:
          type: boolean
          description: Whether this is the default MCP server, auto-provisioned per tenant.
          readOnly: true
        created:
          type: string
          description: Timestamp when the server was created.
          format: date-time
          readOnly: true
        updated:
          type: string
          description: Timestamp when the server was last updated.
          format: date-time
          readOnly: true
    ApiMessageView:
      type: object
      properties:
        uid:
          type: string
        role:
          $ref: '#/components/schemas/AgentMessageRole'
        type:
          $ref: '#/components/schemas/AgentMessageType'
        content:
          type: string
          nullable: true
        toolCall:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/AgentToolCall'
        toolResult:
          type: object
          additionalProperties:
            type: object
          nullable: true
        draft:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ArtefactDraft'
        createdAt:
          type: string
          format: date-time
    ApiPatchInstanceOwnerRequest:
      required:
      - instanceOwner
      type: object
      properties:
        instanceOwner:
          type: boolean
    ApiPatchSuperAdminRequest:
      type: object
      properties:
        instanceOwner:
          type: boolean
        superAdmin:
          type: boolean
      description: |-
        Request body for the deprecated `/superadmin` endpoints, kept for backward-compatibility. It accepts both the current `instanceOwner` field and the legacy `superAdmin` field.


        The legacy field cannot be expressed as a `@JsonAlias` on ApiPatchInstanceOwnerRequest
        because Micronaut's `BeanIntrospectionModule` does not honor Jackson aliases when binding an
        HTTP request body, so it must be bound as its own property and merged in #resolveInstanceOwner().
    ApiPolicyEvaluation.Counts:
      type: object
      properties:
        scanned:
          title: The number of resources evaluated (unparseable sources are skipped).
          type: integer
          format: int64
        mutated:
          title: The number of resources the policy would change.
          type: integer
          format: int64
        violating:
          title: The number of resources with at least one rule violation.
          type: integer
          format: int64
        conflicting:
          title: The number of resources with at least one Add-vs-Delete conflict.
          type: integer
          format: int64
      description: Aggregate counters of a policy dry-run.
    ApiPolicyEvaluation.Resource:
      type: object
      properties:
        kind:
          title: The kind of resource; currently always 'flow'.
          type: string
        namespace:
          title: The namespace of the resource.
          type: string
        id:
          title: The id of the resource.
          type: string
      description: The identity of a resource affected by the evaluated policy.
    ApiPolicyImportResult.Error:
      type: object
      properties:
        document:
          type: string
        message:
          type: string
    ApiPolicyMutation.Action:
      type: string
      description: The kind of change a policy made to a property.
      enum:
      - ADDED
      - REPLACED
      - REMOVED
    ApiPromote.BatchRequest:
      title: Batch Promote Request
      required:
      - flows
      - targetIds
      type: object
      properties:
        flows:
          maxItems: 100
          minItems: 1
          type: array
          description: The flows to promote (max 100 per request)
          items:
            $ref: '#/components/schemas/IdWithNamespace'
        targetIds:
          minItems: 1
          type: array
          description: The ids of the targets to promote every flow to
          items:
            type: string
        confirmed:
          type: boolean
          description: Confirmation for gated targets
    ApiPromote.BatchResponse:
      title: Batch Promote Response
      type: object
      properties:
        results:
          type: array
          description: Per-flow results, in request order
          items:
            $ref: '#/components/schemas/ApiPromote.FlowResult'
    ApiPromote.FlowResult:
      title: Batch Promote Flow Result
      type: object
      properties:
        namespace:
          type: string
          description: The flow namespace
        flowId:
          type: string
          description: The flow id
        sourceRevision:
          type: integer
          description: The promoted source revision (null when the flow could not be read)
          format: int32
        error:
          type: string
          description: Why the flow itself could not be promoted (null when it was attempted)
        results:
          type: array
          description: Per-target results (empty when the flow could not be read)
          items:
            $ref: '#/components/schemas/ApiPromote.Result'
    ApiPromote.Request:
      title: Promote Request
      required:
      - sourceRevision
      - targets
      type: object
      properties:
        sourceRevision:
          type: integer
          description: The source revision to promote (must be the latest)
          format: int32
        targets:
          minItems: 1
          type: array
          description: The targets to promote to
          items:
            $ref: '#/components/schemas/ApiPromote.Target'
        confirmed:
          type: boolean
          description: Confirmation for gated targets
    ApiPromote.Response:
      title: Promote Response
      type: object
      properties:
        results:
          type: array
          description: Per-target results
          items:
            $ref: '#/components/schemas/ApiPromote.Result'
    ApiPromote.Result:
      title: Promote Result
      type: object
      properties:
        targetId:
          type: string
          description: The promotion target id
        success:
          type: boolean
          description: Whether the promote succeeded
        needsConfirmation:
          type: boolean
          description: The gated target requires confirmation; no promote was attempted or recorded
        state:
          description: The terminal state (null when confirmation is required)
          allOf:
          - $ref: '#/components/schemas/PromotionState'
        promotionId:
          type: string
          description: The promote id (null when confirmation is required)
        resultingTargetRevision:
          type: integer
          description: The revision produced on the target (when successful)
          format: int32
        error:
          type: string
          description: The failure reason (when failed)
    ApiPromote.Target:
      title: Promotion Target
      required:
      - id
      type: object
      properties:
        id:
          minLength: 1
          type: string
          description: The promotion target id
        expectedTargetRevision:
          type: integer
          description: The target revision the diff was reviewed against (null = expected absent)
          format: int32
    ApiPromoteDiffResponse:
      title: Promote Diff Response
      type: object
      properties:
        namespace:
          type: string
          description: The flow namespace
        flowId:
          type: string
          description: The flow id
        sourceRevision:
          type: integer
          description: The promoted source revision
          format: int32
        sourceSource:
          type: string
          description: The source-side flow source at sourceRevision
        targetId:
          type: string
          description: The promotion target id
        mode:
          description: The connection mode of the target
          allOf:
          - $ref: '#/components/schemas/ConnectionMode'
        targetRevision:
          type: integer
          description: The target revision the promote diffed against
          format: int32
        targetSource:
          type: string
          description: The target-side source (SERVER mode only; null for CLIENT)
        clientFetchRequired:
          type: boolean
          description: True when the browser must fetch the target side itself (CLIENT mode)
      description: The two source sides of a past promote, for recomputing its diff on demand. For CLIENT-mode targets `targetSource` is null and `clientFetchRequired` is true --- the browser must fetch the target side itself (the backend cannot reach the target).
    ApiPromoteReportRequest:
      title: Promote Report Request
      required:
      - gateOutcome
      - promotionId
      - state
      - targetId
      type: object
      properties:
        promotionId:
          minLength: 1
          type: string
          description: Client-generated idempotency key for this promote
        targetId:
          minLength: 1
          type: string
          description: The promotion target id
        sourceRevision:
          type: integer
          description: The promoted source revision
          format: int32
        targetRevision:
          type: integer
          description: The target revision before the push (null on first promote)
          format: int32
        resultingTargetRevision:
          type: integer
          description: The revision produced on the target
          format: int32
        gateOutcome:
          description: Gate outcome (NONE or CONFIRMED)
          allOf:
          - $ref: '#/components/schemas/GateOutcome'
        state:
          description: Terminal state (SUCCESS or FAILED)
          allOf:
          - $ref: '#/components/schemas/PromotionState'
      description: A CLIENT-mode promote reported by the browser after it performed the upsert directly against the target. `by` and the timestamp are stamped server-side and never taken from this payload.
    ApiPromotionResponse:
      title: Promotion
      type: object
      properties:
        auditId:
          type: string
          description: The audit-log id of this promotion
        date:
          type: string
          description: When the promotion happened
          format: date-time
        by:
          type: string
          description: Who performed the promotion
        user:
          description: The acting user, when it can still be resolved
          allOf:
          - $ref: '#/components/schemas/ApiUser'
        targetId:
          type: string
          description: The promotion target id
        sourceRevision:
          type: integer
          description: The promoted source revision
          format: int32
        targetRevision:
          type: integer
          description: The target revision before the push
          format: int32
        resultingTargetRevision:
          type: integer
          description: The revision produced on the target
          format: int32
        mode:
          description: Connection mode (SERVER or CLIENT)
          allOf:
          - $ref: '#/components/schemas/ConnectionMode'
        gateOutcome:
          description: Gate outcome
          allOf:
          - $ref: '#/components/schemas/GateOutcome'
        state:
          description: Terminal state
          allOf:
          - $ref: '#/components/schemas/PromotionState'
        error:
          type: string
          description: Failure reason, when failed
      description: A promotion-history item, projected from the underlying `AuditLog` + `PromoteAuditLog`. Target attributes (name/URL) are resolved client-side from `targetId`. `by` always carries the acting user id; `user` carries its display projection when the user can still be resolved (it is null for a deleted user, or when audit logs are not licensed and no user was stamped at all).
    ApiPromotionTargetResponse:
      title: Promotion Target Response
      type: object
      properties:
        id:
          type: string
          description: The promotion target id
        tenantId:
          type: string
          description: The tenant id
        name:
          type: string
          description: The promotion target name
        description:
          type: string
          description: The promotion target description
        disabled:
          type: boolean
          description: Whether the target is disabled
        url:
          type: string
          description: Base URL of the remote Kestra instance
        targetTenant:
          type: string
          description: The tenant on the target instance
        connectionMode:
          description: Connection mode (SERVER or CLIENT)
          allOf:
          - $ref: '#/components/schemas/ConnectionMode'
        gate:
          type: boolean
          description: Whether promotions to this target require confirmation
        createdAt:
          type: string
          description: Created timestamp
          format: date-time
        updatedAt:
          type: string
          description: Updated timestamp
          format: date-time
      description: API response for a PromotionTarget. The stored API token is never returned (a SERVER-mode target always has one, so its presence is implied by the connection mode).
    ApiRenameThreadRequest:
      required:
      - title
      type: object
      properties:
        title:
          minLength: 1
          type: string
    ApiRoleSummary:
      required:
      - id
      - name
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        isDefault:
          type: boolean
        isManaged:
          type: boolean
        permissionCount:
          type: integer
          format: int32
    ApiSecretListResponse_ApiSecretMeta_:
      required:
      - readOnly
      - results
      type: object
      properties:
        readOnly:
          type: boolean
        results:
          type: array
          items:
            $ref: '#/components/schemas/ApiSecretMetaEE'
        total:
          type: integer
          format: int64
    ApiSecretMeta:
      required:
      - key
      type: object
      properties:
        key:
          type: string
    ApiSecretMetaEE:
      required:
      - tags
      type: object
      properties:
        namespace:
          type: string
        description:
          type: string
        tags:
          type: array
          items:
            $ref: '#/components/schemas/ApiSecretTag'
      allOf:
      - $ref: '#/components/schemas/ApiSecretMeta'
    ApiSecretTag:
      required:
      - key
      - value
      type: object
      properties:
        key:
          type: string
        value:
          type: string
    ApiSecretValue:
      required:
      - key
      - value
      type: object
      properties:
        tags:
          type: array
          items:
            $ref: '#/components/schemas/ApiSecretTag'
        key:
          minLength: 1
          type: string
        value:
          minLength: 1
          type: string
        description:
          type: string
    ApiTaskRun:
      required:
      - id
      - state
      - taskId
      type: object
      properties:
        id:
          type: string
        taskId:
          type: string
        parentTaskRunId:
          type: string
        value:
          type: string
        attempts:
          type: array
          items:
            $ref: '#/components/schemas/TaskRunAttempt'
        assetEmits:
          type: array
          items:
            $ref: '#/components/schemas/AssetsInOut'
        state:
          $ref: '#/components/schemas/State'
        iteration:
          type: integer
          format: int32
        dynamic:
          type: boolean
        forceExecution:
          type: boolean
    ApiTenant:
      required:
      - deleted
      type: object
      allOf:
      - $ref: '#/components/schemas/Tenant'
      - type: object
        properties:
          deleted:
            type: boolean
          logo:
            type: string
    ApiTenantSummary:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
    ApiTestConnectionResponse:
      title: Test Connection Response
      type: object
      properties:
        success:
          type: boolean
          description: Whether the connection test succeeded
        message:
          type: string
          description: Result message
      description: Response from testing a credential connection.
    ApiThreadDetail:
      type: object
      properties:
        uid:
          type: string
        title:
          type: string
          nullable: true
        mode:
          $ref: '#/components/schemas/AgentMode'
        status:
          $ref: '#/components/schemas/AgentThreadStatus'
        pendingConfirmationId:
          type: string
          nullable: true
        messages:
          type: array
          items:
            $ref: '#/components/schemas/ApiMessageView'
    ApiThreadSummary:
      type: object
      properties:
        uid:
          type: string
        title:
          type: string
          nullable: true
        mode:
          $ref: '#/components/schemas/AgentMode'
        status:
          $ref: '#/components/schemas/AgentThreadStatus'
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        lastTurnAt:
          type: string
          format: date-time
          nullable: true
    ApiToken:
      required:
      - iat
      - id
      - name
      - prefix
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        prefix:
          type: string
        iat:
          type: string
          format: date-time
        exp:
          type: string
          format: date-time
        lastUsed:
          type: string
          format: date-time
        extended:
          type: boolean
        expired:
          type: boolean
    ApiTokenList:
      required:
      - results
      type: object
      properties:
        total:
          type: integer
          format: int32
        results:
          type: array
          items:
            $ref: '#/components/schemas/ApiToken'
    ApiTriggerAndState:
      required:
      - state
      - trigger
      type: object
      properties:
        trigger:
          $ref: '#/components/schemas/AbstractTrigger'
        state:
          $ref: '#/components/schemas/ApiTriggerState'
    ApiTriggerState:
      required:
      - flowId
      - namespace
      - triggerId
      - updatedAt
      type: object
      properties:
        namespace:
          type: string
        flowId:
          type: string
        triggerId:
          type: string
        updatedAt:
          type: string
          format: date-time
        evaluatedAt:
          type: string
          format: date-time
        nextEvaluationDate:
          type: string
          format: date-time
        backfill:
          $ref: '#/components/schemas/Backfill'
        stopAfter:
          type: array
          items:
            $ref: '#/components/schemas/State.Type'
        disabled:
          type: boolean
        sourceDisabled:
          type: boolean
        locked:
          type: boolean
        workerId:
          type: string
        lastTriggeredDate:
          type: string
          format: date-time
        executionId:
          type: string
        kind:
          $ref: '#/components/schemas/TriggerType'
    ApiUpdateCredentialRequest:
      title: Update Credential Request
      type: object
      description: Request to update an existing credential. Use 'type' field to specify credential type.
      discriminator:
        propertyName: type
        mapping:
          OAUTH2: '#/components/schemas/ApiUpdateCredentialRequest.ApiUpdateOAuth2CredentialRequest'
          GITHUB_APP: '#/components/schemas/ApiUpdateCredentialRequest.ApiUpdateGitHubAppCredentialRequest'
      oneOf:
      - $ref: '#/components/schemas/ApiUpdateCredentialRequest.ApiUpdateOAuth2CredentialRequest'
      - $ref: '#/components/schemas/ApiUpdateCredentialRequest.ApiUpdateGitHubAppCredentialRequest'
    ApiUpdateCredentialRequest.ApiUpdateGitHubAppCredentialRequest:
      title: Update GitHub App Credential Request
      required:
      - type
      type: object
      properties:
        type:
          description: Credential type discriminator
          example: github_app
          allOf:
          - $ref: '#/components/schemas/CredentialType'
        description:
          type: string
          description: Credential description
        tokenCaching:
          description: Token caching configuration
          allOf:
          - $ref: '#/components/schemas/TokenCacheConfig'
        authConfig:
          description: GitHub App authentication configuration
          allOf:
          - $ref: '#/components/schemas/GithubAppConfig'
      description: Request to update an existing GitHub App credential.
    ApiUpdateCredentialRequest.ApiUpdateOAuth2CredentialRequest:
      title: Update OAuth2 Credential Request
      required:
      - type
      type: object
      properties:
        type:
          description: Credential type discriminator
          example: oauth2
          allOf:
          - $ref: '#/components/schemas/CredentialType'
        description:
          type: string
          description: Credential description
        tokenEndpoint:
          type: string
          description: OAuth2 token endpoint URL
        scopes:
          type: array
          description: OAuth2 scopes
          items:
            type: string
        audience:
          type: string
          description: OAuth2 audience
        tokenCaching:
          description: Token caching configuration
          allOf:
          - $ref: '#/components/schemas/TokenCacheConfig'
        authConfig:
          description: OAuth2 authentication configuration
          allOf:
          - $ref: '#/components/schemas/OAuth2Config'
      description: Request to update an existing OAuth2 credential.
    ApiUpdatePromotionTargetRequest:
      title: Update Promotion Target Request
      required:
      - connectionMode
      - name
      - targetTenant
      - url
      type: object
      properties:
        name:
          minLength: 1
          type: string
          description: The promotion target name
        description:
          type: string
          description: The promotion target description
        disabled:
          type: boolean
          description: Whether the target is disabled
        url:
          minLength: 1
          type: string
          description: Base URL of the remote Kestra instance
        targetTenant:
          minLength: 1
          type: string
          description: The tenant on the target instance
        connectionMode:
          description: Connection mode (SERVER or CLIENT)
          allOf:
          - $ref: '#/components/schemas/ConnectionMode'
        apiToken:
          type: string
          description: Service-account API token used by the backend (SERVER mode only; omit to keep the stored token)
        gate:
          type: boolean
          description: Whether promotions to this target require confirmation
      description: |-
        Request to update an existing PromotionTarget.


        `apiToken` may be omitted; the service retains the stored token in that case.
    ApiUser:
      type: object
      allOf:
      - $ref: '#/components/schemas/AbstractUser'
      - type: object
        properties:
          auths:
            type: array
            items:
              $ref: '#/components/schemas/ApiAuth'
    AppGenerationPrompt:
      type: object
      properties:
        conversationId:
          type: string
        userPrompt:
          type: string
        yaml:
          type: string
        providerId:
          type: string
    AppResponse:
      type: object
      properties:
        dispatch:
          type: string
        stream:
          type: string
        layout:
          $ref: '#/components/schemas/AppResponse.UILayout'
    AppResponse.UIBlock:
      type: object
    AppResponse.UILayout:
      type: object
      properties:
        blocks:
          type: array
          items:
            $ref: '#/components/schemas/AppResponse.UIBlock'
    AppsController.ApiApp:
      type: object
      properties:
        uid:
          type: string
        id:
          type: string
        name:
          type: string
        type:
          type: string
        namespace:
          type: string
        flowId:
          type: string
        tags:
          type: array
          items:
            type: string
        enabled:
          type: boolean
        created:
          type: string
          format: date-time
        updated:
          type: string
          format: date-time
    AppsController.ApiAppCatalogItem:
      type: object
      properties:
        uid:
          type: string
        name:
          type: string
        description:
          type: string
        type:
          type: string
        tags:
          type: array
          items:
            type: string
        thumbnail:
          type: string
    AppsController.ApiAppSource:
      type: object
      properties:
        uid:
          type: string
        name:
          type: string
        namespace:
          type: string
        tags:
          type: array
          items:
            type: string
        disabled:
          type: boolean
        source:
          type: string
        created:
          type: string
          format: date-time
        updated:
          type: string
          format: date-time
    AppsController.ApiAppTags:
      type: object
      properties:
        tags:
          type: array
          items:
            type: string
    AppsController.ApiBulkImportResponse:
      type: object
      properties:
        success:
          type: array
          items:
            type: string
        errors:
          type: array
          items:
            $ref: '#/components/schemas/AppsController.ApiBulkImportResponse.Error'
    AppsController.ApiBulkImportResponse.Error:
      type: object
      properties:
        source:
          type: string
        message:
          type: string
    AppsController.ApiBulkOperationRequest:
      type: object
      properties:
        uids:
          type: array
          items:
            type: string
    AppsController.ApiBulkOperationResponse:
      type: object
      properties:
        success:
          type: array
          items:
            type: string
    ArtefactDraft:
      type: object
      properties:
        draftId:
          type: string
        kind:
          $ref: '#/components/schemas/ArtefactKind'
        yaml:
          type: string
        valid:
          type: boolean
        constraints:
          type: string
          nullable: true
    ArtefactKind:
      type: string
      enum:
      - FLOW
      - DASHBOARD
      - APP
    Assertion:
      required:
      - value
      type: object
      properties:
        value:
          $ref: '#/components/schemas/Property_Object_'
        taskId:
          type: string
        errorMessage:
          $ref: '#/components/schemas/Property_String_'
        description:
          $ref: '#/components/schemas/Property_String_'
        endsWith:
          $ref: '#/components/schemas/Property_String_'
        startsWith:
          $ref: '#/components/schemas/Property_String_'
        contains:
          $ref: '#/components/schemas/Property_String_'
        equalTo:
          $ref: '#/components/schemas/Property_Object_'
        notEqualTo:
          $ref: '#/components/schemas/Property_Object_'
        greaterThan:
          $ref: '#/components/schemas/Property_Double_'
        greaterThanOrEqualTo:
          $ref: '#/components/schemas/Property_Double_'
        lessThan:
          $ref: '#/components/schemas/Property_Double_'
        lessThanOrEqualTo:
          $ref: '#/components/schemas/Property_Double_'
        in:
          $ref: '#/components/schemas/Property_List_String__'
        notIn:
          $ref: '#/components/schemas/Property_List_String__'
        isNull:
          $ref: '#/components/schemas/Property_Boolean_'
        isNotNull:
          $ref: '#/components/schemas/Property_Boolean_'
    AssertionResult:
      required:
      - actual
      - expected
      - isSuccess
      - operator
      type: object
      properties:
        operator:
          type: string
        expected:
          type: object
        actual:
          type: object
        isSuccess:
          type: boolean
        taskId:
          type: string
        description:
          type: string
        errorMessage:
          type: string
    AssertionRunError:
      required:
      - message
      type: object
      properties:
        message:
          type: string
        details:
          type: string
    Asset:
      required:
      - id
      - type
      type: object
      properties:
        namespace:
          maxLength: 150
          minLength: 1
          pattern: ^[a-z0-9][a-z0-9._-]*
          type: string
        id:
          maxLength: 150
          minLength: 1
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9._:-]*
          type: string
        type:
          minLength: 1
          type: string
        displayName:
          type: string
        description:
          type: string
        metadata:
          type: object
          additionalProperties:
            type: object
    AssetFailureBehavior:
      type: string
      enum:
      - IGNORE
      - FAIL
      - WARN
    AssetIdentifier:
      required:
      - id
      type: object
      properties:
        id:
          minLength: 1
          type: string
        type:
          type: string
    AssetTopologyGraph:
      type: object
      properties:
        nodes:
          type: array
          items:
            $ref: '#/components/schemas/AssetTopologyGraph.Node'
        edges:
          type: array
          items:
            $ref: '#/components/schemas/AssetTopologyGraph.Edge'
    AssetTopologyGraph.Edge:
      type: object
      properties:
        source:
          type: string
        target:
          type: string
        relation:
          $ref: '#/components/schemas/Relation_1'
    AssetTopologyGraph.Node:
      required:
      - uid
      type: object
      properties:
        uid:
          type: string
        namespace:
          type: string
        id:
          type: string
        type:
          $ref: '#/components/schemas/AssetTopologyGraph.Node.NodeType'
    AssetTopologyGraph.Node.NodeType:
      type: string
      enum:
      - ASSET
      - FLOW
    AssetUsage.Direction:
      type: string
      enum:
      - INPUT
      - OUTPUT
    AssetsController.ApiAsset:
      type: object
      properties:
        namespace:
          type: string
        id:
          type: string
        type:
          type: string
        displayName:
          type: string
        description:
          type: string
        metadata:
          type: object
          additionalProperties:
            type: object
        created:
          type: string
          format: date-time
        updated:
          type: string
          format: date-time
        deleted:
          type: boolean
        lock:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/AssetsController.ApiAssetLock'
    AssetsController.ApiAssetLineageEvent:
      type: object
      properties:
        uid:
          type: string
        namespace:
          type: string
        flowId:
          type: string
        flowRevision:
          type: integer
          format: int32
        executionId:
          type: string
        taskId:
          type: string
        taskRunId:
          type: string
        state:
          type: string
        inputs:
          type: array
          items:
            $ref: '#/components/schemas/AssetIdentifier'
        outputs:
          type: array
          items:
            $ref: '#/components/schemas/AssetIdentifier'
        created:
          type: string
          format: date-time
        startDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
    AssetsController.ApiAssetLock:
      type: object
      properties:
        lockedUntil:
          type: string
          format: date-time
        acquiredAt:
          type: string
          format: date-time
        ownerType:
          type: string
        executionId:
          type: string
        flowId:
          type: string
        flowNamespace:
          type: string
        namespace:
          type: string
        username:
          type: string
    AssetsController.ApiAssetUsage:
      type: object
      properties:
        assetId:
          type: string
        namespace:
          type: string
        flowId:
          type: string
        flowRevision:
          type: integer
          format: int32
        executionId:
          type: string
        taskId:
          type: string
        taskRunId:
          type: string
        direction:
          $ref: '#/components/schemas/AssetUsage.Direction'
        created:
          type: string
          format: date-time
    AssetsController.AssetLockRequest:
      type: object
      properties:
        ttl:
          description: How long the lock is held before it expires.
          allOf:
          - $ref: '#/components/schemas/Duration'
          default: PT5M
        executionId:
          type: string
          nullable: true
        flowId:
          type: string
          nullable: true
        flowNamespace:
          type: string
          nullable: true
        taskRunId:
          type: string
          nullable: true
    AssetsDeclaration:
      type: object
      properties:
        enableAuto:
          description: Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.
          allOf:
          - $ref: '#/components/schemas/Property_Boolean_'
        inputs:
          description: The assets consumed as inputs.
          allOf:
          - $ref: '#/components/schemas/Property_List_AssetIdentifier__'
        outputs:
          description: The assets produced as outputs.
          allOf:
          - $ref: '#/components/schemas/Property_List_Asset__'
        assetFailureBehavior:
          title: Asset failure behavior
          description: 'Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.'
          allOf:
          - $ref: '#/components/schemas/Property_AssetFailureBehavior_'
    AssetsInOut:
      type: object
      properties:
        inputs:
          type: array
          items:
            $ref: '#/components/schemas/AssetIdentifier'
        outputs:
          type: array
          items:
            $ref: '#/components/schemas/Asset'
    AttributeReference:
      type: object
      properties:
        fullAttributeName:
          type: string
        fullyQualifiedAttributeName:
          type: string
        attributeBase:
          type: string
        urn:
          type: string
        attributeName:
          type: string
        subAttributeName:
          type: string
    AuditLog:
      type: object
      allOf:
      - $ref: '#/components/schemas/BaseAuditLog'
      - type: object
        properties:
          appliedPatch:
            type: object
            additionalProperties: true
          revertPatch:
            type: object
            additionalProperties: true
    AuditLogController.ApiAuditLogItem:
      type: object
      properties:
        auditLog:
          $ref: '#/components/schemas/AuditLog'
        user:
          $ref: '#/components/schemas/ApiUser'
    AuditLogController.AuditLogDiff:
      type: object
      properties:
        before:
          type: string
        after:
          type: string
    AuditLogController.AuditLogOption:
      type: object
      properties:
        id:
          type: string
        date:
          type: string
          format: date-time
        username:
          type: string
    AuditLogController.FindRequest:
      type: object
      properties:
        resource:
          $ref: '#/components/schemas/Resource'
        type:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/AuditableAction'
        detail:
          type: object
          additionalProperties:
            type: object
    AuditLogDetail:
      required:
      - type
      type: object
      properties:
        resource:
          $ref: '#/components/schemas/Resource'
        resourceType:
          $ref: '#/components/schemas/Resource'
        type:
          type: string
        id:
          type: string
    AuditableAction:
      type: string
      enum:
      - READ
      - CREATE
      - UPDATE
      - DELETE
      - LOGIN
      - LOGOUT
      - IMPERSONATE
      - LOGIN_FAILURE
      - ACCOUNT_LOCKED
      - PROMOTE
      - UNKNOWN
    AuthController.Auth:
      type: object
      properties:
        loginPassword:
          type: boolean
        mailsEnabled:
          type: boolean
        passwordless:
          type: boolean
        oauths:
          type: array
          items:
            type: string
    AuthController.ForgottenPasswordRequest:
      type: object
      properties:
        username:
          type: string
    AuthController.InvitationUserRequest:
      required:
      - firstName
      - lastName
      type: object
      properties:
        firstName:
          type: string
        lastName:
          type: string
        password:
          type: string
          nullable: true
    AuthController.ResetPasswordRequest:
      type: object
      properties:
        token:
          type: string
        password:
          type: string
    AuthProperty.Type:
      type: string
      enum:
      - VALUE
      - SECRET
    AuthProperty_String_:
      required:
      - type
      type: object
      properties:
        type:
          $ref: '#/components/schemas/AuthProperty.Type'
    AutoAttach:
      type: object
      properties:
        namespace:
          type: string
        flowId:
          type: string
        states:
          type: array
          items:
            $ref: '#/components/schemas/State.Type'
    Backfill:
      title: A backfill configuration.
      required:
      - start
      type: object
      properties:
        start:
          title: The start date.
          type: string
          format: date-time
        end:
          title: The end date.
          type: string
          format: date-time
        currentDate:
          title: The current date of the backfill being done.
          type: string
          format: date-time
        paused:
          title: Whether the backfill is paused.
          type: boolean
        inputs:
          title: The inputs to pass to the backfilled executions.
          type: object
          additionalProperties:
            type: object
        labels:
          title: The labels to pass to the backfilled executions.
          type: array
          items:
            $ref: '#/components/schemas/Label'
        previousNextExecutionDate:
          title: The nextExecutionDate before the backfill was created.
          type: string
          format: date-time
    Banner:
      required:
      - message
      type: object
      properties:
        id:
          type: string
        message:
          type: string
        type:
          $ref: '#/components/schemas/Banner.Type'
        startDate:
          type: string
          format: date-time
          nullable: true
        endDate:
          type: string
          format: date-time
          nullable: true
        tenantId:
          type: string
          nullable: true
        active:
          type: boolean
    Banner.Type:
      type: string
      enum:
      - INFO
      - WARNING
      - ERROR
    BaseAuditLog:
      required:
      - date
      - detail
      - id
      - type
      - userId
      type: object
      properties:
        tenantId:
          type: string
        id:
          type: string
        type:
          $ref: '#/components/schemas/AuditableAction'
        detail:
          $ref: '#/components/schemas/AuditLogDetail'
        date:
          type: string
          format: date-time
        userId:
          type: string
        ipAddress:
          type: string
        impersonatedBy:
          type: string
    BaseResource_PatchRequest_:
      type: object
      properties:
        schemas:
          minItems: 1
          type: array
          items:
            type: string
    BaseResource_ScimResource_:
      type: object
      properties:
        schemas:
          minItems: 1
          type: array
          items:
            type: string
    BaseResource_SearchRequest_:
      type: object
      properties:
        schemas:
          minItems: 1
          type: array
          items:
            type: string
    BasicAuthCredentials:
      type: object
      properties:
        uid:
          type: string
        username:
          type: string
        password:
          type: string
        currentPassword:
          type: string
    Binding:
      required:
      - deleted
      - externalId
      - roleId
      - type
      type: object
      properties:
        id:
          type: string
        type:
          $ref: '#/components/schemas/Binding.Type'
        externalId:
          type: string
        roleId:
          type: string
        namespaceId:
          type: string
        deleted:
          type: boolean
    Binding.Type:
      type: string
      enum:
      - USER
      - GROUP
    Blueprint:
      required:
      - deleted
      - title
      type: object
      properties:
        id:
          type: string
        title:
          maxLength: 150
          minLength: 1
          type: string
        description:
          type: string
        tags:
          type: array
          items:
            type: string
        includedTasks:
          type: array
          items:
            type: string
        publishedAt:
          type: string
          format: date-time
        deleted:
          type: boolean
        template:
          $ref: '#/components/schemas/BlueprintTemplate'
    BlueprintController.ApiBlueprintItem:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        description:
          type: string
        includedTasks:
          type: array
          items:
            type: string
        tags:
          type: array
          items:
            type: string
        publishedAt:
          type: string
          format: date-time
    BlueprintController.ApiBlueprintItemWithSource:
      type: object
      allOf:
      - $ref: '#/components/schemas/BlueprintController.ApiBlueprintItem'
      - type: object
        properties:
          source:
            type: string
          kind:
            $ref: '#/components/schemas/BlueprintController.Kind'
    BlueprintController.ApiBlueprintTagItem:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        publishedAt:
          type: string
          format: date-time
    BlueprintController.ApiFlowBlueprint:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        description:
          type: string
        includedTasks:
          type: array
          items:
            type: string
        tags:
          type: array
          items:
            type: string
        source:
          type: string
        publishedAt:
          type: string
          format: date-time
        template:
          $ref: '#/components/schemas/BlueprintTemplate'
    BlueprintController.ApiValidateBlueprintTemplateArgumentsResponse:
      required:
      - inputs
      type: object
      properties:
        inputs:
          type: array
          items:
            $ref: '#/components/schemas/BlueprintController.ApiValidateBlueprintTemplateArgumentsResponse.ApiTemplateArgument'
    BlueprintController.ApiValidateBlueprintTemplateArgumentsResponse.ApiTemplateArgument:
      required:
      - errors
      - input
      type: object
      properties:
        input:
          $ref: '#/components/schemas/Input_Object_'
        value:
          type: object
        enabled:
          type: boolean
        isDefault:
          type: boolean
        errors:
          type: array
          items:
            $ref: '#/components/schemas/BlueprintController.ApiValidateBlueprintTemplateArgumentsResponse.ApiTemplateArgumentError'
    BlueprintController.ApiValidateBlueprintTemplateArgumentsResponse.ApiTemplateArgumentError:
      required:
      - message
      type: object
      properties:
        message:
          type: string
        renderError:
          type: boolean
    BlueprintController.FlowBlueprintCreateOrUpdate:
      required:
      - source
      - title
      type: object
      properties:
        title:
          minLength: 1
          type: string
        source:
          minLength: 1
          type: string
        description:
          type: string
        tags:
          type: array
          items:
            type: string
    BlueprintController.Kind:
      type: string
      enum:
      - APP
      - DASHBOARD
      - FLOW
    BlueprintController.UseBlueprintTemplateRequest:
      type: object
      properties:
        templateArgumentsInputs:
          type: object
          additionalProperties:
            type: object
    BlueprintController.UseBlueprintTemplateResponse:
      type: object
      properties:
        generatedFlowSource:
          type: string
    BlueprintTemplate:
      required:
      - source
      type: object
      properties:
        source:
          minLength: 1
          type: string
        templateArguments:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Input_Object_'
        templateArgumentsOrder:
          type: array
          items:
            type: string
    BlueprintWithFlowEntity:
      required:
      - deleted
      - flow
      type: object
      allOf:
      - $ref: '#/components/schemas/Blueprint'
      - type: object
        properties:
          deleted:
            type: boolean
          flow:
            minLength: 1
            type: string
    Breakpoint:
      required:
      - id
      type: object
      properties:
        id:
          type: string
        value:
          type: string
          nullable: true
    BulkResponse:
      type: object
      properties:
        count:
          type: integer
          description: The number of items successfully processed
          format: int32
    Cache:
      required:
      - enabled
      type: object
      properties:
        enabled:
          type: boolean
        ttl:
          type: string
    CaseAction:
      type: object
      properties:
        label:
          type: string
        namespace:
          type: string
        flowId:
          type: string
    CaseAttachment:
      type: object
      properties:
        id:
          type: string
        fileName:
          type: string
        size:
          type: integer
          format: int64
        contentType:
          type: string
    CaseEventType:
      type: string
      enum:
      - COMMENT
      - CREATED
      - UPDATED
      - STATUS_CHANGED
      - SEVERITY_CHANGED
      - ASSIGNED
      - EXECUTION_LINKED
      - EXECUTION_UNLINKED
      - ASSET_LINKED
      - ASSET_UNLINKED
      - ACTION_ATTACHED
      - ACTION_DETACHED
      - ACTION_UPDATED
      - ACTION_RUN
      - AUTO_ATTACH_ENABLED
      - AUTO_ATTACH_DISABLED
      - SLA_ACKNOWLEDGEMENT_BREACHED
      - SLA_RESOLUTION_BREACHED
    CaseSeverity:
      type: string
      enum:
      - CRITICAL
      - HIGH
      - MEDIUM
      - LOW
    CaseStatus:
      type: string
      enum:
      - OPEN
      - ACKNOWLEDGED
      - INVESTIGATING
      - RESOLVED
      - CANCELLED
    CaseTemplatesController.ApiCaseTemplate:
      type: object
      properties:
        id:
          type: string
        tenantId:
          type: string
        name:
          type: string
        namespace:
          type: string
        defaultSeverity:
          $ref: '#/components/schemas/CaseSeverity'
        defaultAssignees:
          $ref: '#/components/schemas/CaseTemplatesController.ApiSubjects'
        defaultWatchers:
          $ref: '#/components/schemas/CaseTemplatesController.ApiSubjects'
        titlePattern:
          type: string
        description:
          type: string
        sla:
          $ref: '#/components/schemas/SlaConfig'
        resolutionReasons:
          type: array
          items:
            type: string
        requireResolutionNote:
          type: boolean
        customFields:
          type: array
          items:
            $ref: '#/components/schemas/CustomField'
        defaultActions:
          type: array
          items:
            $ref: '#/components/schemas/CaseAction'
        isDefault:
          type: boolean
        createdBy:
          type: string
        created:
          type: string
          format: date-time
        updated:
          type: string
          format: date-time
        deleted:
          type: boolean
    CaseTemplatesController.ApiSubjectRef:
      type: object
      properties:
        id:
          type: string
        label:
          type: string
    CaseTemplatesController.ApiSubjects:
      type: object
      properties:
        users:
          type: array
          items:
            $ref: '#/components/schemas/CaseTemplatesController.ApiSubjectRef'
        groups:
          type: array
          items:
            $ref: '#/components/schemas/CaseTemplatesController.ApiSubjectRef'
    CaseTemplatesController.CaseTemplateRequest:
      required:
      - name
      type: object
      properties:
        name:
          type: string
        namespace:
          maxLength: 150
          pattern: ^[a-z0-9][a-z0-9._-]*
          type: string
          nullable: true
        defaultSeverity:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/CaseSeverity'
        defaultAssignees:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/Subjects'
        defaultWatchers:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/Subjects'
        titlePattern:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
        sla:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/SlaConfig'
        resolutionReasons:
          type: array
          nullable: true
          items:
            type: string
        requireResolutionNote:
          type: boolean
        customFields:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CustomField'
        defaultActions:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CaseAction'
        isDefault:
          type: boolean
    CasesController.ApiCase:
      type: object
      properties:
        id:
          type: string
        tenantId:
          type: string
        namespace:
          type: string
        title:
          type: string
        description:
          type: string
        severity:
          $ref: '#/components/schemas/CaseSeverity'
        status:
          $ref: '#/components/schemas/CaseStatus'
        assignees:
          $ref: '#/components/schemas/CasesController.ApiSubjects'
        watchers:
          $ref: '#/components/schemas/CasesController.ApiSubjects'
        customFields:
          type: array
          items:
            $ref: '#/components/schemas/CustomField'
        sla:
          $ref: '#/components/schemas/SlaConfig'
        acknowledgementSla:
          $ref: '#/components/schemas/SlaStatus'
        resolutionSla:
          $ref: '#/components/schemas/SlaStatus'
        created:
          type: string
          format: date-time
        updated:
          type: string
          format: date-time
        acknowledgedAt:
          type: string
          format: date-time
        resolvedAt:
          type: string
          format: date-time
        resolution:
          $ref: '#/components/schemas/Resolution'
        resolvedBy:
          type: string
        resolvedByName:
          type: string
        actions:
          type: array
          items:
            $ref: '#/components/schemas/CaseAction'
        assetIds:
          type: array
          items:
            type: string
        createdBy:
          type: string
        origin:
          $ref: '#/components/schemas/Origin'
        templateId:
          type: string
        autoAttach:
          type: array
          items:
            $ref: '#/components/schemas/AutoAttach'
        deleted:
          type: boolean
    CasesController.ApiCaseAsset:
      type: object
      properties:
        assetId:
          type: string
        origin:
          type: string
    CasesController.ApiCaseEvent:
      type: object
      properties:
        id:
          type: string
        caseId:
          type: string
        type:
          $ref: '#/components/schemas/CaseEventType'
        authorId:
          type: string
        authorName:
          type: string
        body:
          type: string
        payload:
          type: object
          additionalProperties:
            type: object
        attachments:
          type: array
          items:
            $ref: '#/components/schemas/CaseAttachment'
        created:
          type: string
          format: date-time
    CasesController.ApiCaseExecution:
      type: object
      properties:
        executionId:
          type: string
        namespace:
          type: string
        flowId:
          type: string
        state:
          type: string
        auto:
          type: boolean
        created:
          type: string
          format: date-time
        found:
          type: boolean
    CasesController.ApiCaseSummary:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        severity:
          $ref: '#/components/schemas/CaseSeverity'
        status:
          $ref: '#/components/schemas/CaseStatus'
        updated:
          type: string
          format: date-time
        assignees:
          $ref: '#/components/schemas/CasesController.ApiSubjects'
    CasesController.ApiSubjectRef:
      type: object
      properties:
        id:
          type: string
        label:
          type: string
        type:
          type: string
    CasesController.ApiSubjects:
      type: object
      properties:
        users:
          type: array
          items:
            $ref: '#/components/schemas/CasesController.ApiSubjectRef'
        groups:
          type: array
          items:
            $ref: '#/components/schemas/CasesController.ApiSubjectRef'
    CasesController.AssignRequest:
      type: object
      properties:
        assignees:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/Subjects'
        watchers:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/Subjects'
        note:
          type: string
          nullable: true
    CasesController.AttachActionRequest:
      required:
      - flowId
      - label
      - namespace
      type: object
      properties:
        label:
          type: string
        namespace:
          type: string
        flowId:
          type: string
    CasesController.AttachAssetRequest:
      required:
      - assetId
      type: object
      properties:
        assetId:
          type: string
    CasesController.AutoAttachRequest:
      required:
      - flowId
      - namespace
      - states
      type: object
      properties:
        namespace:
          maxLength: 150
          minLength: 1
          pattern: ^[a-z0-9][a-z0-9._-]*
          type: string
        flowId:
          maxLength: 100
          minLength: 1
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9._-]*
          type: string
        states:
          type: array
          items:
            $ref: '#/components/schemas/State.Type'
    CasesController.CancelRequest:
      type: object
      properties:
        reason:
          type: string
          nullable: true
        note:
          type: string
          nullable: true
    CasesController.CaseCreateRequest:
      required:
      - namespace
      - title
      type: object
      properties:
        namespace:
          type: string
        title:
          type: string
        description:
          type: string
          nullable: true
        severity:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/CaseSeverity'
        status:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/CaseStatus'
        templateId:
          type: string
          nullable: true
        sla:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/SlaConfig'
        assignees:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/Subjects'
        watchers:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/Subjects'
        customFields:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CustomField'
        actions:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CaseAction'
    CasesController.CaseFromTaskRequest:
      required:
      - flowId
      - flowNamespace
      - namespace
      - taskId
      type: object
      properties:
        namespace:
          type: string
        title:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
        severity:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/CaseSeverity'
        status:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/CaseStatus'
        sla:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/SlaConfig'
        assignees:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/Subjects'
        watchers:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/Subjects'
        labels:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Label'
        assetIds:
          type: array
          nullable: true
          items:
            type: string
        actions:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CaseAction'
        linkMatchingExecutions:
          type: boolean
        flowNamespace:
          type: string
        flowId:
          type: string
        taskId:
          type: string
        executionId:
          type: string
          nullable: true
        executionState:
          type: string
          nullable: true
        caseId:
          type: string
          nullable: true
    CasesController.CaseUpdateRequest:
      type: object
      properties:
        namespace:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
        severity:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/CaseSeverity'
        customFields:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CustomField'
    CasesController.FromExecutionsByQueryRequest:
      required:
      - case
      - filters
      type: object
      properties:
        case:
          $ref: '#/components/schemas/CasesController.CaseCreateRequest'
        filters:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
    CasesController.FromExecutionsRequest:
      required:
      - case
      - executionIds
      type: object
      properties:
        case:
          $ref: '#/components/schemas/CasesController.CaseCreateRequest'
        executionIds:
          type: array
          items:
            type: string
    CasesController.LinkExecutionsByQueryRequest:
      required:
      - filters
      type: object
      properties:
        filters:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
    CasesController.LinkExecutionsRequest:
      required:
      - executionIds
      type: object
      properties:
        executionIds:
          type: array
          items:
            type: string
    CasesController.ResolveRequest:
      required:
      - reason
      type: object
      properties:
        reason:
          type: string
        note:
          type: string
          nullable: true
    CasesController.RunActionRequest:
      required:
      - flowId
      - namespace
      type: object
      properties:
        namespace:
          type: string
        flowId:
          type: string
        inputs:
          type: object
          additionalProperties:
            type: object
          nullable: true
        labels:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Label'
        scheduleDate:
          type: string
          format: date-time
          nullable: true
        breakpoints:
          type: array
          nullable: true
          items:
            type: string
    CasesController.StatusRequest:
      required:
      - status
      type: object
      properties:
        status:
          $ref: '#/components/schemas/CaseStatus'
        resolution:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/Resolution'
    ChartFiltersOverrides:
      type: object
      properties:
        startDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
        pageSize:
          type: integer
          format: int32
        pageNumber:
          type: integer
          format: int32
        namespace:
          type: string
        labels:
          type: object
          additionalProperties:
            type: string
        filters:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
    Chart_ChartOption_:
      required:
      - id
      - type
      type: object
      properties:
        id:
          minLength: 1
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]*
          type: string
        type:
          minLength: 1
          pattern: ^[A-Za-z_$][A-Za-z0-9_$]*(\.[A-Za-z_$][A-Za-z0-9_$]*)*$
          type: string
        chartOptions:
          type: object
    Check:
      required:
      - message
      - when
      type: object
      properties:
        condition:
          type: string
          deprecated: true
        when:
          minLength: 1
          type: string
        message:
          minLength: 1
          type: string
        style:
          $ref: '#/components/schemas/Check.Style'
        behavior:
          $ref: '#/components/schemas/Check.Behavior'
    Check.Behavior:
      type: string
      enum:
      - BLOCK_EXECUTION
      - FAIL_EXECUTION
      - CREATE_EXECUTION
    Check.Style:
      type: string
      enum:
      - ERROR
      - SUCCESS
      - WARNING
      - INFO
    Concurrency:
      required:
      - behavior
      - limit
      type: object
      properties:
        limit:
          minimum: 1
          type: integer
          format: int32
        behavior:
          $ref: '#/components/schemas/Concurrency.Behavior'
    Concurrency.Behavior:
      type: string
      enum:
      - QUEUE
      - CANCEL
      - FAIL
    ConcurrencyLimit:
      required:
      - flowId
      - namespace
      - tenantId
      type: object
      properties:
        tenantId:
          type: string
        namespace:
          type: string
        flowId:
          type: string
        running:
          minimum: 0
          type: integer
          format: int32
    Condition:
      required:
      - field
      - operator
      type: object
      properties:
        field:
          type: string
        operator:
          $ref: '#/components/schemas/AbstractFilter.FilterType'
        value:
          type: object
    ConnectionMode:
      type: string
      description: Connection mode (SERVER or CLIENT)
      enum:
      - SERVER
      - CLIENT
    CreateApiTokenRequest:
      required:
      - name
      type: object
      properties:
        name:
          pattern: ^(?=.{1,63}$)[a-z0-9]+(?:-[a-z0-9]+)*$
          type: string
        description:
          type: string
        maxAge:
          type: string
        extended:
          type: boolean
    CreateApiTokenResponse:
      required:
      - fullToken
      - id
      - name
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        fullToken:
          type: string
    CreateSecurityIntegrationRequest:
      required:
      - description
      - name
      - type
      type: object
      properties:
        name:
          pattern: ^(?=.{1,63}$)[a-z0-9]+(?:-[a-z0-9]+)*$
          type: string
          description: The name of security integration.
        description:
          type: string
          description: The description of security integration.
        type:
          $ref: '#/components/schemas/SecurityIntegration.Type'
      description: Create SecurityIntegration Request
    CredentialType:
      type: string
      enum:
      - OAUTH2
      - GITHUB_APP
      - UNKNOWN
    CursorOrOffsetPagedResults_LogEntry_:
      required:
      - results
      - type
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/LogEntry'
        total:
          type: integer
          format: int64
        type:
          $ref: '#/components/schemas/PaginationType'
        nextCursor:
          type: string
    CustomField:
      type: object
      properties:
        name:
          type: string
        type:
          $ref: '#/components/schemas/CustomFieldType'
        options:
          type: array
          nullable: true
          items:
            type: string
        value:
          type: array
          nullable: true
          items:
            type: string
    CustomFieldType:
      type: string
      enum:
      - STRING
      - SELECT
      - MULTISELECT
    DailyExecutionStatistics:
      required:
      - duration
      - startDate
      type: object
      properties:
        startDate:
          type: string
          format: date-time
        duration:
          $ref: '#/components/schemas/DailyExecutionStatistics.Duration'
        taskRunsDuration:
          $ref: '#/components/schemas/DailyExecutionStatistics.Duration'
        executionCounts:
          type: object
          properties:
            CREATED:
              type: integer
              format: int64
            SUBMITTED:
              type: integer
              format: int64
            RUNNING:
              type: integer
              format: int64
            PAUSED:
              type: integer
              format: int64
            RESTARTED:
              type: integer
              format: int64
            KILLING:
              type: integer
              format: int64
            SUCCESS:
              type: integer
              format: int64
            WARNING:
              type: integer
              format: int64
            FAILED:
              type: integer
              format: int64
            KILLED:
              type: integer
              format: int64
            CANCELLED:
              type: integer
              format: int64
            QUEUED:
              type: integer
              format: int64
            RETRYING:
              type: integer
              format: int64
            RETRIED:
              type: integer
              format: int64
            SKIPPED:
              type: integer
              format: int64
            BREAKPOINT:
              type: integer
              format: int64
            RESUBMITTED:
              type: integer
              format: int64
        groupBy:
          type: string
    DailyExecutionStatistics.Duration:
      required:
      - avg
      - count
      - max
      - min
      - sum
      type: object
      properties:
        min:
          type: string
        avg:
          type: string
        max:
          type: string
        sum:
          type: string
        count:
          type: integer
          format: int64
    DashboardController.DashboardResponse:
      required:
      - deleted
      - id
      - title
      type: object
      properties:
        tenantId:
          type: string
        id:
          minLength: 1
          type: string
        title:
          minLength: 1
          type: string
        description:
          type: string
        timeWindow:
          $ref: '#/components/schemas/TimeWindow'
        charts:
          type: array
          items:
            $ref: '#/components/schemas/Chart_ChartOption_'
        deleted:
          type: boolean
        created:
          type: string
          format: date-time
        updated:
          type: string
          format: date-time
        sourceCode:
          type: string
    DashboardController.PreviewRequest:
      required:
      - chart
      type: object
      properties:
        chart:
          minLength: 1
          type: string
        globalFilter:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ChartFiltersOverrides'
    DashboardGenerationPrompt:
      required:
      - conversationId
      - userPrompt
      type: object
      properties:
        conversationId:
          type: string
        userPrompt:
          type: string
        yaml:
          type: string
    DashboardSettings:
      type: object
      properties:
        defaultHomeDashboard:
          type: string
        defaultFlowOverviewDashboard:
          type: string
        defaultNamespaceOverviewDashboard:
          type: string
    DependsOn:
      type: object
      properties:
        inputs:
          type: array
          nullable: true
          items:
            type: string
        condition:
          type: string
          nullable: true
    DocumentationWithSchema:
      type: object
      properties:
        markdown:
          type: string
        schema:
          $ref: '#/components/schemas/PluginSchema'
    Duration:
      type: object
      properties:
        units:
          type: array
          items:
            $ref: '#/components/schemas/TemporalUnit'
        positive:
          type: boolean
        zero:
          type: boolean
        negative:
          type: boolean
        seconds:
          type: integer
          format: int64
        nano:
          type: integer
          format: int32
      description: How long the lock is held before it expires.
      default: PT5M
    EditionProvider.Edition:
      type: string
      enum:
      - OSS
      - EE
    Email:
      type: object
      properties:
        type:
          type: string
        value:
          type: string
        primary:
          type: boolean
      description: Scim core schema.
    Enforcement:
      type: string
      enum:
      - ACTIVE
      - EVALUATE
      - DISABLED
      - REFERENCE
    EvaluationType:
      type: string
      enum:
      - PASS
      - KILL
      - CANCEL
      - IGNORE
    Event_AppResponse_:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/AppResponse'
        id:
          type: string
        name:
          type: string
        comment:
          type: string
        retry:
          type: string
    Event_ExecutionStatusEvent_:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/ExecutionStatusEvent'
        id:
          type: string
        name:
          type: string
        comment:
          type: string
        retry:
          type: string
    Event_Execution_:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Execution'
        id:
          type: string
        name:
          type: string
        comment:
          type: string
        retry:
          type: string
    Event_FollowLogEvent_:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/FollowLogEvent'
        id:
          type: string
        name:
          type: string
        comment:
          type: string
        retry:
          type: string
    Event_Object_:
      type: object
      properties:
        data:
          type: object
        id:
          type: string
        name:
          type: string
        comment:
          type: string
        retry:
          type: string
    ExecutableTask.SubflowId:
      type: object
      properties:
        namespace:
          type: string
        flowId:
          type: string
        revision:
          type: integer
          format: int32
          nullable: true
    Execution:
      required:
      - deleted
      - flowId
      - flowRevision
      - id
      - metadata
      - namespace
      - originalId
      - state
      type: object
      properties:
        labels:
          type: array
          items:
            $ref: '#/components/schemas/Label'
        id:
          type: string
        namespace:
          type: string
        flowId:
          type: string
        flowRevision:
          type: integer
          format: int32
        taskRunList:
          type: array
          items:
            $ref: '#/components/schemas/TaskRun'
        inputs:
          type: object
        variables:
          type: object
        state:
          $ref: '#/components/schemas/State'
        parentId:
          type: string
        originalId:
          type: string
        trigger:
          $ref: '#/components/schemas/ExecutionTrigger'
        deleted:
          type: boolean
        metadata:
          $ref: '#/components/schemas/ExecutionMetadata'
        scheduleDate:
          type: string
          format: date-time
          nullable: true
        traceParent:
          type: string
        fixtures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/TaskFixture'
        kind:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ExecutionKind'
        breakpoints:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Breakpoint'
        loopRun:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/LoopRun'
    ExecutionController.ApiValidateExecutionInputsResponse:
      required:
      - checks
      - id
      - inputs
      - namespace
      type: object
      properties:
        id:
          type: string
        namespace:
          type: string
        inputs:
          type: array
          items:
            $ref: '#/components/schemas/ExecutionController.ApiValidateExecutionInputsResponse.ApiInputAndValue'
        checks:
          type: array
          items:
            $ref: '#/components/schemas/ExecutionController.ApiValidateExecutionInputsResponse.ApiCheckFailure'
    ExecutionController.ApiValidateExecutionInputsResponse.ApiCheckFailure:
      required:
      - behavior
      - message
      - style
      type: object
      properties:
        message:
          type: string
        style:
          $ref: '#/components/schemas/Check.Style'
        behavior:
          $ref: '#/components/schemas/Check.Behavior'
    ExecutionController.ApiValidateExecutionInputsResponse.ApiInputAndValue:
      required:
      - errors
      - input
      type: object
      properties:
        input:
          $ref: '#/components/schemas/Input_Object_'
        value:
          type: object
        enabled:
          type: boolean
        isDefault:
          type: boolean
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ExecutionController.ApiValidateExecutionInputsResponse.ApiInputError'
    ExecutionController.ApiValidateExecutionInputsResponse.ApiInputError:
      required:
      - message
      type: object
      properties:
        message:
          type: string
        renderError:
          type: boolean
    ExecutionController.EvalResult:
      type: object
      properties:
        result:
          type: string
        error:
          type: string
    ExecutionController.ExecutionAverageDuration:
      type: object
      properties:
        avgDurationMs:
          type: integer
          format: int64
          nullable: true
        count:
          type: integer
          format: int64
    ExecutionController.ExecutionResponse:
      required:
      - deleted
      type: object
      allOf:
      - $ref: '#/components/schemas/Execution'
      - type: object
        properties:
          deleted:
            type: boolean
          url:
            type: string
            format: uri
    ExecutionController.LastExecutionResponse:
      required:
      - flowId
      - id
      - namespace
      - startDate
      - status
      type: object
      properties:
        id:
          type: string
        flowId:
          type: string
        namespace:
          type: string
        startDate:
          type: string
          format: date-time
        status:
          $ref: '#/components/schemas/State.Type'
    ExecutionController.SetLabelsByIdsRequest:
      required:
      - executionLabels
      - executionsId
      type: object
      properties:
        executionsId:
          type: array
          items:
            type: string
        executionLabels:
          type: array
          items:
            $ref: '#/components/schemas/Label'
    ExecutionController.StateRequest:
      required:
      - state
      - taskRunId
      type: object
      properties:
        taskRunId:
          type: string
        state:
          $ref: '#/components/schemas/State.Type'
    ExecutionKind:
      type: string
      enum:
      - NORMAL
      - TEST
      - PLAYGROUND
      - LOOP
    ExecutionMetadata:
      required:
      - originalCreatedDate
      type: object
      properties:
        attemptNumber:
          type: integer
          format: int32
        originalCreatedDate:
          type: string
          format: date-time
        concurrencyScopes:
          type: array
          items:
            type: string
        executionDepth:
          type: integer
          format: int32
    ExecutionRepositoryInterface.DateFilter:
      type: string
      enum:
      - START_DATE
      - END_DATE
      - START_OR_END_DATE
    ExecutionRepositoryInterface.FlowFilter:
      required:
      - id
      - namespace
      type: object
      properties:
        namespace:
          type: string
        id:
          type: string
    ExecutionStatusEvent:
      required:
      - executionId
      - flowId
      - namespace
      - state
      - tenantId
      type: object
      properties:
        executionId:
          type: string
        tenantId:
          type: string
        namespace:
          type: string
        flowId:
          type: string
        state:
          $ref: '#/components/schemas/State'
    ExecutionTrigger:
      required:
      - id
      - type
      type: object
      properties:
        id:
          type: string
        type:
          type: string
        variables:
          type: object
          additionalProperties: true
        logFile:
          type: string
          format: uri
    ExecutionUsage:
      type: object
      properties:
        dailyExecutionsCount:
          type: array
          items:
            $ref: '#/components/schemas/DailyExecutionStatistics'
    ExportFormat:
      type: string
      enum:
      - CSV
      - ION
    ExpressionContext:
      type: object
      properties:
        categories:
          type: object
          properties:
            taskOutputs:
              type: array
            executionContext:
              type: array
            inputs:
              type: array
            variables:
              type: array
            secrets:
              type: array
            kvPairs:
              type: array
            namespaceFiles:
              type: array
            filters:
              type: array
            functions:
              type: array
            appContext:
              type: array
    ExpressionController.RenderExpressionRequest:
      required:
      - expressions
      type: object
      properties:
        expressions:
          maxItems: 500
          minItems: 1
          type: array
          description: The raw Pebble expressions to render
          items:
            type: string
        executionId:
          type: string
          description: Resolve against this execution's context
          nullable: true
        namespace:
          type: string
          description: Resolve against this flow's context (with flowId)
          nullable: true
        flowId:
          type: string
          description: Resolve against this flow's context (with namespace)
          nullable: true
        flow:
          type: string
          description: Resolve against this flow source's context (YAML)
          nullable: true
    ExpressionController.RenderedExpressions:
      type: object
      properties:
        rendered:
          type: object
          additionalProperties:
            type: string
          description: Rendered values keyed by their raw expression
    FileAttributes:
      type: object
      properties:
        fileName:
          type: string
        lastModifiedTime:
          type: integer
          format: int64
        creationTime:
          type: integer
          format: int64
        type:
          $ref: '#/components/schemas/FileAttributes.FileType'
        size:
          type: integer
          format: int64
        metadata:
          type: object
          additionalProperties:
            type: string
    FileAttributes.FileType:
      type: string
      enum:
      - File
      - Directory
      x-enum-varnames:
      - File
      - Directory
    FileFormat:
      type: string
      enum:
      - RAW
      - JSONL
    FileMetas:
      required:
      - size
      type: object
      properties:
        size:
          type: integer
          format: int64
    Filter:
      type: object
      properties:
        filter:
          type: string
        expression:
          $ref: '#/components/schemas/FilterExpression'
    FilterExpression:
      type: object
    Fixtures:
      type: object
      properties:
        inputs:
          type: object
          additionalProperties: true
        files:
          type: object
          additionalProperties:
            type: string
        tasks:
          type: array
          items:
            $ref: '#/components/schemas/TaskFixture'
        trigger:
          $ref: '#/components/schemas/TriggerFixture'
    Flow:
      required:
      - deleted
      - disabled
      - draft
      - id
      - namespace
      - tasks
      type: object
      allOf:
      - $ref: '#/components/schemas/AbstractFlow'
      - type: object
        properties:
          id:
            maxLength: 100
            minLength: 1
            pattern: ^[a-zA-Z0-9][a-zA-Z0-9._-]*
            type: string
          namespace:
            maxLength: 150
            minLength: 1
            pattern: ^[a-z0-9][a-z0-9._-]*
            type: string
          revision:
            minimum: 1
            type: integer
            format: int32
          description:
            type: string
          inputs:
            type: array
            items:
              $ref: '#/components/schemas/Input_Object_'
          disabled:
            title: Whether the flow is disabled.
            type: boolean
            description: 'A disabled flow does not run: its triggers are paused and new executions are rejected.'
          draft:
            type: boolean
            description: Whether this flow revision is a draft. Draft revisions are skipped when an execution starts without an explicit revision (webhooks, schedules, subflows, manual triggers). Executions can still target a draft by passing the revision explicitly.
          labels:
            description: Labels as a list of Label (key/value pairs) or as a map of string to string.
            oneOf:
            - $ref: '#/components/schemas/Map_Object.Object_'
          workerSelector:
            description: Routing requirements (tags + fallback) for this flow.
            allOf:
            - $ref: '#/components/schemas/WorkerSelector'
          deleted:
            type: boolean
          finally:
            type: array
            items:
              $ref: '#/components/schemas/Task'
          variables:
            type: object
          tasks:
            minItems: 1
            type: array
            additionalProperties: true
            items:
              $ref: '#/components/schemas/Task'
          errors:
            type: array
            items:
              $ref: '#/components/schemas/Task'
          afterExecution:
            type: array
            items:
              $ref: '#/components/schemas/Task'
          triggers:
            type: array
            items:
              $ref: '#/components/schemas/AbstractTrigger'
          policyRefs:
            title: References to governance policies (Enterprise Edition).
            type: array
            description: 'Identifiers of `enforcement: REFERENCE` policies to attach to this flow, resolved within the flow''s tenant/namespace scope chain. Enterprise Edition only; parsed but ignored in the open-source edition.'
            items:
              type: string
          concurrency:
            title: Concurrency
            description: Limits the number of concurrent executions of the flow.
            allOf:
            - $ref: '#/components/schemas/Concurrency'
          outputs:
            title: Output values available and exposes to other flows.
            type: array
            description: Output values make information about the execution of your Flow available and expose for other Kestra flows to use. Output values are similar to return values in programming languages.
            items:
              $ref: '#/components/schemas/Output'
          retry:
            title: Retry
            type: object
            description: Retry policy applied when the flow fails.
          sla:
            type: array
            items:
              $ref: '#/components/schemas/SLA'
          checks:
            title: Conditions evaluated before the flow is executed.
            type: array
            description: A list of conditions that are evaluated before the flow is executed.  If no checks are defined, the flow executes normally.
            items:
              $ref: '#/components/schemas/Check'
          quotas:
            title: Quotas evaluated before the flow is executed (EE only).
            type: array
            description: |-
              A list of quotas that are evaluated before the flow is executed. If no quotas are defined, the flow executes normally.
              Quotas can also be defined at the namespace and tenant level.
            items:
              $ref: '#/components/schemas/Quota'
    FlowController.FlowWithDeprecatedTasks:
      type: object
      properties:
        namespace:
          type: string
        flowId:
          type: string
        revision:
          type: integer
          format: int32
        deprecatedTasks:
          type: array
          items:
            $ref: '#/components/schemas/FlowService.TaskDeprecation'
    FlowForExecution:
      required:
      - deleted
      - disabled
      - draft
      - id
      - namespace
      - tasks
      type: object
      allOf:
      - $ref: '#/components/schemas/AbstractFlow'
      - type: object
        properties:
          id:
            maxLength: 100
            minLength: 1
            pattern: ^[a-zA-Z0-9][a-zA-Z0-9._-]*
            type: string
          namespace:
            maxLength: 150
            minLength: 1
            pattern: ^[a-z0-9][a-z0-9._-]*
            type: string
          revision:
            minimum: 1
            type: integer
            format: int32
          description:
            type: string
          inputs:
            type: array
            items:
              $ref: '#/components/schemas/Input_Object_'
          outputs:
            type: array
            items:
              $ref: '#/components/schemas/Output'
          disabled:
            title: Whether the flow is disabled.
            type: boolean
            description: 'A disabled flow does not run: its triggers are paused and new executions are rejected.'
          draft:
            type: boolean
            description: Whether this flow revision is a draft. Draft revisions are skipped when an execution starts without an explicit revision (webhooks, schedules, subflows, manual triggers). Executions can still target a draft by passing the revision explicitly.
          labels:
            description: Labels as a list of Label (key/value pairs) or as a map of string to string.
            oneOf:
            - $ref: '#/components/schemas/Map_Object.Object_'
          variables:
            type: object
          workerSelector:
            description: Routing requirements (tags + fallback) for this flow.
            allOf:
            - $ref: '#/components/schemas/WorkerSelector'
          deleted:
            type: boolean
          tasks:
            minItems: 1
            type: array
            items:
              $ref: '#/components/schemas/TaskForExecution'
          errors:
            type: array
            items:
              $ref: '#/components/schemas/TaskForExecution'
          finally:
            type: array
            items:
              $ref: '#/components/schemas/TaskForExecution'
          afterExecution:
            type: array
            items:
              $ref: '#/components/schemas/TaskForExecution'
          triggers:
            type: array
            items:
              $ref: '#/components/schemas/AbstractTriggerForExecution'
    FlowGenerationPrompt:
      required:
      - conversationId
      - userPrompt
      type: object
      properties:
        conversationId:
          type: string
        userPrompt:
          type: string
        yaml:
          type: string
        namespace:
          type: string
    FlowGraph:
      type: object
      properties:
        nodes:
          type: array
          items:
            $ref: '#/components/schemas/AbstractGraph'
        edges:
          type: array
          items:
            $ref: '#/components/schemas/FlowGraph.Edge'
        clusters:
          type: array
          items:
            $ref: '#/components/schemas/FlowGraph.Cluster'
        flowables:
          type: array
          items:
            type: string
    FlowGraph.Cluster:
      type: object
      properties:
        cluster:
          $ref: '#/components/schemas/AbstractGraph'
        nodes:
          type: array
          items:
            type: string
        parents:
          type: array
          items:
            type: string
        start:
          type: string
        end:
          type: string
    FlowGraph.Edge:
      type: object
      properties:
        source:
          type: string
        target:
          type: string
        relation:
          $ref: '#/components/schemas/Relation'
    FlowId:
      type: object
      properties:
        id:
          type: string
        namespace:
          type: string
        revision:
          type: integer
          format: int32
        tenantId:
          type: string
    FlowInterface:
      type: object
      allOf:
      - $ref: '#/components/schemas/FlowId'
      - $ref: '#/components/schemas/SoftDeletable_FlowInterface_'
      - $ref: '#/components/schemas/TenantInterface'
      - type: object
        properties:
          description:
            type: string
          disabled:
            type: boolean
          deleted:
            type: boolean
          draft:
            type: boolean
          labels:
            type: array
            items:
              $ref: '#/components/schemas/Label'
          inputs:
            type: array
            items:
              $ref: '#/components/schemas/Input_Object_'
          outputs:
            type: array
            items:
              $ref: '#/components/schemas/Output'
          variables:
            type: object
            additionalProperties:
              type: object
          workerSelector:
            $ref: '#/components/schemas/WorkerSelector'
          concurrency:
            $ref: '#/components/schemas/Concurrency'
          quotas:
            type: array
            items:
              $ref: '#/components/schemas/Quota'
          sla:
            type: array
            items:
              $ref: '#/components/schemas/SLA'
          source:
            type: string
    FlowNode:
      required:
      - uid
      type: object
      properties:
        uid:
          type: string
        namespace:
          type: string
        id:
          type: string
    FlowRelation:
      type: string
      enum:
      - FLOW_TASK
      - FLOW_TRIGGER
      - SUBFLOW_FUNCTION
    FlowService.TaskDeprecation:
      type: object
      properties:
        taskId:
          type: string
        taskType:
          type: string
        replacement:
          type: string
          nullable: true
    FlowTopologyGraph:
      type: object
      properties:
        nodes:
          type: array
          items:
            $ref: '#/components/schemas/FlowNode'
        edges:
          type: array
          items:
            $ref: '#/components/schemas/FlowTopologyGraph.Edge'
    FlowTopologyGraph.Edge:
      type: object
      properties:
        source:
          type: string
        target:
          type: string
        relation:
          $ref: '#/components/schemas/FlowRelation'
    FlowUsage:
      type: object
      properties:
        count:
          type: integer
          format: int64
        namespacesCount:
          type: integer
          format: int64
        taskTypeCount:
          type: object
          additionalProperties:
            type: integer
            format: int64
        triggerTypeCount:
          type: object
          additionalProperties:
            type: integer
            format: int64
        taskRunnerTypeCount:
          type: object
          additionalProperties:
            type: integer
            format: int64
        inputTypeCount:
          type: object
          additionalProperties:
            type: integer
            format: int64
        hasInputsCount:
          type: integer
          format: int64
        hasOutputsCount:
          type: integer
          format: int64
        hasLabelsCount:
          type: integer
          format: int64
        hasVariablesCount:
          type: integer
          format: int64
        hasWorkerSelectorCount:
          type: integer
          format: int64
        hasErrorsCount:
          type: integer
          format: int64
        hasFinallyCount:
          type: integer
          format: int64
        hasAfterExecutionCount:
          type: integer
          format: int64
        hasTriggersCount:
          type: integer
          format: int64
        hasConcurrencyCount:
          type: integer
          format: int64
        hasRetryCount:
          type: integer
          format: int64
        hasSlaCount:
          type: integer
          format: int64
        hasChecksCount:
          type: integer
          format: int64
        hasQuotasCount:
          type: integer
          format: int64
        tasks:
          $ref: '#/components/schemas/FlowUsage.TaskUsage'
        triggers:
          $ref: '#/components/schemas/FlowUsage.TriggerUsage'
    FlowUsage.TaskUsage:
      type: object
      properties:
        hasRetryCount:
          type: integer
          format: int64
        hasTimeoutCount:
          type: integer
          format: int64
        hasWorkerSelectorCount:
          type: integer
          format: int64
        hasAllowFailureCount:
          type: integer
          format: int64
        hasLogToFileCount:
          type: integer
          format: int64
        hasRunIfCount:
          type: integer
          format: int64
        hasAllowWarningCount:
          type: integer
          format: int64
        hasCacheCount:
          type: integer
          format: int64
        hasAssetsCount:
          type: integer
          format: int64
        hasErrorsCount:
          type: integer
          format: int64
        hasFinallyCount:
          type: integer
          format: int64
    FlowUsage.TriggerUsage:
      type: object
      properties:
        hasWhenCount:
          type: integer
          format: int64
        hasWorkerSelectorCount:
          type: integer
          format: int64
        hasLabelsCount:
          type: integer
          format: int64
        hasStopAfterCount:
          type: integer
          format: int64
        hasLogToFileCount:
          type: integer
          format: int64
        hasFailOnErrorCount:
          type: integer
          format: int64
        hasAllowConcurrentCount:
          type: integer
          format: int64
        hasAssetsCount:
          type: integer
          format: int64
    FlowWithSource:
      required:
      - deleted
      - disabled
      - draft
      - id
      - namespace
      type: object
      allOf:
      - $ref: '#/components/schemas/Flow'
      - $ref: '#/components/schemas/AbstractFlow'
      - type: object
        properties:
          id:
            maxLength: 100
            minLength: 1
            pattern: ^[a-zA-Z0-9][a-zA-Z0-9._-]*
            type: string
          namespace:
            maxLength: 150
            minLength: 1
            pattern: ^[a-z0-9][a-z0-9._-]*
            type: string
          revision:
            minimum: 1
            type: integer
            format: int32
          description:
            type: string
          inputs:
            type: array
            items:
              $ref: '#/components/schemas/Input_Object_'
          disabled:
            title: Whether the flow is disabled.
            type: boolean
            description: 'A disabled flow does not run: its triggers are paused and new executions are rejected.'
          draft:
            type: boolean
            description: Whether this flow revision is a draft. Draft revisions are skipped when an execution starts without an explicit revision (webhooks, schedules, subflows, manual triggers). Executions can still target a draft by passing the revision explicitly.
          labels:
            description: Labels as a list of Label (key/value pairs) or as a map of string to string.
            oneOf:
            - $ref: '#/components/schemas/Map_Object.Object_'
          workerSelector:
            description: Routing requirements (tags + fallback) for this flow.
            allOf:
            - $ref: '#/components/schemas/WorkerSelector'
          deleted:
            type: boolean
          variables:
            type: object
          concurrency:
            title: Concurrency
            description: Limits the number of concurrent executions of the flow.
            allOf:
            - $ref: '#/components/schemas/Concurrency'
          outputs:
            title: Output values available and exposes to other flows.
            type: array
            description: Output values make information about the execution of your Flow available and expose for other Kestra flows to use. Output values are similar to return values in programming languages.
            items:
              $ref: '#/components/schemas/Output'
          sla:
            type: array
            items:
              $ref: '#/components/schemas/SLA'
          quotas:
            title: Quotas evaluated before the flow is executed (EE only).
            type: array
            description: |-
              A list of quotas that are evaluated before the flow is executed. If no quotas are defined, the flow executes normally.
              Quotas can also be defined at the namespace and tenant level.
            items:
              $ref: '#/components/schemas/Quota'
          source:
            type: string
    FollowLogEvent:
      type: object
      properties:
        tenantId:
          type: string
        namespace:
          type: string
        flowId:
          type: string
        taskId:
          type: string
        executionId:
          type: string
        taskRunId:
          type: string
        attemptNumber:
          type: integer
          format: int32
        triggerId:
          type: string
        timestamp:
          type: string
          format: date-time
        level:
          $ref: '#/components/schemas/Level'
        thread:
          type: string
        message:
          type: string
        executionKind:
          $ref: '#/components/schemas/ExecutionKind'
        progress:
          type: string
    GateOutcome:
      type: string
      description: Gate outcome (NONE or CONFIRMED)
      enum:
      - NONE
      - CONFIRMED
    GithubAppConfig:
      required:
      - appId
      - installationId
      - privateKey
      type: object
      properties:
        appId:
          $ref: '#/components/schemas/AuthProperty_String_'
        privateKey:
          $ref: '#/components/schemas/SecretAuthProperty'
        installationId:
          $ref: '#/components/schemas/AuthProperty_String_'
      description: GitHub App authentication configuration (sensitive fields masked)
    GroupIdentifier:
      type: object
      properties:
        tenantId:
          type: string
          nullable: true
        groupId:
          type: string
        membership:
          $ref: '#/components/schemas/GroupIdentifier.Membership'
        managedExternally:
          type: boolean
    GroupIdentifier.Membership:
      type: string
      enum:
      - OWNER
      - MEMBER
    GroupUsage:
      type: object
      properties:
        count:
          type: integer
          format: int64
    IAMBindingController.ApiBindingDetail:
      type: object
      properties:
        id:
          type: string
        type:
          $ref: '#/components/schemas/Binding.Type'
        namespace:
          type: string
          nullable: true
        role:
          $ref: '#/components/schemas/IAMBindingController.ApiRole'
        group:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/IAMBindingController.ApiBindingGroup'
        user:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/IAMBindingController.ApiBindingUser'
    IAMBindingController.ApiBindingGroup:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
    IAMBindingController.ApiBindingUser:
      type: object
      properties:
        id:
          type: string
        username:
          type: string
        displayName:
          type: string
        type:
          $ref: '#/components/schemas/UserType'
    IAMBindingController.ApiCreateBindingRequest:
      required:
      - externalId
      - roleId
      - type
      type: object
      properties:
        type:
          $ref: '#/components/schemas/Binding.Type'
        externalId:
          type: string
        roleId:
          type: string
        namespaceId:
          type: string
          nullable: true
    IAMBindingController.ApiRole:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
    IAMGroupController.ApiCreateGroupRequest:
      required:
      - name
      type: object
      properties:
        name:
          minLength: 1
          type: string
        description:
          type: string
        membersId:
          type: array
          items:
            type: string
    IAMGroupController.ApiGroupDetail:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
    IAMGroupController.ApiGroupMember:
      type: object
      properties:
        id:
          type: string
        username:
          type: string
        displayName:
          type: string
        groups:
          type: array
          items:
            $ref: '#/components/schemas/IAMGroupController.ApiGroupMembership'
    IAMGroupController.ApiGroupMembership:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        external:
          type: boolean
        membership:
          $ref: '#/components/schemas/GroupIdentifier.Membership'
    IAMGroupController.ApiUpdateGroupRequest:
      required:
      - name
      type: object
      properties:
        name:
          minLength: 1
          type: string
          description: of the group.
        description:
          type: string
          description: of the group.
      description: Represents updatable properties for a Group.
    IAMInvitationController.ApiInvitationCreateRequest:
      required:
      - email
      type: object
      properties:
        createUserIfNotExist:
          type: boolean
        instanceOwner:
          type: boolean
        roles:
          type: array
          items:
            $ref: '#/components/schemas/IAMInvitationController.ApiInvitationRole'
        groups:
          type: array
          items:
            type: string
        email:
          type: string
    IAMInvitationController.ApiInvitationDetail:
      type: object
      properties:
        id:
          type: string
        roles:
          type: array
          items:
            $ref: '#/components/schemas/ApiRoleSummary'
        groups:
          type: array
          items:
            $ref: '#/components/schemas/ApiGroupSummary'
        tenantId:
          type: string
        email:
          type: string
        status:
          $ref: '#/components/schemas/Invitation.InvitationStatus'
        sentAt:
          type: string
          format: date-time
        expiredAt:
          type: string
          format: date-time
        acceptedAt:
          type: string
          format: date-time
        instanceOwner:
          type: boolean
        link:
          type: string
    IAMInvitationController.ApiInvitationRole:
      required:
      - id
      type: object
      properties:
        id:
          type: string
        namespaces:
          type: array
          items:
            type: string
    IAMRoleController.ApiRoleCreateOrUpdateRequest:
      required:
      - name
      - permissions
      type: object
      properties:
        permissions:
          type: object
          properties:
            FLOW:
              type: array
            EXECUTION:
              type: array
            TRIGGER:
              type: array
            NAMESPACE:
              type: array
            KVSTORE:
              type: array
            REUSABLE_INPUTS:
              type: array
            DASHBOARD:
              type: array
            SECRET:
              type: array
            CREDENTIAL:
              type: array
            BLUEPRINT:
              type: array
            APP:
              type: array
            AUDITLOG:
              type: array
            SYSTEM_SETTINGS:
              type: array
            TENANT_SETTINGS:
              type: array
            TESTSUITE:
              type: array
            ASSET:
              type: array
            USER:
              type: array
            GROUP:
              type: array
            ROLE:
              type: array
            BINDING:
              type: array
            SERVICE_ACCOUNT:
              type: array
            INVITATION:
              type: array
            COPILOT:
              type: array
            MCP_SERVER:
              type: array
            SUPPORT:
              type: array
            POLICY:
              type: array
            CASE:
              type: array
            PROMOTION_TARGET:
              type: array
            APP_EXECUTION:
              type: array
            NAMESPACE_FILE:
              type: array
            TESTSUITE_RUN:
              type: array
            TENANT_ACCESS:
              type: array
            SECURITY_INTEGRATION:
              type: array
            CASE_TEMPLATE:
              type: array
            BANNER:
              type: array
            KILL_SWITCH:
              type: array
            TENANT:
              type: array
            VERSIONED_PLUGIN:
              type: array
            WORKER_GROUP:
              type: array
            WORKER_QUEUE:
              type: array
            INSTANCE:
              type: array
            UNKNOWN:
              type: array
        name:
          minLength: 1
          type: string
        description:
          type: string
        isDefault:
          type: boolean
    IAMRoleController.ApiRoleDetail:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        permissions:
          type: object
          properties:
            FLOW:
              type: array
            EXECUTION:
              type: array
            TRIGGER:
              type: array
            NAMESPACE:
              type: array
            KVSTORE:
              type: array
            REUSABLE_INPUTS:
              type: array
            DASHBOARD:
              type: array
            SECRET:
              type: array
            CREDENTIAL:
              type: array
            BLUEPRINT:
              type: array
            APP:
              type: array
            AUDITLOG:
              type: array
            SYSTEM_SETTINGS:
              type: array
            TENANT_SETTINGS:
              type: array
            TESTSUITE:
              type: array
            ASSET:
              type: array
            USER:
              type: array
            GROUP:
              type: array
            ROLE:
              type: array
            BINDING:
              type: array
            SERVICE_ACCOUNT:
              type: array
            INVITATION:
              type: array
            COPILOT:
              type: array
            MCP_SERVER:
              type: array
            SUPPORT:
              type: array
            POLICY:
              type: array
            CASE:
              type: array
            PROMOTION_TARGET:
              type: array
            APP_EXECUTION:
              type: array
            NAMESPACE_FILE:
              type: array
            TESTSUITE_RUN:
              type: array
            TENANT_ACCESS:
              type: array
            SECURITY_INTEGRATION:
              type: array
            CASE_TEMPLATE:
              type: array
            BANNER:
              type: array
            KILL_SWITCH:
              type: array
            TENANT:
              type: array
            VERSIONED_PLUGIN:
              type: array
            WORKER_GROUP:
              type: array
            WORKER_QUEUE:
              type: array
            INSTANCE:
              type: array
            UNKNOWN:
              type: array
        isDefault:
          type: boolean
        isManaged:
          type: boolean
    IAMServiceAccountController.ApiCreateServiceAccountRequest:
      required:
      - name
      type: object
      properties:
        name:
          pattern: ^(?=.{1,63}$)[a-z0-9]+(?:-[a-z0-9]+)*$
          type: string
        description:
          type: string
        instanceOwner:
          type: boolean
        tenants:
          type: array
          items:
            type: string
        username:
          pattern: ^(?=.{1,63}$)[a-z0-9]+(?:-[a-z0-9]+)*$
          type: string
          nullable: true
      description: Request payload for updating service account details
    IAMServiceAccountController.ApiGroup:
      type: object
      properties:
        id:
          type: string
    IAMServiceAccountController.ApiPatchServiceAccountRequest:
      required:
      - name
      type: object
      properties:
        name:
          pattern: ^(?=.{1,63}$)[a-z0-9]+(?:-[a-z0-9]+)*$
          type: string
        description:
          type: string
      description: Request payload for updating service account details
    IAMServiceAccountController.ApiServiceAccountDetail:
      required:
      - name
      type: object
      properties:
        id:
          type: string
          description: the identifier of this service account.
        name:
          pattern: ^(?=.{1,63}$)[a-z0-9]+(?:-[a-z0-9]+)*$
          type: string
          description: the name of this service account.
        description:
          type: string
          description: the description of this service account.
        tenants:
          type: array
          items:
            $ref: '#/components/schemas/ApiTenantSummary'
        instanceOwner:
          type: boolean
        username:
          type: string
      description: A User Service Account.
    IAMServiceAccountController.ApiServiceAccountRequest:
      required:
      - name
      type: object
      properties:
        groups:
          type: array
          items:
            $ref: '#/components/schemas/IAMServiceAccountController.ApiGroup'
        name:
          pattern: ^(?=.{1,63}$)[a-z0-9]+(?:-[a-z0-9]+)*$
          type: string
        description:
          type: string
        instanceOwner:
          type: boolean
        username:
          pattern: ^(?=.{1,63}$)[a-z0-9]+(?:-[a-z0-9]+)*$
          type: string
          nullable: true
      description: A User Service Account.
    IAMServiceAccountController.ApiServiceAccountResponse:
      required:
      - name
      type: object
      properties:
        id:
          type: string
          description: the identifier of this service account.
        name:
          pattern: ^(?=.{1,63}$)[a-z0-9]+(?:-[a-z0-9]+)*$
          type: string
          description: the name of this service account.
        description:
          type: string
          description: the description of this service account.
        groups:
          type: array
          items:
            $ref: '#/components/schemas/IAMServiceAccountController.ApiGroup'
        instanceOwner:
          type: boolean
        username:
          type: string
      description: A User Service Account.
    IAMTenantAccessController.ApiAuthentication:
      type: object
      properties:
        name:
          type: string
        type:
          type: string
    IAMTenantAccessController.ApiCreateTenantAccessRequest:
      required:
      - email
      type: object
      properties:
        email:
          type: string
    IAMTenantAccessController.ApiGroup:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        external:
          type: boolean
    IAMTenantAccessController.ApiRoleAssignment:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        namespace:
          type: string
        origin:
          $ref: '#/components/schemas/RBACService.RoleAssignment.RoleOrigin'
        sourceId:
          type: string
        permissions:
          type: array
          items:
            $ref: '#/components/schemas/IAMTenantAccessController.ApiUserPermission'
    IAMTenantAccessController.ApiTenantAccess:
      type: object
      properties:
        tenantId:
          type: string
        userId:
          type: string
        username:
          type: string
        displayName:
          type: string
        groups:
          type: array
          items:
            $ref: '#/components/schemas/IAMTenantAccessController.ApiGroup'
        roles:
          type: array
          items:
            $ref: '#/components/schemas/IAMTenantAccessController.ApiRoleAssignment'
        instanceOwner:
          type: boolean
    IAMTenantAccessController.ApiUserPermission:
      type: object
      properties:
        resource:
          $ref: '#/components/schemas/Resource'
        actions:
          type: array
          items:
            $ref: '#/components/schemas/Action'
    IAMTenantAccessController.ApiUserTenantAccess:
      type: object
      properties:
        id:
          type: string
        username:
          type: string
        displayName:
          type: string
        description:
          type: string
        groups:
          type: array
          items:
            $ref: '#/components/schemas/IAMTenantAccessController.ApiGroup'
        auths:
          type: array
          items:
            $ref: '#/components/schemas/IAMTenantAccessController.ApiAuthentication'
    IAMTenantAccessController.UserApiAutocomplete:
      type: object
      allOf:
      - $ref: '#/components/schemas/ApiAutocomplete'
      - type: object
        properties:
          username:
            type: string
            nullable: true
    IAMUserController.ApiCreateOrUpdateUserRequest:
      required:
      - email
      type: object
      properties:
        tenants:
          type: array
          items:
            type: string
        groups:
          type: array
          items:
            type: string
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
        password:
          type: string
        instanceOwner:
          type: boolean
        restricted:
          type: boolean
    IAMUserController.ApiDeleteUsersRequest:
      required:
      - ids
      type: object
      properties:
        ids:
          minItems: 1
          type: array
          items:
            type: string
    IAMUserController.ApiGroup:
      type: object
      properties:
        id:
          type: string
        tenantId:
          type: string
    IAMUserController.ApiPatchRestrictedRequest:
      required:
      - restricted
      type: object
      properties:
        restricted:
          type: boolean
    IAMUserController.ApiPatchUserPasswordRequest:
      required:
      - password
      type: object
      properties:
        password:
          type: string
    IAMUserController.ApiUser:
      type: object
      properties:
        id:
          type: string
        username:
          type: string
        displayName:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
        tenants:
          type: array
          items:
            $ref: '#/components/schemas/ApiTenantSummary'
        auths:
          type: array
          items:
            $ref: '#/components/schemas/IAMUserController.ApiUserAuth'
        groups:
          type: array
          items:
            $ref: '#/components/schemas/IAMUserController.ApiGroup'
        instanceOwner:
          type: boolean
        restricted:
          type: boolean
    IAMUserController.ApiUserAuth:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        type:
          type: string
    IAMUserController.ApiUserSummary:
      type: object
      properties:
        id:
          type: string
        username:
          type: string
        displayName:
          type: string
        tenants:
          type: array
          items:
            $ref: '#/components/schemas/ApiTenantSummary'
        auths:
          type: array
          items:
            $ref: '#/components/schemas/IAMUserController.ApiUserAuth'
        instanceOwner:
          type: boolean
    IAMUserGroupController.ApiUpdateUserGroupsRequest:
      type: object
      properties:
        groupIds:
          type: array
          items:
            type: string
    IdWithNamespace:
      type: object
      properties:
        namespace:
          type: string
        id:
          type: string
    IdentityProvider:
      type: object
      properties:
        attributes:
          type: object
          additionalProperties:
            type: object
        externalId:
          type: string
        securityIntegrationId:
          type: string
        securityIntegrationName:
          type: string
    InputType:
      type: object
      properties:
        type:
          type: string
        cls:
          type: string
    Input_Object_:
      required:
      - id
      - type
      type: object
      properties:
        id:
          title: The ID of the input.
          minLength: 1
          pattern: ^[a-zA-Z0-9][.a-zA-Z0-9_-]*
          type: string
        type:
          title: The type of the input.
          allOf:
          - $ref: '#/components/schemas/Type'
        description:
          title: The description of the input.
          type: string
        dependsOn:
          title: The dependencies of the input.
          allOf:
          - $ref: '#/components/schemas/DependsOn'
        required:
          title: Whether the input is required.
          type: boolean
        defaults:
          title: The default value to use if no value is specified.
          allOf:
          - $ref: '#/components/schemas/Property_Object_'
        prefill:
          title: The suggested value for the input.
          description: Optional UI hint for pre-filling the input. Cannot be used together with a default value.
          allOf:
          - $ref: '#/components/schemas/Property_Object_'
        displayName:
          title: The display name of the input.
          type: string
    InstanceController.ApiActiveService:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ServiceType'
        total:
          type: integer
          format: int64
    InstanceController.ApiActiveServiceList:
      type: object
      properties:
        total:
          type: integer
          format: int32
        services:
          type: array
          items:
            $ref: '#/components/schemas/InstanceController.ApiActiveService'
    InstanceController.ApiPluginArtifact:
      type: object
      properties:
        title:
          type: string
        icon:
          $ref: '#/components/schemas/InstanceController.ApiPluginIcon'
        groupId:
          type: string
        artifactId:
          type: string
        versions:
          type: array
          items:
            type: string
        releaseNotesUrl:
          type: string
          nullable: true
    InstanceController.ApiPluginArtifactList_PluginArtifact_:
      type: object
      properties:
        total:
          type: integer
          format: int32
        results:
          type: array
          items:
            type: object
    InstanceController.ApiPluginArtifactList_PluginResolutionResult_:
      type: object
      properties:
        total:
          type: integer
          format: int32
        results:
          type: array
          items:
            type: object
    InstanceController.ApiPluginIcon:
      type: object
      properties:
        hasIcon:
          type: boolean
        monochrome:
          type: boolean
        hash:
          type: string
          nullable: true
    InstanceController.ApiPluginListRequest:
      type: object
      properties:
        plugins:
          type: array
          items:
            type: string
    InstanceController.ApiPluginVersionDetails:
      type: object
      properties:
        artifactId:
          type: string
        groupId:
          type: string
        version:
          type: string
        title:
          type: string
        description:
          type: string
        icon:
          $ref: '#/components/schemas/InstanceController.ApiPluginIcon'
        classes:
          type: array
          items:
            $ref: '#/components/schemas/InstanceController.ApiPluginVersionDetails.ApiPluginClasses'
    InstanceController.ApiPluginVersionDetails.ApiPluginClass:
      type: object
      properties:
        name:
          type: string
    InstanceController.ApiPluginVersionDetails.ApiPluginClasses:
      type: object
      properties:
        type:
          type: string
        classes:
          type: array
          items:
            $ref: '#/components/schemas/InstanceController.ApiPluginVersionDetails.ApiPluginClass'
    InstanceController.ApiPluginVersions:
      type: object
      properties:
        groupId:
          type: string
        artifactId:
          type: string
        versions:
          type: array
          items:
            $ref: '#/components/schemas/InstanceController.ApiPluginVersions.ApiPluginVersionAndMetadata'
    InstanceController.ApiPluginVersions.ApiPluginVersionAndMetadata:
      type: object
      properties:
        version:
          type: string
        metadata:
          $ref: '#/components/schemas/PluginArtifactMetadata'
        releaseNotesUrl:
          type: string
          nullable: true
    InstanceController.ApiServerInstance:
      type: object
      properties:
        id:
          type: string
        type:
          $ref: '#/components/schemas/ServerInstance.Type'
        version:
          type: string
        hostname:
          type: string
    InstanceController.ApiServiceInstance:
      type: object
      properties:
        id:
          type: string
        type:
          $ref: '#/components/schemas/ServiceType'
        state:
          $ref: '#/components/schemas/Service.ServiceState'
        server:
          $ref: '#/components/schemas/InstanceController.ApiServerInstance'
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    Invitation:
      required:
      - deleted
      - email
      type: object
      properties:
        isExpired:
          type: boolean
        email:
          pattern: ^$|^[a-zA-Z0-9_!#$%&’*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$
          type: string
        id:
          type: string
        bindings:
          type: array
          items:
            $ref: '#/components/schemas/Binding'
        groupIds:
          type: array
          items:
            type: string
        tenantId:
          type: string
        status:
          $ref: '#/components/schemas/Invitation.InvitationStatus'
        sentAt:
          type: string
          format: date-time
        expiredAt:
          type: string
          format: date-time
        acceptedAt:
          type: string
          format: date-time
        deleted:
          type: boolean
        userType:
          $ref: '#/components/schemas/UserType'
        instanceOwner:
          type: boolean
        link:
          type: string
    Invitation.InvitationStatus:
      type: string
      enum:
      - PENDING
      - ACCEPTED
      - EXPIRED
    Isolation:
      type: object
      properties:
        deniedServices:
          type: array
          items:
            $ref: '#/components/schemas/ServiceType'
        enabled:
          type: boolean
    KVController.ApiDeleteBulkRequest:
      type: object
      properties:
        keys:
          type: array
          items:
            type: string
    KVController.ApiDeleteBulkResponse:
      type: object
      properties:
        keys:
          type: array
          items:
            type: string
    KVController.KvDetail:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/KVType'
        value:
          type: object
        revision:
          type: integer
          format: int32
        updated:
          type: string
          format: date-time
    KVEntry:
      type: object
      properties:
        namespace:
          type: string
        key:
          type: string
        revision:
          type: integer
          format: int32
        description:
          type: string
          nullable: true
        creationDate:
          type: string
          format: date-time
        updateDate:
          type: string
          format: date-time
        expirationDate:
          type: string
          format: date-time
          nullable: true
    KVType:
      type: string
      enum:
      - STRING
      - NUMBER
      - BOOLEAN
      - DATETIME
      - DATE
      - DURATION
      - JSON
    KillSwitch:
      required:
      - evaluationType
      - name
      - startDate
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        tenantId:
          type: string
        namespace:
          type: string
        flowId:
          type: string
        executionIds:
          type: array
          items:
            type: string
        startDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
        description:
          type: string
        evaluationType:
          $ref: '#/components/schemas/EvaluationType'
        enabled:
          type: boolean
        deleted:
          type: boolean
    Label:
      required:
      - key
      - value
      type: object
      properties:
        key:
          minLength: 1
          pattern: ^[\p{Ll}][\p{L}0-9._-]*$
          type: string
          x-pattern-message: Invalid label key. A valid key contains only lowercase letters numbers hyphens (-) underscores (_) or periods (.) and must begin with a lowercase letter.
        value:
          minLength: 1
          type: string
      description: A key/value pair that can be attached to a Flow or Execution. Labels are often used to organize and categorize objects.
    LeftSidebarConfiguration:
      type: object
      properties:
        disabledMenus:
          type: array
          items:
            type: string
    Level:
      type: string
      enum:
      - ERROR
      - WARN
      - INFO
      - DEBUG
      - TRACE
    LogEntry:
      required:
      - flowId
      - namespace
      type: object
      properties:
        namespace:
          type: string
        flowId:
          type: string
        taskId:
          type: string
          nullable: true
        executionId:
          type: string
          nullable: true
        taskRunId:
          type: string
          nullable: true
        attemptNumber:
          type: integer
          format: int32
          nullable: true
        triggerId:
          type: string
          nullable: true
        timestamp:
          type: string
          format: date-time
        level:
          $ref: '#/components/schemas/Level'
        thread:
          type: string
        message:
          type: string
        executionKind:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ExecutionKind'
        progress:
          type: string
          nullable: true
    LoopRun:
      type: object
      properties:
        parent:
          $ref: '#/components/schemas/Execution'
        taskId:
          type: string
        taskRunId:
          type: string
        index:
          type: integer
          format: int32
        key:
          type: string
          nullable: true
        value:
          type: string
        parents:
          type: array
          items:
            $ref: '#/components/schemas/LoopRun.Parent'
    LoopRun.Parent:
      type: object
      properties:
        index:
          type: integer
          format: int32
        key:
          type: string
          nullable: true
        value:
          type: string
    MaintenanceStatusResponse:
      type: object
      properties:
        maintenance:
          type: boolean
        ready:
          type: boolean
        services:
          type: object
          properties:
            EXECUTOR:
              $ref: '#/components/schemas/MaintenanceStatusResponse.ServiceStatus'
            INDEXER:
              $ref: '#/components/schemas/MaintenanceStatusResponse.ServiceStatus'
            SCHEDULER:
              $ref: '#/components/schemas/MaintenanceStatusResponse.ServiceStatus'
            WEBSERVER:
              $ref: '#/components/schemas/MaintenanceStatusResponse.ServiceStatus'
            WORKER:
              $ref: '#/components/schemas/MaintenanceStatusResponse.ServiceStatus'
            SYSTEM_WORKER:
              $ref: '#/components/schemas/MaintenanceStatusResponse.ServiceStatus'
            CONTROLLER:
              $ref: '#/components/schemas/MaintenanceStatusResponse.ServiceStatus'
            INVALID:
              $ref: '#/components/schemas/MaintenanceStatusResponse.ServiceStatus'
    MaintenanceStatusResponse.ServiceStatus:
      type: object
      properties:
        total:
          type: integer
          format: int32
        inMaintenance:
          type: integer
          format: int32
    Map_Object.Object_:
      type: object
      properties:
        empty:
          type: boolean
    Map_Resource.List_Action__:
      type: object
      properties:
        empty:
          type: boolean
    McpServer.AuthType:
      type: string
      description: Authentication type for private servers.
      enum:
      - BASIC
      - API_TOKEN
      - OAUTH
    McpServer.ServerType:
      type: string
      description: Visibility of the server.
      enum:
      - PRIVATE
      - PUBLIC
    McpServerController.ApiMcpTool:
      type: object
      properties:
        toolName:
          type: string
          description: Unique MCP tool identifier (the trigger's `toolName`). This is the name AI agents use to invoke the tool.
        triggerId:
          type: string
          description: Trigger id within the flow (the `id` field of the McpToolTrigger). Distinct from `toolName`.
        title:
          type: string
          description: Human-readable display title shown to AI agents.
        description:
          type: string
          description: Description of what the tool does and when an AI agent should call it.
        annotations:
          description: MCP tool behavioural annotations.
          allOf:
          - $ref: '#/components/schemas/McpServerController.ApiMcpTool.Annotations'
        namespace:
          type: string
          description: Namespace of the flow that defines this tool.
        flowId:
          type: string
          description: Id of the flow that defines this tool.
        flowRevision:
          type: integer
          description: Revision of the flow that defines this tool.
          format: int32
        disabled:
          type: boolean
          description: Whether this tool is currently disabled (trigger disabled or flow disabled).
    McpServerController.ApiMcpTool.Annotations:
      type: object
      properties:
        readOnly:
          type: boolean
        openWorld:
          type: boolean
        destructive:
          type: boolean
        idempotent:
          type: boolean
        returnDirect:
          type: boolean
      description: MCP tool behavioural annotations.
    MeController.ApiMe:
      type: object
      properties:
        id:
          type: string
        instanceOwner:
          type: boolean
        restricted:
          type: boolean
        profile:
          $ref: '#/components/schemas/MeController.ApiProfile'
        auths:
          type: array
          items:
            $ref: '#/components/schemas/IAMTenantAccessController.ApiAuthentication'
        tenants:
          type: array
          items:
            $ref: '#/components/schemas/MeController.ApiTenant'
        ownedGroups:
          type: array
          items:
            $ref: '#/components/schemas/MeController.ApiOwnedGroup'
    MeController.ApiOwnedGroup:
      type: object
      properties:
        tenantId:
          type: string
        id:
          type: string
    MeController.ApiProfile:
      type: object
      properties:
        email:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        username:
          type: string
    MeController.ApiTenant:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        logo:
          type: string
    MeController.ApiUpdatePasswordRequest:
      required:
      - newPassword
      - oldPassword
      type: object
      properties:
        oldPassword:
          minLength: 1
          type: string
        newPassword:
          minLength: 1
          type: string
    MeController.ApiUserDetailsRequest:
      type: object
      properties:
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
    Meta:
      type: object
      properties:
        resourceType:
          minLength: 1
          type: string
        created:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        location:
          type: string
        version:
          type: string
    Metric:
      type: object
      properties:
        name:
          type: string
        type:
          type: string
        description:
          type: string
        baseUnit:
          type: string
        tags:
          type: array
          items:
            $ref: '#/components/schemas/Metric.Tag'
        value:
          type: number
    Metric.Tag:
      type: object
      properties:
        key:
          type: string
        value:
          type: string
    MetricAggregation:
      required:
      - date
      - name
      type: object
      properties:
        name:
          type: string
        value:
          type: number
          format: double
        date:
          type: string
          format: date-time
    MetricAggregations:
      required:
      - aggregations
      - groupBy
      type: object
      properties:
        groupBy:
          type: string
        aggregations:
          type: array
          items:
            $ref: '#/components/schemas/MetricAggregation'
    MetricEntry:
      required:
      - flowId
      - name
      - namespace
      - timestamp
      - type
      - value
      type: object
      properties:
        namespace:
          type: string
        flowId:
          type: string
        taskId:
          type: string
          nullable: true
        executionId:
          type: string
          nullable: true
        taskRunId:
          type: string
          nullable: true
        type:
          type: string
        name:
          type: string
        value:
          type: number
          format: double
        timestamp:
          type: string
          format: date-time
        tags:
          type: object
          additionalProperties:
            type: string
          nullable: true
        executionKind:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ExecutionKind'
    MiscController.ApiUsage:
      type: object
      properties:
        flows:
          $ref: '#/components/schemas/FlowUsage'
        executions:
          $ref: '#/components/schemas/ExecutionUsage'
    MiscController.Configuration:
      type: object
      properties:
        uuid:
          type: string
        version:
          type: string
        edition:
          $ref: '#/components/schemas/EditionProvider.Edition'
        commitId:
          type: string
        chartDefaultDuration:
          type: string
        flowTemplate:
          type: string
        commitDate:
          type: string
          format: date-time
        versionUpgrade:
          $ref: '#/components/schemas/VersionService.VersionUpgrade'
        isCustomDashboardsEnabled:
          type: boolean
        isAnonymousUsageEnabled:
          type: boolean
        isUiAnonymousUsageEnabled:
          type: boolean
        environment:
          $ref: '#/components/schemas/MiscController.Environment'
        url:
          type: string
        preview:
          $ref: '#/components/schemas/MiscController.Preview'
        systemNamespace:
          type: string
        hiddenLabelsPrefixes:
          type: array
          items:
            type: string
        isAiEnabled:
          type: boolean
        isAiApiKeyConfigured:
          type: boolean
        isBasicAuthInitialized:
          type: boolean
        pluginsHash:
          type: integer
          format: int64
        isPluginAutoInstallEnabled:
          type: boolean
    MiscController.EEConfiguration:
      type: object
      allOf:
      - $ref: '#/components/schemas/MiscController.Configuration'
      - type: object
        properties:
          tenants:
            $ref: '#/components/schemas/MiscController.TenantConfigurationInfo'
          secretsEnabled:
            type: boolean
          supportedStorages:
            type: array
            items:
              $ref: '#/components/schemas/MiscController.PluginIdAndVersion'
          supportedSecrets:
            type: array
            items:
              $ref: '#/components/schemas/MiscController.PluginIdAndVersion'
          pluginManagementEnabled:
            type: boolean
          pluginCustomEnabled:
            type: boolean
          banner:
            $ref: '#/components/schemas/Banner'
          mailServiceEnabled:
            type: boolean
          outputsInInternalStorageEnabled:
            type: boolean
          leftSidebar:
            $ref: '#/components/schemas/LeftSidebarConfiguration'
          rightSidebar:
            $ref: '#/components/schemas/RightSidebarConfiguration'
          supportEnabled:
            type: boolean
          inMaintenance:
            type: boolean
          passwordConfiguration:
            $ref: '#/components/schemas/PasswordConfiguration'
          passwordlessEnabled:
            type: boolean
          airgapped:
            type: boolean
          featureGating:
            type: boolean
          features:
            type: array
            items:
              type: string
          killSwitches:
            type: array
            items:
              $ref: '#/components/schemas/KillSwitch'
          workerAuthEnabled:
            type: boolean
    MiscController.Environment:
      type: object
      properties:
        name:
          type: string
        color:
          type: string
    MiscController.LicenseInfo:
      type: object
      properties:
        type:
          type: string
        expiry:
          type: string
          format: date-time
        expired:
          type: boolean
        maxServers:
          type: integer
          format: int32
        standalone:
          type: boolean
        workerGroups:
          type: boolean
        online:
          type: boolean
        gracePeriod:
          type: string
          format: date-time
        expiryWarningDays:
          type: integer
          format: int64
    MiscController.LoginConfiguration:
      type: object
      properties:
        isBasicAuthInitialized:
          type: boolean
    MiscController.LoginRequest:
      type: object
      properties:
        username:
          type: string
        password:
          type: string
    MiscController.PluginIdAndVersion:
      type: object
      properties:
        id:
          type: string
        version:
          type: string
    MiscController.Preview:
      type: object
      properties:
        initial:
          type: integer
          format: int32
        max:
          type: integer
          format: int32
    MiscController.TenantConfigurationInfo:
      type: object
      properties:
        storageByTenant:
          type: boolean
        secretByTenant:
          type: boolean
    MiscController.WorkerSelectorTags:
      type: object
      properties:
        tags:
          type: array
          items:
            type: string
    Name:
      type: object
      properties:
        familyName:
          type: string
        givenName:
          type: string
      description: Scim core schema.
    Namespace:
      required:
      - deleted
      - id
      type: object
      properties:
        id:
          pattern: ^[a-z0-9][a-z0-9._-]*
          type: string
        storageIsolation:
          $ref: '#/components/schemas/Isolation'
        secretIsolation:
          $ref: '#/components/schemas/Isolation'
        deleted:
          type: boolean
        description:
          type: string
        variables:
          type: object
          additionalProperties:
            type: object
        allowedNamespaces:
          type: array
          items:
            $ref: '#/components/schemas/Namespace.AllowedNamespace'
        defaultWorkerSelector:
          $ref: '#/components/schemas/WorkerSelector'
        concurrency:
          description: The concurrency limit applying to the executions of every flow inside this namespace and its descendants.
          allOf:
          - $ref: '#/components/schemas/Concurrency'
        storageType:
          type: string
        storageConfiguration:
          type: object
          additionalProperties:
            type: object
        secretType:
          type: string
        secretReadOnly:
          type: boolean
        secretConfiguration:
          type: object
          additionalProperties:
            type: object
        workerSecretManagerMode:
          $ref: '#/components/schemas/SecretConfiguration.WorkerSecretManagerMode'
        outputsInInternalStorage:
          type: boolean
        sdkDefaultAuthentication:
          $ref: '#/components/schemas/SDK.Auth'
        quotas:
          type: array
          items:
            $ref: '#/components/schemas/Quota'
      description: A namespace is a logical grouping of flows and tasks. It is used to organize and manage flows and tasks within Kestra.
      allOf:
      - $ref: '#/components/schemas/NamespaceLight'
    Namespace.AllowedNamespace:
      required:
      - namespace
      type: object
      properties:
        namespace:
          type: string
    NamespaceFileRevision:
      type: object
      properties:
        revision:
          type: integer
          format: int32
    NamespaceLight:
      required:
      - id
      type: object
      properties:
        id:
          pattern: ^[a-z0-9][a-z0-9._-]*
          type: string
    Notification:
      required:
      - createdDate
      - title
      - type
      - updatedDate
      - userId
      type: object
      properties:
        id:
          type: string
        userId:
          type: string
        tenantId:
          type: string
          nullable: true
        type:
          $ref: '#/components/schemas/NotificationType'
        title:
          type: string
        referenceId:
          type: string
          nullable: true
        current:
          type: integer
          format: int32
          nullable: true
        total:
          type: integer
          format: int32
          nullable: true
        read:
          type: boolean
        createdDate:
          type: string
          format: date-time
        updatedDate:
          type: string
          format: date-time
    NotificationController.ApiMarkAllRead:
      type: object
      properties:
        updated:
          type: integer
          format: int32
    NotificationController.ApiNotificationHistory:
      type: object
      properties:
        notifications:
          type: array
          items:
            $ref: '#/components/schemas/Notification'
        serverTime:
          type: string
          format: date-time
        nextCursor:
          type: string
          nullable: true
    NotificationController.ApiNotificationsSince:
      type: object
      properties:
        notifications:
          type: array
          items:
            $ref: '#/components/schemas/Notification'
        serverTime:
          type: string
          format: date-time
    NotificationType:
      type: string
      enum:
      - GENERIC
      - CASE_CREATED
      - CASE_ASSIGNED
      - CASE_STATUS_CHANGED
      - CASE_COMMENTED
      - CASE_SEVERITY_CHANGED
      - CASE_SLA_ACKNOWLEDGEMENT_BREACHED
      - CASE_SLA_RESOLUTION_BREACHED
      - HUMAN_TASK_PENDING
      - SYSTEM_EXECUTION_FAILED
    OAuth2Config:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/OAuth2ConfigType'
      description: OAuth2 authentication configuration (sensitive fields masked)
    OAuth2ConfigType:
      type: string
      enum:
      - CLIENT_CREDENTIALS
      - JWT_BEARER
      - PRIVATE_KEY_JWT
      - UNKNOWN
      x-type: String
    Origin:
      type: object
      properties:
        flowNamespace:
          type: string
        flowId:
          type: string
        taskId:
          type: string
        executionId:
          type: string
          nullable: true
    Output:
      required:
      - id
      - type
      - value
      type: object
      properties:
        id:
          minLength: 1
          pattern: ^[a-zA-Z0-9][.a-zA-Z0-9_-]*
          type: string
        description:
          type: string
        value:
          oneOf:
          - type: object
          - type: string
        type:
          $ref: '#/components/schemas/Type'
        displayName:
          type: string
        required:
          type: boolean
    OutputController.TaskOutputInformation:
      type: object
      properties:
        taskId:
          type: string
        taskRunId:
          type: string
        value:
          type: string
        iteration:
          type: integer
          format: int32
        inline:
          type: boolean
    PageRequest:
      type: object
      properties:
        startIndex:
          type: integer
          format: int32
        count:
          type: integer
          format: int32
    PagedResults_ApiCredentialResponse_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/ApiCredentialResponse'
        total:
          type: integer
          format: int64
    PagedResults_ApiGroupSummary_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/ApiGroupSummary'
        total:
          type: integer
          format: int64
    PagedResults_ApiInstanceMcpServer_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/ApiInstanceMcpServer'
        total:
          type: integer
          format: int64
    PagedResults_ApiLightExecution_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/ApiLightExecution'
        total:
          type: integer
          format: int64
    PagedResults_ApiMcpServer_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/ApiMcpServer'
        total:
          type: integer
          format: int64
    PagedResults_ApiPolicySummary_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/PolicySummary'
        total:
          type: integer
          format: int64
    PagedResults_ApiPromotionResponse_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/ApiPromotionResponse'
        total:
          type: integer
          format: int64
    PagedResults_ApiPromotionTargetResponse_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/ApiPromotionTargetResponse'
        total:
          type: integer
          format: int64
    PagedResults_ApiRoleSummary_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/ApiRoleSummary'
        total:
          type: integer
          format: int64
    PagedResults_ApiTriggerAndState_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/ApiTriggerAndState'
        total:
          type: integer
          format: int64
    PagedResults_ApiTriggerState_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/ApiTriggerState'
        total:
          type: integer
          format: int64
    PagedResults_AppsController.ApiAppCatalogItem_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/AppsController.ApiAppCatalogItem'
        total:
          type: integer
          format: int64
    PagedResults_AppsController.ApiApp_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/AppsController.ApiApp'
        total:
          type: integer
          format: int64
    PagedResults_AssetsController.ApiAssetLineageEvent_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/AssetsController.ApiAssetLineageEvent'
        total:
          type: integer
          format: int64
    PagedResults_AssetsController.ApiAssetUsage_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/AssetsController.ApiAssetUsage'
        total:
          type: integer
          format: int64
    PagedResults_AssetsController.ApiAsset_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/AssetsController.ApiAsset'
        total:
          type: integer
          format: int64
    PagedResults_AuditLogController.ApiAuditLogItem_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/AuditLogController.ApiAuditLogItem'
        total:
          type: integer
          format: int64
    PagedResults_BlueprintController.ApiBlueprintItem_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/BlueprintController.ApiBlueprintItem'
        total:
          type: integer
          format: int64
    PagedResults_Blueprint_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/Blueprint'
        total:
          type: integer
          format: int64
    PagedResults_CaseTemplatesController.ApiCaseTemplate_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/CaseTemplatesController.ApiCaseTemplate'
        total:
          type: integer
          format: int64
    PagedResults_CasesController.ApiCaseAsset_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/CasesController.ApiCaseAsset'
        total:
          type: integer
          format: int64
    PagedResults_CasesController.ApiCaseEvent_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/CasesController.ApiCaseEvent'
        total:
          type: integer
          format: int64
    PagedResults_CasesController.ApiCaseExecution_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/CasesController.ApiCaseExecution'
        total:
          type: integer
          format: int64
    PagedResults_CasesController.ApiCaseSummary_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/CasesController.ApiCaseSummary'
        total:
          type: integer
          format: int64
    PagedResults_CasesController.ApiCase_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/CasesController.ApiCase'
        total:
          type: integer
          format: int64
    PagedResults_CasesController.ApiSubjectRef_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/CasesController.ApiSubjectRef'
        total:
          type: integer
          format: int64
    PagedResults_ConcurrencyLimit_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/ConcurrencyLimit'
        total:
          type: integer
          format: int64
    PagedResults_DashboardController.DashboardResponse_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/DashboardController.DashboardResponse'
        total:
          type: integer
          format: int64
    PagedResults_Flow_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/Flow'
        total:
          type: integer
          format: int64
    PagedResults_IAMBindingController.ApiBindingDetail_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/IAMBindingController.ApiBindingDetail'
        total:
          type: integer
          format: int64
    PagedResults_IAMGroupController.ApiGroupMember_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/IAMGroupController.ApiGroupMember'
        total:
          type: integer
          format: int64
    PagedResults_IAMInvitationController.ApiInvitationDetail_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/IAMInvitationController.ApiInvitationDetail'
        total:
          type: integer
          format: int64
    PagedResults_IAMServiceAccountController.ApiServiceAccountDetail_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/IAMServiceAccountController.ApiServiceAccountDetail'
        total:
          type: integer
          format: int64
    PagedResults_IAMTenantAccessController.ApiUserTenantAccess_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/IAMTenantAccessController.ApiUserTenantAccess'
        total:
          type: integer
          format: int64
    PagedResults_IAMUserController.ApiUserSummary_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/IAMUserController.ApiUserSummary'
        total:
          type: integer
          format: int64
    PagedResults_InstanceController.ApiPluginArtifact_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/InstanceController.ApiPluginArtifact'
        total:
          type: integer
          format: int64
    PagedResults_InstanceController.ApiServiceInstance_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/InstanceController.ApiServiceInstance'
        total:
          type: integer
          format: int64
    PagedResults_KVEntry_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/KVEntry'
        total:
          type: integer
          format: int64
    PagedResults_Map_String.Object__:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            type: object
            additionalProperties:
              type: object
        total:
          type: integer
          format: int64
    PagedResults_MetricEntry_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/MetricEntry'
        total:
          type: integer
          format: int64
    PagedResults_Namespace_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/Namespace'
        total:
          type: integer
          format: int64
    PagedResults_PluginController.ApiTriggerPlugin_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/PluginController.ApiTriggerPlugin'
        total:
          type: integer
          format: int64
    PagedResults_Plugin_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/Plugin'
        total:
          type: integer
          format: int64
    PagedResults_ReusableInputsWithSource_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/ReusableInputsWithSource'
        total:
          type: integer
          format: int64
    PagedResults_SecurityIntegration_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/SecurityIntegration'
        total:
          type: integer
          format: int64
    PagedResults_SourceSearchResult_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/SourceSearchResult'
        total:
          type: integer
          format: int64
    PagedResults_Tenant_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/Tenant'
        total:
          type: integer
          format: int64
    PagedResults_TestSuiteRunResult_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/TestSuiteRunResult'
        total:
          type: integer
          format: int64
    PagedResults_TestSuite_:
      required:
      - results
      - total
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/TestSuite'
        total:
          type: integer
          format: int64
    PaginationType:
      type: string
      enum:
      - OFFSET
      - CURSOR
    PasswordConfiguration:
      type: object
      properties:
        passwordMinLength:
          type: integer
          format: int32
          default: 8
        passwordRequireSpecial:
          type: boolean
          default: true
        passwordMinDigits:
          type: integer
          format: int32
          default: 1
        passwordMinLowerCase:
          type: integer
          format: int32
          default: 1
        passwordMinUpperCase:
          type: integer
          format: int32
          default: 1
        passwordAllowedSpecialCharacters:
          type: string
          default: '!@#$%^&*_-'
        passwordReset:
          $ref: '#/components/schemas/PasswordConfiguration.PasswordReset'
        passwordValidate:
          $ref: '#/components/schemas/PasswordConfiguration.PasswordValidate'
    PasswordConfiguration.PasswordReset:
      type: object
      properties:
        cooldown:
          type: string
          default: PT5M
        rateLimit:
          $ref: '#/components/schemas/PasswordConfiguration.RateLimit'
    PasswordConfiguration.PasswordValidate:
      type: object
      properties:
        cooldown:
          type: string
          default: PT5M
        rateLimit:
          $ref: '#/components/schemas/PasswordConfiguration.RateLimit'
    PasswordConfiguration.RateLimit:
      type: object
      properties:
        maxRequests:
          type: integer
          format: int32
          default: 10
        window:
          type: string
          default: PT1H
    PatchOperation:
      type: object
      properties:
        operation:
          $ref: '#/components/schemas/PatchOperation.Type'
        path:
          $ref: '#/components/schemas/PatchOperationPath'
        value:
          type: object
    PatchOperation.Type:
      type: string
      enum:
      - ADD
      - REMOVE
      - REPLACE
    PatchOperationPath:
      type: object
      properties:
        valuePathExpression:
          $ref: '#/components/schemas/ValuePathExpression'
    PatchRequest:
      type: object
      allOf:
      - $ref: '#/components/schemas/BaseResource_PatchRequest_'
      - type: object
        properties:
          patchOperationList:
            type: array
            items:
              $ref: '#/components/schemas/PatchOperation'
    PebbleFunction:
      type: object
      properties:
        name:
          type: string
        arguments:
          type: array
          items:
            $ref: '#/components/schemas/PebbleFunction.Argument'
    PebbleFunction.Argument:
      type: object
      properties:
        name:
          type: string
        defaultValue:
          type: string
          nullable: true
    Plugin:
      type: object
      properties:
        name:
          type: string
        title:
          type: string
        description:
          type: string
        license:
          type: string
        longDescription:
          type: string
        group:
          type: string
        version:
          type: string
        manifest:
          type: object
          additionalProperties:
            type: string
        guides:
          type: array
          items:
            type: string
        aliases:
          type: array
          items:
            type: string
        tasks:
          type: array
          items:
            $ref: '#/components/schemas/Plugin.PluginElementMetadata'
        triggers:
          type: array
          items:
            $ref: '#/components/schemas/Plugin.PluginElementMetadata'
        controllers:
          type: array
          items:
            $ref: '#/components/schemas/Plugin.PluginElementMetadata'
        storages:
          type: array
          items:
            $ref: '#/components/schemas/Plugin.PluginElementMetadata'
        secrets:
          type: array
          items:
            $ref: '#/components/schemas/Plugin.PluginElementMetadata'
        taskRunners:
          type: array
          items:
            $ref: '#/components/schemas/Plugin.PluginElementMetadata'
        apps:
          type: array
          items:
            $ref: '#/components/schemas/Plugin.PluginElementMetadata'
        appBlocks:
          type: array
          items:
            $ref: '#/components/schemas/Plugin.PluginElementMetadata'
        charts:
          type: array
          items:
            $ref: '#/components/schemas/Plugin.PluginElementMetadata'
        dataFilters:
          type: array
          items:
            $ref: '#/components/schemas/Plugin.PluginElementMetadata'
        dataFiltersKPI:
          type: array
          items:
            $ref: '#/components/schemas/Plugin.PluginElementMetadata'
        logExporters:
          type: array
          items:
            $ref: '#/components/schemas/Plugin.PluginElementMetadata'
        additionalPlugins:
          type: array
          items:
            $ref: '#/components/schemas/Plugin.PluginElementMetadata'
        categories:
          type: array
          items:
            $ref: '#/components/schemas/PluginSubGroup.PluginCategory'
        subGroup:
          type: string
    Plugin.PluginElementMetadata:
      type: object
      properties:
        cls:
          type: string
        deprecated:
          type: boolean
        title:
          type: string
        description:
          type: string
        aliases:
          type: array
          items:
            type: string
    PluginArtifact:
      type: object
      properties:
        groupId:
          type: string
        artifactId:
          type: string
        extension:
          type: string
        classifier:
          type: string
        version:
          type: string
        uri:
          type: string
          format: uri
    PluginArtifactMetadata:
      type: object
      properties:
        uri:
          type: string
          format: uri
        name:
          type: string
        size:
          type: integer
          format: int64
        lastModifiedTime:
          type: integer
          format: int64
        creationTime:
          type: integer
          format: int64
    PluginController.ApiPluginVersions:
      type: object
      properties:
        type:
          type: string
        versions:
          type: array
          items:
            type: string
    PluginController.ApiTriggerPlugin:
      type: object
      properties:
        type:
          type: string
        name:
          type: string
        pluginTitle:
          type: string
        pluginGroupTitle:
          type: string
        description:
          type: string
        group:
          $ref: '#/components/schemas/TriggerPluginCategory'
        ee:
          type: boolean
        icon:
          type: string
        deprecated:
          type: boolean
    PluginController.PluginIconResponse:
      type: object
      properties:
        icon:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/PluginIcon'
    PluginDistribution:
      type: string
      enum:
      - OSS
      - EE
    PluginIcon:
      type: object
      properties:
        name:
          type: string
        icon:
          type: string
        flowable:
          type: boolean
        monochrome:
          type: boolean
        hash:
          type: string
    PluginInstallJob:
      type: object
      properties:
        id:
          type: string
          format: uuid
        status:
          $ref: '#/components/schemas/PluginInstallJob.Status'
        artifacts:
          type: array
          items:
            $ref: '#/components/schemas/PluginArtifact'
        progress:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/PluginInstallJob.ArtifactProgress'
        startedAt:
          type: string
          format: date-time
        finishedAt:
          type: string
          format: date-time
        error:
          type: string
    PluginInstallJob.ArtifactProgress:
      type: object
      properties:
        resource:
          type: string
        transferred:
          type: integer
          format: int64
        total:
          type: integer
          format: int64
        state:
          $ref: '#/components/schemas/PluginInstallJob.ArtifactState'
    PluginInstallJob.ArtifactState:
      type: string
      enum:
      - STARTED
      - PROGRESSING
      - SUCCEEDED
      - FAILED
    PluginInstallJob.Status:
      type: string
      enum:
      - PENDING
      - RUNNING
      - SUCCEEDED
      - FAILED
    PluginSchema:
      type: object
      properties:
        properties:
          type: object
          additionalProperties:
            type: object
        outputs:
          type: object
          additionalProperties:
            type: object
        definitions:
          type: object
          additionalProperties:
            type: object
    PluginSubGroup.PluginCategory:
      type: string
      enum:
      - DATABASE
      - MESSAGING
      - SCRIPT
      - TRANSFORMATION
      - BATCH
      - ALERTING
      - CLOUD
      - STORAGE
      - OTHER
      - TOOL
      - AI
      - CORE
      - INGESTION
      - BI
      - BUSINESS
      - DATA
      - INFRASTRUCTURE
      x-deprecated:
      - DATABASE
      - MESSAGING
      - SCRIPT
      - TRANSFORMATION
      - BATCH
      - ALERTING
      - STORAGE
      - OTHER
      - TOOL
      - INGESTION
      - BI
    PluginUiManifest:
      type: object
      properties:
        manifest:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/PluginUiModuleWithGroup'
    PluginUiModuleWithGroup:
      type: object
      properties:
        uiModule:
          type: string
        group:
          type: string
        staticInfo:
          type: object
          additionalProperties:
            type: object
        styles:
          type: array
          items:
            type: string
        sourceHash:
          type: string
        distribution:
          $ref: '#/components/schemas/PluginDistribution'
    Policy:
      required:
      - deleted
      - enforcement
      - id
      - rules
      type: object
      properties:
        id:
          title: The policy identity — a lowercase RFC 1123 label, unique per (scope, tenantId, namespace).
          type: string
        displayName:
          title: Human-friendly name rendered in the Governance UI.
          type: string
        description:
          title: Human-readable intent of the policy.
          type: string
        enforcement:
          title: Lifecycle state of the policy.
          allOf:
          - $ref: '#/components/schemas/Enforcement'
        target:
          title: 'Optional application refinement within the scope''s reach: tenants for INSTANCE/STATIC, namespace subtrees for TENANT. Absent = the whole placement.'
          allOf:
          - $ref: '#/components/schemas/PolicyTarget'
        rules:
          title: The mutate and validate rules; non-empty, any mix of the two families.
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/Rule'
        source:
          title: 'The YAML source, preserved for round-trip editing: the authored source for API/imported policies, or a canonical serialization for the config-declared and migrated ones.'
          type: string
        deleted:
          type: boolean
      description: A governance policy bundling a scope placement with mutate and validate rules applied to flows.
    PolicyConflict:
      type: object
      properties:
        target:
          title: The property path both rules target.
          type: string
        addPolicyId:
          title: The id of the policy whose Add rule injects the property.
          type: string
        addScope:
          title: The scope of the policy whose Add rule injects the property.
          allOf:
          - $ref: '#/components/schemas/Scope'
        deletePolicyId:
          title: The id of the policy whose Delete rule removes the property.
          type: string
        deleteScope:
          title: The scope of the policy whose Delete rule removes the property.
          allOf:
          - $ref: '#/components/schemas/Scope'
      description: An Add-vs-Delete collision on the same property within one scope chain.
    PolicyEvaluation:
      type: object
      properties:
        counts:
          title: The aggregate counters over every scanned resource; counts.scanned is the denominator.
          allOf:
          - $ref: '#/components/schemas/ApiPolicyEvaluation.Counts'
        total:
          title: The total number of affected resources across all pages.
          type: integer
          format: int64
        results:
          title: The requested page of affected resources — those the policy would mutate, block, or conflict on.
          type: array
          items:
            $ref: '#/components/schemas/PolicyEvaluationResult'
      description: Stateless dry-run of a single policy against every resource in its scope.
    PolicyEvaluationResult:
      type: object
      properties:
        resource:
          title: The identity of the affected resource.
          allOf:
          - $ref: '#/components/schemas/ApiPolicyEvaluation.Resource'
        mutations:
          title: The per-property changes the policy would make to the resource.
          type: array
          items:
            $ref: '#/components/schemas/PolicyMutation'
        violations:
          title: The rule violations the policy would report against the resource.
          type: array
          items:
            $ref: '#/components/schemas/PolicyViolation'
        conflicts:
          title: The Add-vs-Delete collisions detected while applying the policy.
          type: array
          items:
            $ref: '#/components/schemas/PolicyConflict'
      description: One affected resource with the mutations, violations, and conflicts the policy would produce on it.
    PolicyImportResult:
      type: object
      properties:
        imported:
          type: integer
          format: int32
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ApiPolicyImportResult.Error'
      description: 'Result of a policy import: how many policies were imported, plus per-document errors (valid documents still import).'
    PolicyMutation:
      type: object
      properties:
        action:
          title: The kind of change.
          allOf:
          - $ref: '#/components/schemas/ApiPolicyMutation.Action'
        target:
          title: The property path that changed.
          type: string
        value:
          title: The value after enforcement; null for REMOVED.
          type: object
        previousValue:
          title: The value before enforcement; null for ADDED.
          type: object
        policyId:
          title: The id of the policy that made the change.
          type: string
        scope:
          title: The scope of the policy that made the change.
          allOf:
          - $ref: '#/components/schemas/Scope'
      description: A single change a policy made to a property, attributed to the policy that last wrote it.
    PolicyPreviewRequest:
      required:
      - namespace
      - source
      type: object
      properties:
        namespace:
          type: string
        source:
          type: string
      description: 'Request body for the merged policy preview: a flow source to resolve policies against, plus the namespace it targets.'
    PolicyPreviewResponse:
      type: object
      properties:
        resolvedSource:
          title: The flow source after applying the policy mutations; identical to the input when no policy applies.
          type: string
        mutations:
          title: The per-property changes the policies made to the flow.
          type: array
          items:
            $ref: '#/components/schemas/PolicyMutation'
        violations:
          title: The rule violations reported against the post-mutation flow.
          type: array
          items:
            $ref: '#/components/schemas/PolicyViolation'
        conflicts:
          title: The Add-vs-Delete collisions detected within the policy chain.
          type: array
          items:
            $ref: '#/components/schemas/PolicyConflict'
      description: Result of dry-running the applicable policy chain against a flow source.
    PolicyRuleSummary:
      type: object
      properties:
        mutate:
          type: integer
          format: int32
        validate:
          type: integer
          format: int32
      description: Rule counts by family.
    PolicySummary:
      type: object
      properties:
        id:
          type: string
        displayName:
          type: string
        description:
          type: string
        scope:
          $ref: '#/components/schemas/Scope'
        namespace:
          type: string
        target:
          $ref: '#/components/schemas/PolicyTarget'
        enforcement:
          $ref: '#/components/schemas/Enforcement'
        rules:
          $ref: '#/components/schemas/PolicyRuleSummary'
      description: A governance policy listing entry, without the rule payloads.
    PolicyTarget:
      type: object
      properties:
        tenants:
          title: The tenants the policy applies to; INSTANCE and STATIC scopes only. Absent = every tenant.
          type: array
          items:
            type: string
        namespaces:
          title: The namespace subtrees the policy applies to; TENANT scope only. Absent = the whole tenant.
          type: array
          items:
            type: string
      description: 'Narrows where the policy applies within its scope: tenants for INSTANCE/STATIC policies, namespace subtrees for TENANT policies.'
    PolicyViolation:
      type: object
      properties:
        severity:
          title: The severity of the violation — BLOCK rejects the resource, WARN only reports.
          allOf:
          - $ref: '#/components/schemas/RuleAction'
        ruleType:
          title: The fully-qualified type of the rule that reported the violation.
          type: string
        target:
          title: The property path (or plugin type) the violation applies to.
          type: string
        message:
          title: The human-readable violation message.
          type: string
        policyId:
          title: The id of the policy carrying the violated rule.
          type: string
        scope:
          title: The scope of the policy carrying the violated rule.
          allOf:
          - $ref: '#/components/schemas/Scope'
        taskId:
          title: The id of the violating task or trigger; null for resource-level violations.
          type: string
      description: A single rule violation reported against the post-mutation resource.
    ProblemDetail:
      type: object
      properties:
        type:
          type: string
          description: Stable, machine-readable identifier of the problem kind, resolving to its documentation. This is what clients branch on.
          format: uri
          example: https://kestra.io/docs/api-reference/problems/entity-already-exists
        title:
          type: string
          description: Short, human-readable summary of the problem kind. Stable for a given type and never parameterised.
          example: Entity already exists
        status:
          type: integer
          description: The HTTP status code, repeated here for convenience.
          format: int32
          example: 409
        detail:
          type: string
          description: Human-readable explanation specific to this occurrence.
          example: A flow with id 'my-flow' already exists in namespace 'company.team'.
        instance:
          type: string
          description: The path of the request that produced this problem.
          example: /api/v1/main/flows
        errors:
          type: array
          description: Field-level errors, when several problems are reported at once.
          items:
            $ref: '#/components/schemas/ProblemError'
        traceId:
          type: string
          description: Correlation identifier for the matching server-side log entry. Present on server errors only.
          example: 4bf92f3577b34da6a3ce929d0e0e4736
      description: An RFC 9457 problem details document describing a failed request.
    ProblemError:
      type: object
      properties:
        detail:
          type: string
          description: What is wrong with this field.
          example: must not be null
        pointer:
          type: string
          description: RFC 6901 JSON Pointer locating the field in the submitted document.
          example: /tasks/0/type
        path:
          type: string
          description: Human-friendly path locating the field, naming tasks and inputs by id. Not a JSON Pointer.
          example: tasks[my-task].type
        type:
          type: string
          description: Problem type of this individual error, when it differs per item. Follows the same URI scheme as the enclosing document.
          format: uri
          example: https://kestra.io/docs/api-reference/problems/not-found
      description: A single field-level error inside a problem details document.
    PromotionState:
      type: string
      description: The terminal state (null when confirmation is required)
      enum:
      - SUCCESS
      - FAILED
    Property_AssetFailureBehavior_:
      type: object
      properties:
        expression:
          type: string
        value:
          $ref: '#/components/schemas/AssetFailureBehavior'
      oneOf:
      - type: object
      - type: string
    Property_Boolean_:
      type: object
      properties:
        expression:
          type: string
        value:
          type: boolean
      oneOf:
      - type: object
      - type: string
    Property_Double_:
      type: object
      properties:
        expression:
          type: string
        value:
          type: number
          format: double
      oneOf:
      - type: object
      - type: string
    Property_Duration_:
      type: object
      properties:
        expression:
          type: string
        value:
          type: string
      oneOf:
      - type: object
      - type: string
    Property_List_AssetIdentifier__:
      type: object
      properties:
        expression:
          type: string
        value:
          type: array
          items:
            $ref: '#/components/schemas/AssetIdentifier'
      oneOf:
      - type: object
      - type: string
    Property_List_Asset__:
      type: object
      properties:
        expression:
          type: string
        value:
          type: array
          items:
            $ref: '#/components/schemas/Asset'
      oneOf:
      - type: object
      - type: string
    Property_List_String__:
      type: object
      properties:
        expression:
          type: string
        value:
          type: array
          items:
            type: string
      oneOf:
      - type: object
      - type: string
    Property_Object_:
      type: object
      properties:
        expression:
          type: string
        value:
          type: object
      oneOf:
      - type: object
      - type: string
    Property_String_:
      type: object
      properties:
        expression:
          type: string
        value:
          type: string
      oneOf:
      - type: object
      - type: string
    QueryFilter:
      type: object
      properties:
        field:
          $ref: '#/components/schemas/QueryFilter.Field'
        operation:
          $ref: '#/components/schemas/QueryFilter.Op'
        value:
          type: object
        logical:
          $ref: '#/components/schemas/QueryFilter.Logical'
        children:
          type: array
          items:
            $ref: '#/components/schemas/QueryFilter'
    QueryFilter.Field:
      type: string
      enum:
      - q
      - scope
      - namespace
      - kind
      - POLICY_SCOPE
      - ENFORCEMENT
      - labels
      - tags
      - metadata
      - flowId
      - flowRevision
      - id
      - assetId
      - type
      - action
      - created
      - updated
      - startDate
      - endDate
      - expirationDate
      - state
      - status
      - SEVERITY
      - ASSIGNEE
      - email
      - timeRange
      - parentId
      - triggerExecutionId
      - triggerId
      - triggerState
      - executionId
      - taskId
      - taskRunId
      - attemptNumber
      - childFilter
      - workerId
      - existingOnly
      - userId
      - resources
      - details
      - level
      - path
      - parentPath
      - version
      - enabled
      - username
      - name
      - groupList
      - external_id
      - expired_at
      - instance_owner
      - source
      - locked
      - lastTriggeredDate
      - nextExecutionDate
      - artifactId
      x-enum-varnames:
      - QUERY
      - SCOPE
      - NAMESPACE
      - KIND
      - POLICY_SCOPE
      - ENFORCEMENT
      - LABELS
      - TAGS
      - METADATA
      - FLOW_ID
      - FLOW_REVISION
      - ID
      - ASSET_ID
      - TYPE
      - ACTION
      - CREATED
      - UPDATED
      - START_DATE
      - END_DATE
      - EXPIRATION_DATE
      - STATE
      - STATUS
      - SEVERITY
      - ASSIGNEE
      - EMAIL
      - TIME_RANGE
      - PARENT_ID
      - TRIGGER_EXECUTION_ID
      - TRIGGER_ID
      - TRIGGER_STATE
      - EXECUTION_ID
      - TASK_ID
      - TASK_RUN_ID
      - ATTEMPT_NUMBER
      - CHILD_FILTER
      - WORKER_ID
      - EXISTING_ONLY
      - USER_ID
      - RESOURCES
      - DETAILS
      - LEVEL
      - PATH
      - PARENT_PATH
      - VERSION
      - ENABLED
      - USERNAME
      - NAME
      - GROUP
      - EXTERNAL_ID
      - EXPIRED_AT
      - INSTANCE_OWNER
      - SOURCE
      - LOCKED
      - LAST_TRIGGERED_DATE
      - NEXT_EXECUTION_DATE
      - ARTIFACT_ID
      x-type: String
    QueryFilter.Logical:
      type: string
      enum:
      - and
      - or
      x-type: String
    QueryFilter.Op:
      type: string
      enum:
      - EQUALS
      - NOT_EQUALS
      - GREATER_THAN
      - LESS_THAN
      - GREATER_THAN_OR_EQUAL_TO
      - LESS_THAN_OR_EQUAL_TO
      - IN
      - NOT_IN
      - STARTS_WITH
      - ENDS_WITH
      - CONTAINS
      - NOT_CONTAINS
      - IS_NULL
      - IS_NOT_NULL
      - REGEX
      - PREFIX
    QueueSubscription.Mode:
      type: string
      enum:
      - STRICT
      - ELASTIC
      - UNKNOWN
    Quota:
      required:
      - behavior
      - duration
      - limit
      type: object
      properties:
        duration:
          type: string
        limit:
          minimum: 0
          exclusiveMinimum: true
          type: integer
          format: int64
        behavior:
          $ref: '#/components/schemas/Quota.Behavior'
    Quota.Behavior:
      type: string
      enum:
      - FAIL
      - CANCEL
    QuotaLimit:
      type: object
      properties:
        tenantId:
          type: string
        namespace:
          type: string
          nullable: true
        flowId:
          type: string
          nullable: true
        id:
          type: string
        start:
          type: string
          format: date-time
        count:
          type: integer
          format: int64
    QuotaLimitController.ApiQuotaLimitResetRequest:
      required:
      - id
      type: object
      properties:
        namespace:
          type: string
          nullable: true
        flowId:
          type: string
          nullable: true
        id:
          minLength: 1
          type: string
      description: Request body for resetting a quota limit.
    RBACService.RoleAssignment.RoleOrigin:
      type: string
      enum:
      - BINDING
      - GROUP
    Relation:
      type: object
      properties:
        relationType:
          $ref: '#/components/schemas/RelationType'
        value:
          type: string
    RelationType:
      type: string
      enum:
      - SEQUENTIAL
      - CHOICE
      - ERROR
      - FINALLY
      - AFTER_EXECUTION
      - PARALLEL
      - DYNAMIC
    Relation_1:
      type: string
      enum:
      - UPSERT
      - USED_BY
    Resolution:
      type: object
      properties:
        reason:
          type: string
        note:
          type: string
          nullable: true
    Resource:
      type: string
      enum:
      - FLOW
      - EXECUTION
      - TRIGGER
      - NAMESPACE
      - KVSTORE
      - REUSABLE_INPUTS
      - DASHBOARD
      - SECRET
      - CREDENTIAL
      - BLUEPRINT
      - APP
      - AUDITLOG
      - SYSTEM_SETTINGS
      - TENANT_SETTINGS
      - TESTSUITE
      - ASSET
      - USER
      - GROUP
      - ROLE
      - BINDING
      - SERVICE_ACCOUNT
      - INVITATION
      - COPILOT
      - MCP_SERVER
      - SUPPORT
      - POLICY
      - CASE
      - PROMOTION_TARGET
      - APP_EXECUTION
      - NAMESPACE_FILE
      - TESTSUITE_RUN
      - TENANT_ACCESS
      - SECURITY_INTEGRATION
      - CASE_TEMPLATE
      - BANNER
      - KILL_SWITCH
      - TENANT
      - VERSIONED_PLUGIN
      - WORKER_GROUP
      - WORKER_QUEUE
      - INSTANCE
      - UNKNOWN
    ResourceType:
      type: object
      additionalProperties: true
      allOf:
      - $ref: '#/components/schemas/ScimResourceWithOptionalId'
      - $ref: '#/components/schemas/ScimResource'
      - $ref: '#/components/schemas/BaseResource_ScimResource_'
      - type: object
        properties:
          id:
            type: string
          name:
            minLength: 1
            type: string
          description:
            type: string
          endpoint:
            minLength: 1
            type: string
          schemaUrn:
            minLength: 1
            type: string
          schemaExtensions:
            type: array
            items:
              $ref: '#/components/schemas/ResourceType.SchemaExtensionConfiguration'
    ResourceType.SchemaExtensionConfiguration:
      type: object
      properties:
        schemaUrn:
          minLength: 1
          type: string
        required:
          type: boolean
    ReusableInputsWithSource:
      title: Reusable inputs with source
      required:
      - id
      - inputs
      - namespace
      - revision
      type: object
      properties:
        namespace:
          title: The namespace of the reusable inputs block.
          type: string
          description: Defaults to the namespace it is created in.
        id:
          title: The id of the reusable inputs block.
          pattern: ^[a-zA-Z0-9][.a-zA-Z0-9_-]*
          type: string
        description:
          title: A free-text description of the block.
          type: string
        inputs:
          title: The inputs exposed by this block.
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/Input_Object_'
        revision:
          title: The revision of the block, bumped on every save.
          type: integer
          format: int32
          readOnly: true
        last:
          title: Whether this is the block's current revision.
          type: boolean
          readOnly: true
        created:
          title: When the block was first created.
          type: string
          format: date-time
          nullable: true
          readOnly: true
        updated:
          title: When this revision was created.
          type: string
          format: date-time
          nullable: true
          readOnly: true
        deleted:
          title: Whether the block is soft-deleted.
          type: boolean
          readOnly: true
        source:
          title: The block's YAML source, as written in the editor.
          type: string
          readOnly: true
      description: 'A stored reusable inputs block: its authorable shape plus the fields the server owns.'
    RightSidebarConfiguration:
      type: object
      properties:
        customLinks:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/RightSidebarConfiguration.CustomLink'
    RightSidebarConfiguration.CustomLink:
      type: object
      properties:
        title:
          type: string
        url:
          type: string
    Role:
      required:
      - deleted
      - isManaged
      - name
      type: object
      properties:
        isManaged:
          type: boolean
        permissions:
          type: object
          properties:
            FLOW:
              type: array
            EXECUTION:
              type: array
            TRIGGER:
              type: array
            NAMESPACE:
              type: array
            KVSTORE:
              type: array
            REUSABLE_INPUTS:
              type: array
            DASHBOARD:
              type: array
            SECRET:
              type: array
            CREDENTIAL:
              type: array
            BLUEPRINT:
              type: array
            APP:
              type: array
            AUDITLOG:
              type: array
            SYSTEM_SETTINGS:
              type: array
            TENANT_SETTINGS:
              type: array
            TESTSUITE:
              type: array
            ASSET:
              type: array
            USER:
              type: array
            GROUP:
              type: array
            ROLE:
              type: array
            BINDING:
              type: array
            SERVICE_ACCOUNT:
              type: array
            INVITATION:
              type: array
            COPILOT:
              type: array
            MCP_SERVER:
              type: array
            SUPPORT:
              type: array
            POLICY:
              type: array
            CASE:
              type: array
            PROMOTION_TARGET:
              type: array
            APP_EXECUTION:
              type: array
            NAMESPACE_FILE:
              type: array
            TESTSUITE_RUN:
              type: array
            TENANT_ACCESS:
              type: array
            SECURITY_INTEGRATION:
              type: array
            CASE_TEMPLATE:
              type: array
            BANNER:
              type: array
            KILL_SWITCH:
              type: array
            TENANT:
              type: array
            VERSIONED_PLUGIN:
              type: array
            WORKER_GROUP:
              type: array
            WORKER_QUEUE:
              type: array
            INSTANCE:
              type: array
            UNKNOWN:
              type: array
        id:
          type: string
        name:
          type: string
        description:
          type: string
        isDefault:
          type: boolean
        deleted:
          type: boolean
    RoleUsage:
      type: object
      properties:
        count:
          type: integer
          format: int64
    Rule:
      required:
      - 'on'
      - type
      type: object
      properties:
        type:
          title: The type of the rule.
          minLength: 1
          pattern: ^[A-Za-z_$][A-Za-z0-9_$]*(\.[A-Za-z_$][A-Za-z0-9_$]*)*$
          type: string
        'on':
          $ref: '#/components/schemas/RuleTarget'
        where:
          type: array
          items:
            $ref: '#/components/schemas/Condition'
    RuleAction:
      title: The severity of the violation — BLOCK rejects the resource, WARN only reports.
      type: string
      enum:
      - BLOCK
      - WARN
    RuleTarget:
      type: string
      enum:
      - FLOW
      - PLUGIN
    SDK.Auth:
      type: object
      properties:
        url:
          type: string
          nullable: true
        apiToken:
          type: string
          nullable: true
        username:
          type: string
          nullable: true
        password:
          type: string
          nullable: true
    SLA:
      required:
      - behavior
      - id
      - type
      type: object
      properties:
        id:
          minLength: 1
          type: string
        type:
          $ref: '#/components/schemas/SLA.Type'
        behavior:
          $ref: '#/components/schemas/SLA.Behavior'
        labels:
          oneOf:
          - type: array
          - $ref: '#/components/schemas/Map_Object.Object_'
    SLA.Behavior:
      type: string
      enum:
      - FAIL
      - CANCEL
      - NONE
    SLA.Type:
      type: string
      enum:
      - MAX_DURATION
      - EXECUTION_ASSERTION
    Schema:
      required:
      - id
      type: object
      properties:
        attributes:
          maxItems: 65535
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/Schema.Attribute'
        id:
          maxLength: 65535
          minLength: 1
          type: string
        name:
          type: string
        description:
          type: string
        meta:
          $ref: '#/components/schemas/Meta'
    Schema.Attribute:
      type: object
      properties:
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/Schema.Attribute'
        urn:
          type: string
        name:
          pattern: \p{Alpha}(-|_|\p{Alnum})*
          type: string
        type:
          $ref: '#/components/schemas/Schema.Attribute.Type'
        subAttributes:
          type: array
          items:
            $ref: '#/components/schemas/Schema.Attribute'
        multiValued:
          type: boolean
        description:
          type: string
        required:
          type: boolean
        canonicalValues:
          type: array
          items:
            type: string
        caseExact:
          type: boolean
        mutability:
          $ref: '#/components/schemas/Schema.Attribute.Mutability'
        returned:
          $ref: '#/components/schemas/Schema.Attribute.Returned'
        uniqueness:
          $ref: '#/components/schemas/Schema.Attribute.Uniqueness'
        referenceTypes:
          type: array
          items:
            type: string
        accessor:
          $ref: '#/components/schemas/Schema.AttributeAccessor'
        scimResourceIdReference:
          type: boolean
    Schema.Attribute.Mutability:
      type: string
      enum:
      - IMMUTABLE
      - READ_ONLY
      - READ_WRITE
      - WRITE_ONLY
    Schema.Attribute.Returned:
      type: string
      enum:
      - ALWAYS
      - DEFAULT
      - NEVER
      - REQUEST
    Schema.Attribute.Type:
      type: string
      enum:
      - BINARY
      - BOOLEAN
      - COMPLEX
      - DATE_TIME
      - DECIMAL
      - INTEGER
      - REFERENCE
      - STRING
    Schema.Attribute.Uniqueness:
      type: string
      enum:
      - GLOBAL
      - NONE
      - SERVER
    Schema.AttributeAccessor:
      type: object
    SchemaType:
      type: string
      enum:
      - FLOW
      - TASK
      - TRIGGER
      - APPS
      - TESTSUITES
      - DASHBOARD
      - REUSABLEINPUTS
      - POLICY
    ScimResource:
      required:
      - meta
      type: object
      additionalProperties: true
      allOf:
      - $ref: '#/components/schemas/BaseResource_ScimResource_'
      - type: object
        properties:
          baseUrn:
            type: string
          meta:
            $ref: '#/components/schemas/Meta'
          id:
            minLength: 1
            type: string
          externalId:
            type: string
          resourceType:
            type: string
    ScimResourceWithOptionalId:
      type: object
      additionalProperties: true
      allOf:
      - $ref: '#/components/schemas/ScimResource'
      - $ref: '#/components/schemas/BaseResource_ScimResource_'
      - type: object
        properties:
          id:
            type: string
    ScimUser:
      type: object
      additionalProperties: true
      description: Scim core schema.
      allOf:
      - $ref: '#/components/schemas/ScimResource'
      - $ref: '#/components/schemas/BaseResource_ScimResource_'
      - type: object
        properties:
          primaryEmailAddress:
            nullable: true
            allOf:
            - $ref: '#/components/schemas/Email'
          active:
            type: boolean
          emails:
            type: array
            items:
              $ref: '#/components/schemas/Email'
          userName:
            type: string
          name:
            $ref: '#/components/schemas/Name'
          groups:
            type: array
            items:
              $ref: '#/components/schemas/UserGroup'
    Scope:
      type: string
      enum:
      - STATIC
      - INSTANCE
      - TENANT
      - NAMESPACE
    SearchRequest:
      type: object
      allOf:
      - $ref: '#/components/schemas/BaseResource_SearchRequest_'
      - type: object
        properties:
          pageRequest:
            $ref: '#/components/schemas/PageRequest'
          sortRequest:
            $ref: '#/components/schemas/SortRequest'
          attributes:
            type: array
            items:
              $ref: '#/components/schemas/AttributeReference'
          excludedAttributes:
            type: array
            items:
              $ref: '#/components/schemas/AttributeReference'
          filter:
            $ref: '#/components/schemas/Filter'
          sortBy:
            $ref: '#/components/schemas/AttributeReference'
          sortOrder:
            $ref: '#/components/schemas/SortOrder'
          startIndex:
            type: integer
            format: int32
          count:
            type: integer
            format: int32
    SecretAuthProperty:
      required:
      - secretKey
      type: object
      properties:
        secretKey:
          type: string
        namespace:
          type: string
    SecretConfiguration.WorkerSecretManagerMode:
      type: string
      enum:
      - DIRECT
      - CONTROLLER
      - CONTROLLER_ONLY
    SecurityIntegration:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        type:
          $ref: '#/components/schemas/SecurityIntegration.Type'
        description:
          type: string
        tenantId:
          type: string
        enabled:
          type: boolean
        deleted:
          type: boolean
    SecurityIntegration.Type:
      type: string
      enum:
      - SCIM
    ServerInstance:
      required:
      - hostname
      - id
      - metrics
      - props
      - type
      - version
      type: object
      properties:
        id:
          type: string
        type:
          $ref: '#/components/schemas/ServerInstance.Type'
        version:
          type: string
        hostname:
          type: string
        props:
          type: object
          additionalProperties:
            type: object
        metrics:
          type: array
          items:
            $ref: '#/components/schemas/Metric'
    ServerInstance.Type:
      type: string
      enum:
      - SERVER
      - STANDALONE
    Service.ServiceState:
      type: string
      enum:
      - CREATED
      - RUNNING
      - ERROR
      - DISCONNECTED
      - TERMINATING
      - TERMINATED_GRACEFULLY
      - TERMINATED_FORCED
      - NOT_RUNNING
      - INACTIVE
      - MAINTENANCE
    ServiceInstance:
      type: object
      properties:
        server:
          $ref: '#/components/schemas/ServerInstance'
        metrics:
          type: array
          items:
            $ref: '#/components/schemas/Metric'
        state:
          $ref: '#/components/schemas/Service.ServiceState'
        id:
          type: string
        type:
          $ref: '#/components/schemas/ServiceType'
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        events:
          type: array
          items:
            $ref: '#/components/schemas/ServiceInstance.TimestampedEvent'
        props:
          type: object
          additionalProperties:
            type: object
        seqId:
          type: integer
          format: int64
    ServiceInstance.TimestampedEvent:
      type: object
      properties:
        ts:
          type: string
          format: date-time
        value:
          type: string
        type:
          type: string
        state:
          $ref: '#/components/schemas/Service.ServiceState'
    ServiceProviderConfiguration:
      type: object
      additionalProperties: true
      allOf:
      - $ref: '#/components/schemas/ScimResourceWithOptionalId'
      - $ref: '#/components/schemas/ScimResource'
      - $ref: '#/components/schemas/BaseResource_ScimResource_'
      - type: object
        properties:
          id:
            type: string
          documentationUrl:
            type: string
          patch:
            $ref: '#/components/schemas/ServiceProviderConfiguration.SupportedConfiguration'
          bulk:
            $ref: '#/components/schemas/ServiceProviderConfiguration.BulkConfiguration'
          filter:
            $ref: '#/components/schemas/ServiceProviderConfiguration.FilterConfiguration'
          changePassword:
            $ref: '#/components/schemas/ServiceProviderConfiguration.SupportedConfiguration'
          sort:
            $ref: '#/components/schemas/ServiceProviderConfiguration.SupportedConfiguration'
          etag:
            $ref: '#/components/schemas/ServiceProviderConfiguration.SupportedConfiguration'
          authenticationSchemes:
            type: array
            items:
              $ref: '#/components/schemas/ServiceProviderConfiguration.AuthenticationSchema'
    ServiceProviderConfiguration.AuthenticationSchema:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ServiceProviderConfiguration.AuthenticationSchema.Type'
        name:
          type: string
        description:
          type: string
        specUri:
          type: string
        documentationUri:
          type: string
    ServiceProviderConfiguration.AuthenticationSchema.Type:
      type: string
      enum:
      - OAUTH
      - OAUTH2
      - OAUTH_BEARER
      - HTTP_BASIC
      - HTTP_DIGEST
    ServiceProviderConfiguration.BulkConfiguration:
      type: object
      allOf:
      - $ref: '#/components/schemas/ServiceProviderConfiguration.SupportedConfiguration'
      - type: object
        properties:
          maxOperations:
            type: integer
            format: int32
          maxPayloadSize:
            type: integer
            format: int32
    ServiceProviderConfiguration.FilterConfiguration:
      type: object
      allOf:
      - $ref: '#/components/schemas/ServiceProviderConfiguration.SupportedConfiguration'
      - type: object
        properties:
          maxResults:
            type: integer
            format: int32
    ServiceProviderConfiguration.SupportedConfiguration:
      type: object
      properties:
        supported:
          type: boolean
    ServiceType:
      type: string
      enum:
      - EXECUTOR
      - INDEXER
      - SCHEDULER
      - WEBSERVER
      - WORKER
      - SYSTEM_WORKER
      - CONTROLLER
      - INVALID
    SetupConfiguration:
      type: object
      properties:
        done:
          type: boolean
        repositoryType:
          type: string
        queueType:
          type: string
        storageType:
          type: string
        secretType:
          type: string
        passwordConfiguration:
          $ref: '#/components/schemas/PasswordConfiguration'
        haveAuthNotBasic:
          type: boolean
    SetupConfiguration.SetupData:
      type: object
      properties:
        username:
          type: string
        password:
          type: string
        tenant:
          $ref: '#/components/schemas/Tenant'
    SlaConfig:
      type: object
      properties:
        acknowledgement:
          type: string
          nullable: true
        resolution:
          type: string
          nullable: true
    SlaState:
      type: string
      enum:
      - NOT_STARTED
      - RUNNING
      - OVERDUE
      - MET
      - MISSED
      - VOIDED
    SlaStatus:
      type: object
      properties:
        state:
          $ref: '#/components/schemas/SlaState'
        deadline:
          type: string
          format: date-time
          nullable: true
        remaining:
          type: string
          nullable: true
    SoftDeletable_FlowInterface_:
      type: object
      properties:
        deleted:
          type: boolean
    SortOrder:
      type: string
      enum:
      - ASCENDING
      - DESCENDING
    SortRequest:
      type: object
      properties:
        sortBy:
          $ref: '#/components/schemas/AttributeReference'
        sortOrder:
          $ref: '#/components/schemas/SortOrder'
    SourceMatch:
      type: object
      properties:
        line:
          type: integer
          format: int32
        column:
          type: integer
          format: int32
        snippet:
          type: string
    SourceSearchReplaceApplyRequest:
      required:
      - flows
      - query
      - replacement
      type: object
      properties:
        query:
          minLength: 1
          type: string
        caseSensitive:
          type: boolean
        wholeWord:
          type: boolean
        regex:
          type: boolean
        scope:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/SourceSearchScope'
        replacement:
          type: string
        flows:
          maxItems: 1000
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/IdWithNamespace'
    SourceSearchReplaceApplyResponse:
      type: object
      properties:
        updated:
          type: array
          description: The flows that were rewritten, with their new revision.
          items:
            $ref: '#/components/schemas/FlowWithSource'
        skipped:
          type: array
          description: The flows that were left untouched, each with the reason it was skipped.
          items:
            $ref: '#/components/schemas/SourceSearchReplaceApplyResponse.SkippedFlow'
    SourceSearchReplaceApplyResponse.SkipReason:
      type: string
      enum:
      - NOT_FOUND
      - READ_ONLY
      - NO_CHANGE
      - NO_MATCH
      - INVALID_FLOW
      - UNKNOWN
    SourceSearchReplaceApplyResponse.SkippedFlow:
      type: object
      properties:
        namespace:
          type: string
        id:
          type: string
        reason:
          $ref: '#/components/schemas/SourceSearchReplaceApplyResponse.SkipReason'
        message:
          type: string
          description: The underlying validation error, when the reason is INVALID_FLOW.
          nullable: true
      description: A flow that the replace operation did not modify, and why.
    SourceSearchReplaceLineRequest:
      required:
      - id
      - namespace
      - query
      - replacement
      type: object
      properties:
        query:
          minLength: 1
          type: string
        caseSensitive:
          type: boolean
        wholeWord:
          type: boolean
        regex:
          type: boolean
        replacement:
          type: string
        namespace:
          minLength: 1
          type: string
        id:
          minLength: 1
          type: string
        line:
          minimum: 1
          type: integer
          format: int32
        column:
          minimum: 0
          type: integer
          format: int32
    SourceSearchReplacePreviewRequest:
      required:
      - query
      - replacement
      type: object
      properties:
        query:
          minLength: 1
          type: string
        caseSensitive:
          type: boolean
        wholeWord:
          type: boolean
        regex:
          type: boolean
        namespace:
          type: string
          nullable: true
        scope:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/SourceSearchScope'
        replacement:
          type: string
    SourceSearchReplacePreviewResponse:
      type: object
      properties:
        totalMatches:
          type: integer
          format: int32
        totalFlows:
          type: integer
          format: int32
        editableFlowCount:
          type: integer
          format: int32
        flows:
          type: array
          items:
            $ref: '#/components/schemas/SourceSearchReplacePreviewResponse.FlowMatches'
    SourceSearchReplacePreviewResponse.FlowMatches:
      type: object
      properties:
        namespace:
          type: string
        id:
          type: string
        editable:
          type: boolean
        matches:
          type: array
          items:
            $ref: '#/components/schemas/SourceSearchReplacePreviewResponse.Match'
    SourceSearchReplacePreviewResponse.Match:
      type: object
      properties:
        line:
          type: integer
          format: int32
        before:
          type: string
        after:
          type: string
    SourceSearchResult:
      type: object
      properties:
        namespace:
          type: string
        id:
          type: string
        editable:
          type: boolean
        matches:
          type: array
          items:
            $ref: '#/components/schemas/SourceMatch'
    SourceSearchScope:
      type: string
      enum:
      - ALL
      - TASKS
      - TRIGGERS
      - INPUTS
    State:
      required:
      - current
      - getDuration
      - getEndDate
      - getStartDate
      - histories
      type: object
      properties:
        duration:
          type: string
          nullable: true
          readOnly: true
        startDate:
          type: string
          format: date-time
          readOnly: true
        endDate:
          type: string
          format: date-time
          nullable: true
          readOnly: true
        current:
          $ref: '#/components/schemas/State.Type'
        histories:
          type: array
          items:
            $ref: '#/components/schemas/State.History'
        getDuration:
          type: string
          readOnly: true
        getStartDate:
          type: string
          format: date-time
          readOnly: true
        getEndDate:
          type: string
          format: date-time
          readOnly: true
    State.History:
      required:
      - date
      - state
      type: object
      properties:
        state:
          $ref: '#/components/schemas/State.Type'
        date:
          type: string
          format: date-time
    State.Type:
      type: string
      enum:
      - CREATED
      - SUBMITTED
      - RUNNING
      - PAUSED
      - RESTARTED
      - KILLING
      - SUCCESS
      - WARNING
      - FAILED
      - KILLED
      - CANCELLED
      - QUEUED
      - RETRYING
      - RETRIED
      - SKIPPED
      - BREAKPOINT
      - RESUBMITTED
    Subjects:
      type: object
      properties:
        users:
          type: array
          items:
            type: string
        groups:
          type: array
          items:
            type: string
    SupportDebugInfo:
      required:
      - authType
      - deploymentTopology
      - deploymentType
      - kestraVersion
      - queueType
      - repositoryType
      - secretType
      - storageType
      type: object
      properties:
        kestraVersion:
          type: string
        licenseId:
          type: string
        authType:
          $ref: '#/components/schemas/SupportDebugInfo.AuthType'
        deploymentType:
          $ref: '#/components/schemas/SupportDebugInfo.DeploymentType'
        deploymentTopology:
          $ref: '#/components/schemas/SupportDebugInfo.DeploymentTopology'
        queueType:
          type: string
        queueVersion:
          type: string
        storageType:
          type: string
        repositoryType:
          type: string
        repositoryVersion:
          type: string
        secretType:
          type: string
      description: Debug information collected automatically and attached to a support ticket.
    SupportDebugInfo.AuthType:
      type: string
      description: Authentication type configured on the instance.
      enum:
      - OIDC_SSO
      - LDAP
      - BASIC_AUTH
      x-type: String
    SupportDebugInfo.DeploymentTopology:
      type: string
      enum:
      - STANDALONE
      - DISTRIBUTED
      x-type: String
    SupportDebugInfo.DeploymentType:
      type: string
      description: 'Infrastructure platform: Kubernetes, a Docker container, or a plain JAR.'
      enum:
      - KUBERNETES
      - DOCKER
      - JAR
      x-type: String
    Task:
      required:
      - id
      - type
      type: object
      properties:
        id:
          maxLength: 256
          minLength: 1
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]*
          type: string
          x-size-message: Task id must be at most 256 characters
        type:
          title: The class name of this task.
          minLength: 1
          pattern: ^[A-Za-z_$][A-Za-z0-9_$]*(\.[A-Za-z_$][A-Za-z0-9_$]*)*$
          type: string
        version:
          title: Plugin Version
          type: string
          description: |
            Defines the version of the plugin to use.

            The version must follow the Semantic Versioning (SemVer) specification:
              - A single-digit MAJOR version (e.g., `1`).
              - A MAJOR.MINOR version (e.g., `1.1`).
              - A MAJOR.MINOR.PATCH version, optionally with any qualifier
                (e.g., `1.1.2`, `1.1.0-SNAPSHOT`).
        description:
          type: string
        retry:
          title: Retry
          type: object
          description: Retry policy applied when the task fails.
        timeout:
          $ref: '#/components/schemas/Property_Duration_'
        disabled:
          type: boolean
        workerSelector:
          description: Routing requirements (tags + fallback) for this task.
          allOf:
          - $ref: '#/components/schemas/WorkerSelector'
        policyRefs:
          type: array
          description: 'Identifiers of `enforcement: REFERENCE` governance policies to attach to this task and everything nested under it (Enterprise Edition; ignored in the open-source edition).'
          items:
            type: string
        logLevel:
          $ref: '#/components/schemas/Level'
        allowFailure:
          type: boolean
        logToFile:
          type: boolean
        runIf:
          type: string
        allowWarning:
          type: boolean
        taskCache:
          $ref: '#/components/schemas/Cache'
        assets:
          description: Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.
          nullable: true
          allOf:
          - $ref: '#/components/schemas/AssetsDeclaration'
    TaskFixture:
      required:
      - id
      type: object
      properties:
        id:
          type: string
        value:
          type: string
        state:
          $ref: '#/components/schemas/State.Type'
        outputs:
          type: object
          additionalProperties:
            type: object
        assets:
          type: array
          items:
            $ref: '#/components/schemas/Asset'
        description:
          $ref: '#/components/schemas/Property_String_'
    TaskForExecution:
      required:
      - id
      - type
      type: object
      properties:
        id:
          minLength: 1
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]*
          type: string
        type:
          title: The class name of this task.
          minLength: 1
          pattern: ^[A-Za-z_$][A-Za-z0-9_$]*(\.[A-Za-z_$][A-Za-z0-9_$]*)*$
          type: string
        version:
          title: Plugin Version
          type: string
          description: |
            Defines the version of the plugin to use.

            The version must follow the Semantic Versioning (SemVer) specification:
              - A single-digit MAJOR version (e.g., `1`).
              - A MAJOR.MINOR version (e.g., `1.1`).
              - A MAJOR.MINOR.PATCH version, optionally with any qualifier
                (e.g., `1.1.2`, `1.1.0-SNAPSHOT`).
        tasks:
          type: array
          items:
            $ref: '#/components/schemas/TaskForExecution'
        inputs:
          type: array
          items:
            $ref: '#/components/schemas/Input_Object_'
        subflowId:
          $ref: '#/components/schemas/ExecutableTask.SubflowId'
    TaskRun:
      required:
      - executionId
      - flowId
      - id
      - namespace
      - state
      - taskId
      type: object
      properties:
        assets:
          deprecated: true
          allOf:
          - $ref: '#/components/schemas/AssetsInOut'
        id:
          type: string
        executionId:
          type: string
        namespace:
          type: string
        flowId:
          type: string
        taskId:
          type: string
        parentTaskRunId:
          type: string
        value:
          type: string
        attempts:
          type: array
          items:
            $ref: '#/components/schemas/TaskRunAttempt'
        assetEmits:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AssetsInOut'
        state:
          $ref: '#/components/schemas/State'
        iteration:
          type: integer
          format: int32
        dynamic:
          type: boolean
        forceExecution:
          type: boolean
    TaskRunAttempt:
      required:
      - state
      type: object
      properties:
        state:
          $ref: '#/components/schemas/State'
        workerId:
          type: string
          nullable: true
        logFile:
          type: string
          format: uri
          nullable: true
    TaskWithVersion:
      type: object
      properties:
        cls:
          type: string
        version:
          type: string
    TemporalUnit:
      type: object
      properties:
        duration:
          type: string
        durationEstimated:
          type: boolean
        dateBased:
          type: boolean
        timeBased:
          type: boolean
    Tenant:
      required:
      - deleted
      - id
      - name
      type: object
      properties:
        storageIsolation:
          $ref: '#/components/schemas/Isolation'
        secretIsolation:
          $ref: '#/components/schemas/Isolation'
        id:
          type: string
        name:
          type: string
        deleted:
          type: boolean
        defaultWorkerSelector:
          $ref: '#/components/schemas/WorkerSelector'
        concurrency:
          $ref: '#/components/schemas/Concurrency'
        storageType:
          type: string
        storageConfiguration:
          type: object
          additionalProperties:
            type: object
        secretType:
          type: string
        secretReadOnly:
          type: boolean
        secretConfiguration:
          type: object
          additionalProperties:
            type: object
        workerSecretManagerMode:
          $ref: '#/components/schemas/SecretConfiguration.WorkerSecretManagerMode'
        requireExistingNamespace:
          type: boolean
        outputsInInternalStorage:
          type: boolean
        appCatalogConfig:
          $ref: '#/components/schemas/Tenant.AppCatalogConfig'
        settings:
          $ref: '#/components/schemas/TenantPreferencesSettings'
        sdkDefaultAuthentication:
          $ref: '#/components/schemas/SDK.Auth'
        quotas:
          type: array
          items:
            $ref: '#/components/schemas/Quota'
    Tenant.AppCatalogConfig:
      type: object
      properties:
        title:
          type: string
        titleColor:
          type: string
        primaryColor:
          type: string
        backgroundColor:
          type: string
        tileColor:
          type: string
        buttonTextColor:
          type: string
    TenantController.AppsCatalogConfigRequest:
      type: object
      properties:
        title:
          type: string
        titleColor:
          type: string
        primaryColor:
          type: string
        backgroundColor:
          type: string
        tileColor:
          type: string
        buttonTextColor:
          type: string
    TenantController.AppsCatalogConfigResponse:
      type: object
      properties:
        title:
          type: string
        titleColor:
          type: string
        primaryColor:
          type: string
        backgroundColor:
          type: string
        tileColor:
          type: string
        buttonTextColor:
          type: string
        logo:
          type: string
    TenantController.SetTenantDefaultDashboardsRequest:
      type: object
      properties:
        defaultHomeDashboard:
          type: string
        defaultFlowOverviewDashboard:
          type: string
        defaultNamespaceOverviewDashboard:
          type: string
    TenantInterface:
      type: object
      properties:
        tenantId:
          type: string
    TenantPreferencesSettings:
      type: object
      properties:
        dashboard:
          $ref: '#/components/schemas/DashboardSettings'
    TenantUsage:
      type: object
      properties:
        count:
          type: integer
          format: int64
    TestState:
      type: string
      enum:
      - ERROR
      - SUCCESS
      - FAILED
      - SKIPPED
    TestSuite:
      required:
      - flowId
      - id
      - namespace
      - testCases
      type: object
      properties:
        id:
          minLength: 1
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]*
          type: string
        description:
          type: string
        namespace:
          maxLength: 150
          minLength: 1
          pattern: ^[a-z0-9][a-z0-9._-]*
          type: string
        flowId:
          maxLength: 100
          minLength: 1
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9._-]*
          type: string
        source:
          type: string
        testCases:
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/UnitTest'
        deleted:
          type: boolean
        disabled:
          type: boolean
    TestSuiteController.RunRequest:
      type: object
      properties:
        testCases:
          type: array
          items:
            type: string
    TestSuiteController.SearchTestsLastResult:
      type: object
      properties:
        testSuiteIds:
          type: array
          items:
            $ref: '#/components/schemas/TestSuiteController.TestSuiteApiId'
    TestSuiteController.TestSuiteApiId:
      required:
      - id
      - namespace
      type: object
      properties:
        namespace:
          minLength: 1
          type: string
        id:
          minLength: 1
          type: string
    TestSuiteController.TestSuiteBulkRequest:
      required:
      - ids
      type: object
      properties:
        ids:
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/TestSuiteController.TestSuiteApiId'
    TestSuiteController.TestsLastResultResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/TestSuiteRunResult'
    TestSuiteGenerationPrompt:
      required:
      - conversationId
      - userPrompt
      type: object
      properties:
        conversationId:
          type: string
        userPrompt:
          type: string
        yaml:
          type: string
        providerId:
          type: string
    TestSuiteRunResult:
      required:
      - endDate
      - flowId
      - id
      - namespace
      - startDate
      - state
      - testSuiteId
      type: object
      properties:
        id:
          type: string
        testSuiteId:
          type: string
        namespace:
          type: string
        flowId:
          type: string
        state:
          $ref: '#/components/schemas/TestState'
        startDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
        results:
          type: array
          items:
            $ref: '#/components/schemas/UnitTestResult'
    TestSuiteService.RunByQueryRequest:
      required:
      - includeChildNamespaces
      type: object
      properties:
        namespace:
          type: string
          nullable: true
        flowId:
          type: string
          nullable: true
        includeChildNamespaces:
          type: boolean
          description: Should child namespaces be included or not
          default: true
    TestSuiteService.TestRunByQueryResult:
      type: object
      properties:
        requestMade:
          $ref: '#/components/schemas/TestSuiteService.RunByQueryRequest'
        tenantId:
          type: string
        numberOfTestSuitesToBeRun:
          type: integer
          format: int32
        numberOfTestCasesToBeRun:
          type: integer
          format: int32
        results:
          type: array
          items:
            $ref: '#/components/schemas/TestSuiteRunResult'
    TimeWindow:
      type: object
      properties:
        default:
          type: string
        max:
          type: string
    TokenCacheConfig:
      type: object
      properties:
        enabled:
          type: boolean
        refreshBeforeExpiry:
          title: Duration before expiry when the token should be refreshed.
          description: The duration is a string in ISO 8601 Duration format, e.g. `PT1M` for 1 minute, `PT30S` for 30 seconds.
          allOf:
          - $ref: '#/components/schemas/Duration'
      description: Token caching configuration
    TriggerController.ApiCreateBackfillRequest:
      required:
      - backfill
      type: object
      properties:
        namespace:
          type: string
        flowId:
          type: string
        triggerId:
          type: string
        backfill:
          $ref: '#/components/schemas/TriggerController.ApiCreateBackfillRequest.Backfill'
    TriggerController.ApiCreateBackfillRequest.Backfill:
      type: object
      properties:
        start:
          type: string
          format: date-time
        end:
          type: string
          format: date-time
        inputs:
          type: object
          additionalProperties:
            type: object
        labels:
          type: array
          items:
            $ref: '#/components/schemas/Label'
    TriggerController.ApiDisableTriggerRequest:
      type: object
      properties:
        namespace:
          type: string
        flowId:
          type: string
        triggerId:
          type: string
        disabled:
          type: boolean
        recoverMissedSchedules:
          type: boolean
          nullable: true
    TriggerController.ApiTriggerId:
      type: object
      properties:
        namespace:
          type: string
        flowId:
          type: string
        triggerId:
          type: string
    TriggerController.SetDisabledRequest:
      required:
      - disabled
      - triggers
      type: object
      properties:
        triggers:
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/TriggerController.ApiTriggerId'
        disabled:
          type: boolean
        recoverMissedSchedules:
          type: boolean
          nullable: true
    TriggerFixture:
      required:
      - id
      - type
      type: object
      properties:
        id:
          type: string
        type:
          type: string
        variables:
          type: object
          additionalProperties:
            type: object
    TriggerPluginCategory:
      type: string
      enum:
      - core
      - realtime
      - app
      x-type: String
    TriggerType:
      type: string
      enum:
      - SCHEDULE
      - POLLING
      - REALTIME
    Type:
      type: string
      enum:
      - STRING
      - SELECT
      - INT
      - FLOAT
      - BOOL
      - DATETIME
      - DATE
      - TIME
      - DURATION
      - FILE
      - JSON
      - ION
      - URI
      - SECRET
      - ARRAY
      - MULTISELECT
      - YAML
      - EMAIL
      - FORM
      - REUSABLE_INPUTS
    UnitTest:
      required:
      - assertions
      - id
      - type
      type: object
      properties:
        id:
          type: string
        type:
          type: string
        disabled:
          type: boolean
        description:
          type: string
        fixtures:
          $ref: '#/components/schemas/Fixtures'
        assertions:
          type: array
          items:
            $ref: '#/components/schemas/Assertion'
        expectedState:
          $ref: '#/components/schemas/State.Type'
    UnitTestResult:
      required:
      - assertionResults
      - errors
      - state
      - testId
      - testType
      type: object
      properties:
        testId:
          type: string
        testType:
          type: string
        executionId:
          type: string
        url:
          type: string
          format: uri
        state:
          $ref: '#/components/schemas/TestState'
        assertionResults:
          type: array
          items:
            $ref: '#/components/schemas/AssertionResult'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/AssertionRunError'
        fixtures:
          $ref: '#/components/schemas/Fixtures'
    UsageEE:
      type: object
      properties:
        groups:
          $ref: '#/components/schemas/GroupUsage'
        users:
          $ref: '#/components/schemas/UserUsage'
        roles:
          $ref: '#/components/schemas/RoleUsage'
        tenants:
          $ref: '#/components/schemas/TenantUsage'
      allOf:
      - $ref: '#/components/schemas/MiscController.ApiUsage'
    UserGroup:
      type: object
      properties:
        value:
          type: string
        ref:
          type: string
        display:
          type: string
        type:
          $ref: '#/components/schemas/UserGroup.Type'
    UserGroup.Type:
      type: string
      enum:
      - DIRECT
      - INDIRECT
    UserType:
      type: string
      enum:
      - STANDARD
      - SERVICE_ACCOUNT
    UserUsage:
      required:
      - apiKeyCount
      - basicAuthCount
      - count
      - instanceOwnerCount
      - ldapAuthCount
      - oidcCount
      - passwordlessCount
      - restrictedCount
      type: object
      properties:
        count:
          type: integer
          format: int64
        apiKeyCount:
          type: integer
          format: int64
        oidcCount:
          type: integer
          format: int64
        basicAuthCount:
          type: integer
          format: int64
        ldapAuthCount:
          type: integer
          format: int64
        passwordlessCount:
          type: integer
          format: int64
        instanceOwnerCount:
          type: integer
          format: int64
        restrictedCount:
          type: integer
          format: int64
    UsernamePasswordCredentials:
      required:
      - password
      - username
      type: object
      properties:
        username:
          minLength: 1
          type: string
          nullable: true
        password:
          minLength: 1
          type: string
          nullable: true
        identity:
          type: string
          nullable: true
        secret:
          type: string
          nullable: true
    ValidateConstraintViolation:
      required:
      - index
      type: object
      properties:
        index:
          type: integer
          format: int32
        filename:
          type: string
        namespace:
          type: string
        flow:
          type: string
        constraints:
          type: string
        outdated:
          type: boolean
        deprecationPaths:
          type: array
          items:
            type: string
        warnings:
          type: array
          items:
            type: string
        infos:
          type: array
          items:
            type: string
    ValuePathExpression:
      type: object
      properties:
        attributePath:
          $ref: '#/components/schemas/AttributeReference'
        attributeExpression:
          $ref: '#/components/schemas/FilterExpression'
    VersionService.VersionUpgrade:
      type: object
      properties:
        from:
          type: string
        to:
          type: string
        at:
          type: string
          format: date-time
    WebhookResponse:
      type: object
      properties:
        tenantId:
          type: string
        id:
          type: string
        namespace:
          type: string
        flowId:
          type: string
        flowRevision:
          type: integer
          format: int32
        trigger:
          $ref: '#/components/schemas/ExecutionTrigger'
        outputs:
          type: object
          additionalProperties:
            type: object
        labels:
          type: array
          items:
            $ref: '#/components/schemas/Label'
        state:
          $ref: '#/components/schemas/State'
        url:
          type: string
          format: uri
    WorkerCredentialController.ApiWorkerCredential:
      type: object
      properties:
        id:
          type: string
        workerId:
          type: string
        workerName:
          type: string
        tokenUid:
          type: string
        createdAt:
          type: string
          format: date-time
        lastSeenAt:
          type: string
          format: date-time
    WorkerCredentialController.ApiWorkerList:
      type: object
      properties:
        workers:
          type: array
          items:
            $ref: '#/components/schemas/WorkerCredentialController.ApiWorkerCredential'
    WorkerGroupController.ApiCreateWorkerGroupRequest:
      required:
      - id
      - name
      - subscriptions
      type: object
      properties:
        id:
          minLength: 1
          type: string
        name:
          minLength: 1
          type: string
        description:
          type: string
        subscriptions:
          type: array
          items:
            $ref: '#/components/schemas/WorkerGroupController.ApiSubscriptionRequest'
    WorkerGroupController.ApiGenerateTokenRequest:
      required:
      - name
      type: object
      properties:
        name:
          minLength: 1
          type: string
        description:
          type: string
        expiresAt:
          type: string
          format: date-time
    WorkerGroupController.ApiGenerateTokenResponse:
      type: object
      properties:
        token:
          type: string
        details:
          $ref: '#/components/schemas/WorkerGroupController.ApiWorkerGroupTokenSummary'
    WorkerGroupController.ApiSharedCapacity:
      type: object
      properties:
        allocated:
          type: integer
          format: int32
        used:
          type: integer
          format: int32
    WorkerGroupController.ApiSubscriptionCapacity:
      type: object
      properties:
        workerQueueId:
          type: string
        allocated:
          type: integer
          format: int32
        used:
          type: integer
          format: int32
    WorkerGroupController.ApiSubscriptionRequest:
      required:
      - workerQueueId
      type: object
      properties:
        workerQueueId:
          minLength: 1
          type: string
        reservedPercent:
          type: integer
          format: int32
        mode:
          $ref: '#/components/schemas/QueueSubscription.Mode'
    WorkerGroupController.ApiSubscriptionResponse:
      type: object
      properties:
        queue:
          $ref: '#/components/schemas/WorkerGroupController.ApiWorkerQueueSummary'
        reservedPercent:
          type: integer
          format: int32
        mode:
          $ref: '#/components/schemas/QueueSubscription.Mode'
      description: The worker-group ↔ WorkerQueue subscription edge as exposed on the API. Embeds the resolved queue's name + tags + tenants so consumers don't need a separate lookup. The default subscription is represented by a queue summary with the reserved io.kestra.core.worker.WorkerQueues#DEFAULT_ID "default" id and empty tags.
    WorkerGroupController.ApiUpdateSubscriptionRequest:
      type: object
      properties:
        reservedPercent:
          type: integer
          format: int32
    WorkerGroupController.ApiUpdateWorkerGroupRequest:
      required:
      - name
      - subscriptions
      type: object
      properties:
        name:
          minLength: 1
          type: string
        description:
          type: string
        subscriptions:
          type: array
          items:
            $ref: '#/components/schemas/WorkerGroupController.ApiSubscriptionRequest'
    WorkerGroupController.ApiWorkerCapacity:
      type: object
      properties:
        pending:
          type: integer
          format: int32
        running:
          type: integer
          format: int32
        max:
          type: integer
          format: int32
        threads:
          type: integer
          format: int32
        endedRate:
          type: number
          format: double
      description: Compact per-worker capacity projection extracted from the worker's heartbeat metric set. Replaces the previous full `Set` payload --- the Workers tab only needs these three numbers, and shipping the rest forced tag-disambiguation logic onto the client.
    WorkerGroupController.ApiWorkerGroup:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        subscriptions:
          type: array
          items:
            $ref: '#/components/schemas/WorkerGroupController.ApiSubscriptionResponse'
        tokens:
          type: array
          items:
            $ref: '#/components/schemas/WorkerGroupController.ApiWorkerGroupTokenSummary'
        deletable:
          type: boolean
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    WorkerGroupController.ApiWorkerGroupCapacity:
      type: object
      properties:
        workerGroupId:
          type: string
        totalAllocated:
          type: integer
          format: int32
        totalUsed:
          type: integer
          format: int32
        totalInflight:
          type: integer
          format: int32
        totalThreads:
          type: integer
          format: int32
        totalRunning:
          type: integer
          format: int32
        totalPending:
          type: integer
          format: int32
        subscriptions:
          type: array
          items:
            $ref: '#/components/schemas/WorkerGroupController.ApiSubscriptionCapacity'
        shared:
          $ref: '#/components/schemas/WorkerGroupController.ApiSharedCapacity'
        totalEndedRate:
          type: number
          format: double
        snapshotAt:
          type: string
          format: date-time
    WorkerGroupController.ApiWorkerGroupList:
      type: object
      properties:
        workerGroups:
          type: array
          items:
            $ref: '#/components/schemas/WorkerGroupController.ApiWorkerGroup'
    WorkerGroupController.ApiWorkerGroupTokenSummary:
      type: object
      properties:
        uid:
          type: string
        name:
          type: string
        description:
          type: string
        tokenPrefix:
          type: string
        createdAt:
          type: string
          format: date-time
        expiresAt:
          type: string
          format: date-time
        useCount:
          type: integer
          format: int32
        revoked:
          type: boolean
        valid:
          type: boolean
    WorkerGroupController.ApiWorkerGroupWorker:
      type: object
      properties:
        workerId:
          type: string
        workerName:
          type: string
        credentialId:
          type: string
        tokenUid:
          type: string
        state:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        registeredAt:
          type: string
          format: date-time
        capacity:
          $ref: '#/components/schemas/WorkerGroupController.ApiWorkerCapacity'
    WorkerGroupController.ApiWorkerGroupWorkerList:
      type: object
      properties:
        workers:
          type: array
          items:
            $ref: '#/components/schemas/WorkerGroupController.ApiWorkerGroupWorker'
    WorkerGroupController.ApiWorkerQueueSummary:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        tags:
          type: array
          items:
            type: string
        allowedTenants:
          type: array
          items:
            type: string
      description: Compact WorkerQueue summary embedded in subscription responses. Carries the user-supplied routing identity (id), the optional display name, the canonical tag set, and the tenant scope.
    WorkerQueueController.ApiCreateOrUpdateWorkerQueueRequest:
      required:
      - id
      - tags
      type: object
      properties:
        id:
          minLength: 1
          type: string
          description: User-supplied RFC 1123 label, used as the routing identity, the Prometheus tag value, and in log output. Immutable.
        name:
          type: string
          description: Optional human-readable name.
        tags:
          minItems: 1
          type: array
          description: The canonical tag set of the Worker Queue (non-empty).
          items:
            type: string
        description:
          type: string
          description: The description of the Worker Queue.
        allowedTenants:
          type: array
          description: The tenant scope; empty means unrestricted.
          items:
            type: string
    WorkerQueueController.ApiSubscribingGroup:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
    WorkerQueueController.ApiWorkerQueue:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        tags:
          type: array
          items:
            type: string
        allowedTenants:
          type: array
          items:
            type: string
    WorkerQueueController.ApiWorkerQueueDetails:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        tags:
          type: array
          items:
            type: string
        allowedTenants:
          type: array
          items:
            type: string
        workers:
          type: array
          items:
            $ref: '#/components/schemas/ServiceInstance'
    WorkerQueueController.ApiWorkerQueueItem:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        tags:
          type: array
          items:
            type: string
        allowedTenants:
          type: array
          items:
            type: string
        activeWorkers:
          type: integer
          format: int32
    WorkerQueueController.ApiWorkerQueueList:
      type: object
      properties:
        workerQueues:
          type: array
          description: The list of Worker Queues.
          items:
            $ref: '#/components/schemas/WorkerQueueController.ApiWorkerQueueItem'
    WorkerQueueController.ApiWorkerQueueSubscribers:
      type: object
      properties:
        groups:
          type: array
          items:
            $ref: '#/components/schemas/WorkerQueueController.ApiSubscribingGroup'
    WorkerQueueFallback:
      type: string
      description: Strategy when no worker is available. Defaults to FAIL when null.
      enum:
      - FAIL
      - WAIT
      - CANCEL
      - IGNORE
    WorkerSelector:
      type: object
      properties:
        tags:
          maxItems: 20
          type: array
          description: 'Required tags used to route to a matching Worker Queue. Each tag is an RFC 1123 label: lowercase alphanumerics and hyphens, must start and end with alphanumeric, max 64 chars per tag, max 20 tags.'
          items:
            type: string
        match:
          description: 'How selector tags are matched against a Worker Queue''s tag set. ALL: queue tags must be a superset of the selector tags. ANY: queue tags must intersect the selector tags. Defaults to ALL when null.'
          allOf:
          - $ref: '#/components/schemas/WorkerSelectorMatch'
        fallback:
          description: Strategy when no worker is available. Defaults to FAIL when null.
          allOf:
          - $ref: '#/components/schemas/WorkerQueueFallback'
    WorkerSelectorMatch:
      type: string
      description: 'How selector tags are matched against a Worker Queue''s tag set. ALL: queue tags must be a superset of the selector tags. ANY: queue tags must intersect the selector tags. Defaults to ALL when null.'
      enum:
      - ALL
      - ANY
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Bearer
