openapi: 3.0.3
info:
  version: 1.520.1
  title: Windmill API
  contact:
    name: Windmill Team
    email: contact@windmill.dev
    url: https://windmill.dev
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  x-logo:
    url: https://windmill.dev/img/windmill.svg
externalDocs:
  description: documentation portal
  url: https://windmill.dev
servers:
  - url: /api
security:
  - bearerAuth: []
  - cookieAuth: []
paths:
  /version:
    get:
      summary: get backend version
      operationId: backendVersion
      tags:
        - settings
      responses:
        '200':
          description: git version of backend
          content:
            text/plain:
              schema:
                type: string
  /uptodate:
    get:
      summary: is backend up to date
      operationId: backendUptodate
      tags:
        - settings
      responses:
        '200':
          description: is backend up to date
          content:
            text/plain:
              schema:
                type: string
  /ee_license:
    get:
      summary: get license id
      operationId: getLicenseId
      tags:
        - settings
      responses:
        '200':
          description: get license id (empty if not ee)
          content:
            text/plain:
              schema:
                type: string
  /openapi.yaml:
    get:
      summary: get openapi yaml spec
      operationId: getOpenApiYaml
      tags:
        - settings
      responses:
        '200':
          description: openapi yaml file content
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/audit/get/{id}:
    get:
      summary: get audit log (requires admin privilege)
      operationId: getAuditLog
      tags:
        - audit
      parameters:
        - name: workspace
          in: path
          required: true
          schema: &ref_0
            type: string
        - name: id
          in: path
          required: true
          schema: &ref_41
            type: integer
      responses:
        '200':
          description: an audit log
          content:
            application/json:
              schema:
                type: object
                properties: &ref_1
                  id:
                    type: integer
                  timestamp:
                    type: string
                    format: date-time
                  username:
                    type: string
                  operation:
                    type: string
                    enum:
                      - jobs.run
                      - jobs.run.script
                      - jobs.run.preview
                      - jobs.run.flow
                      - jobs.run.flow_preview
                      - jobs.run.script_hub
                      - jobs.run.dependencies
                      - jobs.run.identity
                      - jobs.run.noop
                      - jobs.flow_dependencies
                      - jobs
                      - jobs.cancel
                      - jobs.force_cancel
                      - jobs.disapproval
                      - jobs.delete
                      - account.delete
                      - ai.request
                      - resources.create
                      - resources.update
                      - resources.delete
                      - resource_types.create
                      - resource_types.update
                      - resource_types.delete
                      - schedule.create
                      - schedule.setenabled
                      - schedule.edit
                      - schedule.delete
                      - scripts.create
                      - scripts.update
                      - scripts.archive
                      - scripts.delete
                      - users.create
                      - users.delete
                      - users.update
                      - users.login
                      - users.login_failure
                      - users.logout
                      - users.accept_invite
                      - users.decline_invite
                      - users.token.create
                      - users.token.delete
                      - users.add_to_workspace
                      - users.add_global
                      - users.setpassword
                      - users.impersonate
                      - users.leave_workspace
                      - oauth.login
                      - oauth.login_failure
                      - oauth.signup
                      - variables.create
                      - variables.delete
                      - variables.update
                      - flows.create
                      - flows.update
                      - flows.delete
                      - flows.archive
                      - apps.create
                      - apps.update
                      - apps.delete
                      - folder.create
                      - folder.update
                      - folder.delete
                      - folder.add_owner
                      - folder.remove_owner
                      - group.create
                      - group.delete
                      - group.edit
                      - group.adduser
                      - group.removeuser
                      - igroup.create
                      - igroup.delete
                      - igroup.adduser
                      - igroup.removeuser
                      - variables.decrypt_secret
                      - workspaces.edit_command_script
                      - workspaces.edit_deploy_to
                      - workspaces.edit_auto_invite_domain
                      - workspaces.edit_webhook
                      - workspaces.edit_copilot_config
                      - workspaces.edit_error_handler
                      - workspaces.create
                      - workspaces.update
                      - workspaces.archive
                      - workspaces.unarchive
                      - workspaces.delete
                  action_kind:
                    type: string
                    enum:
                      - Created
                      - Updated
                      - Delete
                      - Execute
                  resource:
                    type: string
                  parameters:
                    type: object
                  span:
                    type: string
                required: &ref_2
                  - id
                  - timestamp
                  - username
                  - operation
                  - action_kind
  /w/{workspace}/audit/list:
    get:
      summary: list audit logs (requires admin privilege)
      operationId: listAuditLogs
      tags:
        - audit
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: &ref_5
            type: integer
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: &ref_6
            type: integer
        - name: before
          description: filter on started before (inclusive) timestamp
          in: query
          schema: &ref_200
            type: string
            format: date-time
        - name: after
          description: filter on created after (exclusive) timestamp
          in: query
          schema: &ref_201
            type: string
            format: date-time
        - name: username
          description: filter on exact username of user
          in: query
          schema: &ref_209
            type: string
        - name: operation
          description: filter on exact or prefix name of operation
          in: query
          schema: &ref_210
            type: string
        - name: operations
          in: query
          description: comma separated list of exact operations to include
          schema:
            type: string
        - name: exclude_operations
          in: query
          description: comma separated list of operations to exclude
          schema:
            type: string
        - name: resource
          description: filter on exact or prefix name of resource
          in: query
          schema: &ref_211
            type: string
        - name: action_kind
          description: filter on type of operation
          in: query
          schema: &ref_212
            type: string
            enum:
              - Create
              - Update
              - Delete
              - Execute
        - name: all_workspaces
          in: query
          description: get audit logs for all workspaces
          schema:
            type: boolean
      responses:
        '200':
          description: a list of audit logs
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: *ref_1
                  required: *ref_2
  /auth/login:
    post:
      security: []
      summary: login with password
      operationId: login
      tags:
        - user
      requestBody:
        description: credentials
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_251
                email:
                  type: string
                password:
                  type: string
              required: &ref_252
                - email
                - password
      responses:
        '200':
          description: >
            Successfully authenticated. The session ID is returned in a cookie
            named `token` and as plaintext response. Preferred method of
            authorization is through the bearer token. The cookie is only for
            browser convenience.
          headers:
            Set-Cookie:
              schema:
                type: string
                example: token=abcde12345; Path=/; HttpOnly
          content:
            text/plain:
              schema:
                type: string
  /auth/logout:
    post:
      security: []
      summary: logout
      operationId: logout
      tags:
        - user
      responses:
        '200':
          description: clear cookies and clear token (if applicable)
          headers:
            Set-Cookie:
              schema:
                type: string
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/users/get/{username}:
    get:
      summary: get user (require admin privilege)
      operationId: getUser
      tags:
        - user
        - admin
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: username
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: user created
          content:
            application/json:
              schema:
                type: object
                properties: &ref_10
                  email:
                    type: string
                  username:
                    type: string
                  is_admin:
                    type: boolean
                  name:
                    type: string
                  is_super_admin:
                    type: boolean
                  created_at:
                    type: string
                    format: date-time
                  operator:
                    type: boolean
                  disabled:
                    type: boolean
                  groups:
                    type: array
                    items:
                      type: string
                  folders:
                    type: array
                    items:
                      type: string
                  folders_owners:
                    type: array
                    items:
                      type: string
                required: &ref_11
                  - email
                  - username
                  - is_admin
                  - is_super_admin
                  - created_at
                  - operator
                  - disabled
                  - folders
                  - folders_owners
  /w/{workspace}/users/update/{username}:
    post:
      summary: update user (require admin privilege)
      operationId: updateUser
      tags:
        - user
        - admin
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: username
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: new user
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_253
                is_admin:
                  type: boolean
                operator:
                  type: boolean
                disabled:
                  type: boolean
      responses:
        '200':
          description: edited user
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/users/is_owner/{path}:
    get:
      summary: is owner of path
      operationId: isOwnerOfPath
      tags:
        - user
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: &ref_31
            type: string
      responses:
        '200':
          description: is owner
          content:
            application/json:
              schema:
                type: boolean
  /users/setpassword:
    post:
      summary: set password
      operationId: setPassword
      tags:
        - user
      requestBody:
        description: set password
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                password:
                  type: string
              required:
                - password
      responses:
        '200':
          description: password set
          content:
            text/plain:
              schema:
                type: string
  /users/set_password_of/{user}:
    post:
      summary: set password for a specific user (require super admin)
      operationId: setPasswordForUser
      tags:
        - user
      parameters:
        - name: user
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: set password
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                password:
                  type: string
              required:
                - password
      responses:
        '200':
          description: password set
          content:
            text/plain:
              schema:
                type: string
  /users/set_login_type/{user}:
    post:
      summary: set login type for a specific user (require super admin)
      operationId: setLoginTypeForUser
      tags:
        - user
      parameters:
        - name: user
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: set login type
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                login_type:
                  type: string
              required:
                - login_type
      responses:
        '200':
          description: login type set
          content:
            text/plain:
              schema:
                type: string
  /users/create:
    post:
      summary: create user
      operationId: createUserGlobally
      tags:
        - user
      requestBody:
        description: user info
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                password:
                  type: string
                super_admin:
                  type: boolean
                name:
                  type: string
                company:
                  type: string
                skip_email:
                  type: boolean
                  description: Skip sending email notifications to the user
              required:
                - email
                - password
                - super_admin
      responses:
        '201':
          description: user created
          content:
            text/plain:
              schema:
                type: string
  /users/update/{email}:
    post:
      summary: global update user (require super admin)
      operationId: globalUserUpdate
      tags:
        - user
      parameters:
        - name: email
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: new user info
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                is_super_admin:
                  type: boolean
                is_devops:
                  type: boolean
                name:
                  type: string
      responses:
        '200':
          description: user updated
          content:
            text/plain:
              schema:
                type: string
  /users/username_info/{email}:
    get:
      summary: global username info (require super admin)
      operationId: globalUsernameInfo
      tags:
        - user
      parameters:
        - name: email
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: user renamed
          content:
            application/json:
              schema:
                type: object
                properties:
                  username:
                    type: string
                  workspace_usernames:
                    type: array
                    items:
                      type: object
                      properties:
                        workspace_id:
                          type: string
                        username:
                          type: string
                      required:
                        - workspace_id
                        - username
                required:
                  - username
                  - workspace_usernames
  /users/rename/{email}:
    post:
      summary: global rename user (require super admin)
      operationId: globalUserRename
      tags:
        - user
      parameters:
        - name: email
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: new username
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                new_username:
                  type: string
              required:
                - new_username
      responses:
        '200':
          description: user renamed
          content:
            text/plain:
              schema:
                type: string
  /users/delete/{email}:
    delete:
      summary: global delete user (require super admin)
      operationId: globalUserDelete
      tags:
        - user
      parameters:
        - name: email
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: user deleted
          content:
            text/plain:
              schema:
                type: string
  /users/overwrite:
    post:
      summary: global overwrite users (require super admin and EE)
      operationId: globalUsersOverwrite
      tags:
        - user
      requestBody:
        description: List of users
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                properties: &ref_3
                  email:
                    type: string
                  password_hash:
                    type: string
                  super_admin:
                    type: boolean
                  verified:
                    type: boolean
                  name:
                    type: string
                  company:
                    type: string
                  first_time_user:
                    type: boolean
                  username:
                    type: string
                required: &ref_4
                  - email
                  - super_admin
                  - verified
                  - first_time_user
      responses:
        '200':
          description: Success message
          content:
            text/plain:
              schema:
                type: string
  /users/export:
    get:
      summary: global export users (require super admin and EE)
      operationId: globalUsersExport
      tags:
        - user
      responses:
        '200':
          description: exported users
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: *ref_3
                  required: *ref_4
  /w/{workspace}/users/delete/{username}:
    delete:
      summary: delete user (require admin privilege)
      operationId: deleteUser
      tags:
        - user
        - admin
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: username
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: delete user
          content:
            text/plain:
              schema:
                type: string
  /github_app/connected_repositories:
    get:
      summary: get connected repositories
      operationId: getGlobalConnectedRepositories
      tags:
        - Git Sync
      responses:
        '200':
          description: connected repositories
          content:
            application/json:
              schema:
                type: array
                items: &ref_376
                  type: object
                  properties:
                    workspace_id:
                      type: string
                    installation_id:
                      type: number
                    account_id:
                      type: string
                    repositories:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                          url:
                            type: string
                        required:
                          - name
                          - url
                  required:
                    - installation_id
                    - account_id
                    - repositories
  /workspaces/list:
    get:
      summary: list all workspaces visible to me
      operationId: listWorkspaces
      tags:
        - workspace
      responses:
        '200':
          description: all workspaces
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_7
                    id:
                      type: string
                    name:
                      type: string
                    owner:
                      type: string
                    domain:
                      type: string
                    color:
                      type: string
                  required: &ref_8
                    - id
                    - name
                    - owner
  /workspaces/allowed_domain_auto_invite:
    get:
      summary: is domain allowed for auto invi
      operationId: isDomainAllowed
      tags:
        - workspace
      responses:
        '200':
          description: domain allowed or not
          content:
            application/json:
              schema:
                type: boolean
  /workspaces/users:
    get:
      summary: list all workspaces visible to me with user info
      operationId: listUserWorkspaces
      tags:
        - workspace
      responses:
        '200':
          description: workspace with associated username
          content:
            application/json:
              schema:
                type: object
                properties: &ref_325
                  email:
                    type: string
                  workspaces:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        username:
                          type: string
                        color:
                          type: string
                        operator_settings:
                          nullable: true
                          type: object
                          required: &ref_12
                            - runs
                            - schedules
                            - resources
                            - assets
                            - variables
                            - triggers
                            - audit_logs
                            - groups
                            - folders
                            - workers
                          properties: &ref_13
                            runs:
                              type: boolean
                              description: Whether operators can view runs
                            schedules:
                              type: boolean
                              description: Whether operators can view schedules
                            resources:
                              type: boolean
                              description: Whether operators can view resources
                            variables:
                              type: boolean
                              description: Whether operators can view variables
                            assets:
                              type: boolean
                              description: Whether operators can view assets
                            audit_logs:
                              type: boolean
                              description: Whether operators can view audit logs
                            triggers:
                              type: boolean
                              description: Whether operators can view triggers
                            groups:
                              type: boolean
                              description: Whether operators can view groups page
                            folders:
                              type: boolean
                              description: Whether operators can view folders page
                            workers:
                              type: boolean
                              description: Whether operators can view workers page
                      required:
                        - id
                        - name
                        - username
                        - color
                required: &ref_326
                  - email
                  - workspaces
  /workspaces/list_as_superadmin:
    get:
      summary: list all workspaces as super admin (require to be super admin)
      operationId: listWorkspacesAsSuperAdmin
      tags:
        - workspace
      parameters:
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
      responses:
        '200':
          description: workspaces
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: *ref_7
                  required: *ref_8
  /workspaces/create:
    post:
      summary: create workspace
      operationId: createWorkspace
      tags:
        - workspace
      requestBody:
        description: new token
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_327
                id:
                  type: string
                name:
                  type: string
                username:
                  type: string
                color:
                  type: string
              required: &ref_328
                - id
                - name
      responses:
        '201':
          description: token created
          content:
            text/plain:
              schema:
                type: string
  /workspaces/exists:
    post:
      summary: exists workspace
      operationId: existsWorkspace
      tags:
        - workspace
      requestBody:
        description: id of workspace
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: string
              required:
                - id
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: boolean
  /workspaces/exists_username:
    post:
      summary: exists username
      operationId: existsUsername
      tags:
        - workspace
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: string
                username:
                  type: string
              required:
                - id
                - username
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: boolean
  /settings/databases_exist:
    post:
      summary: checks that all given databases exist or else return the ones that don't
      operationId: databasesExist
      tags:
        - setting
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
      responses:
        '200':
          description: databases that do not exist
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /settings/create_ducklake_database/{name}:
    post:
      summary: >-
        Runs CREATE DATABASE on the Windmill Postgres and grants access to the
        ducklake_user
      operationId: createDucklakeDatabase
      tags:
        - setting
      parameters:
        - in: path
          name: name
          required: true
          schema:
            type: string
          description: The name of the database to create
      responses:
        '200':
          description: status
          content:
            application/json:
              schema: {}
  /settings/global/{key}:
    get:
      summary: get global settings
      operationId: getGlobal
      tags:
        - setting
      parameters:
        - name: key
          in: path
          required: true
          schema: &ref_9
            type: string
      responses:
        '200':
          description: status
          content:
            application/json:
              schema: {}
    post:
      summary: post global settings
      operationId: setGlobal
      tags:
        - setting
      parameters:
        - name: key
          in: path
          required: true
          schema: *ref_9
      requestBody:
        description: value set
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                value: {}
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /settings/local:
    get:
      summary: get local settings
      operationId: getLocal
      tags:
        - setting
      responses:
        '200':
          description: status
          content:
            application/json:
              schema: {}
  /settings/test_smtp:
    post:
      summary: test smtp
      operationId: testSmtp
      tags:
        - setting
      requestBody:
        description: test smtp payload
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                to:
                  type: string
                smtp:
                  type: object
                  properties:
                    host:
                      type: string
                    username:
                      type: string
                    password:
                      type: string
                    port:
                      type: integer
                    from:
                      type: string
                    tls_implicit:
                      type: boolean
                    disable_tls:
                      type: boolean
                  required:
                    - host
                    - username
                    - password
                    - port
                    - from
                    - tls_implicit
                    - disable_tls
              required:
                - to
                - smtp
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /settings/test_critical_channels:
    post:
      summary: test critical channels
      operationId: testCriticalChannels
      tags:
        - setting
      requestBody:
        description: test critical channel payload
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                properties:
                  email:
                    type: string
                  slack_channel:
                    type: string
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /settings/critical_alerts:
    get:
      summary: Get all critical alerts
      operationId: getCriticalAlerts
      tags:
        - setting
      parameters:
        - in: query
          name: page
          schema:
            type: integer
            default: 1
            description: The page number to retrieve (minimum value is 1)
        - in: query
          name: page_size
          schema:
            type: integer
            default: 10
            maximum: 100
            description: Number of alerts per page (maximum is 100)
        - in: query
          name: acknowledged
          schema:
            type: boolean
            nullable: true
            description: >-
              Filter by acknowledgment status; true for acknowledged, false for
              unacknowledged, and omit for all alerts
      responses:
        '200':
          description: Successfully retrieved all critical alerts
          content:
            application/json:
              schema:
                type: object
                properties:
                  alerts:
                    type: array
                    items:
                      type: object
                      properties: &ref_34
                        id:
                          type: integer
                          description: Unique identifier for the alert
                        alert_type:
                          type: string
                          description: Type of alert (e.g., critical_error)
                        message:
                          type: string
                          description: The message content of the alert
                        created_at:
                          type: string
                          format: date-time
                          description: Time when the alert was created
                        acknowledged:
                          type: boolean
                          nullable: true
                          description: >-
                            Acknowledgment status of the alert, can be true,
                            false, or null if not set
                        workspace_id:
                          type: string
                          nullable: true
                          description: >-
                            Workspace id if the alert is in the scope of a
                            workspace
                  total_rows:
                    type: integer
                    description: Total number of rows matching the query.
                    example: 100
                  total_pages:
                    type: integer
                    description: Total number of pages based on the page size.
                    example: 10
  /settings/critical_alerts/{id}/acknowledge:
    post:
      summary: Acknowledge a critical alert
      operationId: acknowledgeCriticalAlert
      tags:
        - setting
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: integer
          description: The ID of the critical alert to acknowledge
      responses:
        '200':
          description: Successfully acknowledged the critical alert
          content:
            application/json:
              schema:
                type: string
                example: Critical alert acknowledged
  /settings/critical_alerts/acknowledge_all:
    post:
      summary: Acknowledge all unacknowledged critical alerts
      operationId: acknowledgeAllCriticalAlerts
      tags:
        - setting
      responses:
        '200':
          description: Successfully acknowledged all unacknowledged critical alerts.
          content:
            application/json:
              schema:
                type: string
                example: All unacknowledged critical alerts acknowledged
  /settings/test_license_key:
    post:
      summary: test license key
      operationId: testLicenseKey
      tags:
        - setting
      requestBody:
        description: test license key
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                license_key:
                  type: string
              required:
                - license_key
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /settings/test_object_storage_config:
    post:
      summary: test object storage config
      operationId: testObjectStorageConfig
      tags:
        - setting
      requestBody:
        description: test object storage config
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /settings/send_stats:
    post:
      summary: send stats
      operationId: sendStats
      tags:
        - setting
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /settings/latest_key_renewal_attempt:
    get:
      summary: get latest key renewal attempt
      operationId: getLatestKeyRenewalAttempt
      tags:
        - setting
      responses:
        '200':
          description: status
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: string
                  attempted_at:
                    type: string
                    format: date-time
                required:
                  - result
                  - attempted_at
                nullable: true
  /settings/renew_license_key:
    post:
      summary: renew license key
      operationId: renewLicenseKey
      tags:
        - setting
      parameters:
        - name: license_key
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /settings/customer_portal:
    post:
      summary: create customer portal session
      operationId: createCustomerPortalSession
      tags:
        - setting
      parameters:
        - name: license_key
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: url to portal
          content:
            text/plain:
              schema:
                type: string
  /saml/test_metadata:
    post:
      summary: test metadata
      operationId: testMetadata
      tags:
        - setting
      requestBody:
        description: test metadata
        required: true
        content:
          application/json:
            schema:
              type: string
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /settings/list_global:
    get:
      summary: list global settings
      operationId: listGlobalSettings
      tags:
        - setting
      responses:
        '200':
          description: list of settings
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_363
                    name:
                      type: string
                    value:
                      type: object
                  required: &ref_364
                    - name
                    - value
  /users/email:
    get:
      summary: get current user email (if logged in)
      operationId: getCurrentEmail
      tags:
        - user
      responses:
        '200':
          description: user email
          content:
            text/plain:
              schema:
                type: string
  /users/refresh_token:
    get:
      summary: refresh the current token
      operationId: refreshUserToken
      tags:
        - user
      parameters:
        - name: if_expiring_in_less_than_s
          in: query
          required: false
          schema:
            type: integer
      responses:
        '200':
          description: new token
          content:
            text/plain:
              schema:
                type: string
  /users/tutorial_progress:
    get:
      summary: get tutorial progress
      operationId: getTutorialProgress
      tags:
        - user
      responses:
        '200':
          description: tutorial progress
          content:
            application/json:
              schema:
                type: object
                properties:
                  progress:
                    type: integer
    post:
      summary: update tutorial progress
      operationId: updateTutorialProgress
      tags:
        - user
      requestBody:
        description: progress update
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                progress:
                  type: integer
      responses:
        '200':
          description: tutorial progress
          content:
            text/plain:
              schema:
                type: string
  /users/leave_instance:
    post:
      summary: leave instance
      operationId: leaveInstance
      tags:
        - user
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /users/usage:
    get:
      summary: get current usage outside of premium workspaces
      operationId: getUsage
      tags:
        - user
      responses:
        '200':
          description: free usage
          content:
            text/plain:
              schema:
                type: number
  /users/all_runnables:
    get:
      summary: get all runnables in every workspace
      operationId: getRunnable
      tags:
        - user
      responses:
        '200':
          description: free all runnables
          content:
            application/json:
              schema:
                type: object
                properties:
                  workspace:
                    type: string
                  endpoint_async:
                    type: string
                  endpoint_sync:
                    type: string
                  endpoint_openai_sync:
                    type: string
                  summary:
                    type: string
                  description:
                    type: string
                  kind:
                    type: string
                required:
                  - workspace
                  - endpoint_async
                  - endpoint_sync
                  - endpoint_openai_sync
                  - summary
                  - kind
  /users/whoami:
    get:
      summary: get current global whoami (if logged in)
      operationId: globalWhoami
      tags:
        - user
      responses:
        '200':
          description: user email
          content:
            application/json:
              schema:
                type: object
                properties: &ref_14
                  email:
                    type: string
                  login_type:
                    type: string
                    enum:
                      - password
                      - github
                  super_admin:
                    type: boolean
                  devops:
                    type: boolean
                  verified:
                    type: boolean
                  name:
                    type: string
                  company:
                    type: string
                  username:
                    type: string
                  operator_only:
                    type: boolean
                required: &ref_15
                  - email
                  - login_type
                  - super_admin
                  - verified
  /users/list_invites:
    get:
      summary: list all workspace invites
      operationId: listWorkspaceInvites
      tags:
        - user
      responses:
        '200':
          description: list all workspace invites
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_16
                    workspace_id:
                      type: string
                    email:
                      type: string
                    is_admin:
                      type: boolean
                    operator:
                      type: boolean
                  required: &ref_17
                    - workspace_id
                    - email
                    - is_admin
                    - operator
  /w/{workspace}/users/whoami:
    get:
      summary: whoami
      operationId: whoami
      tags:
        - user
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: user
          content:
            application/json:
              schema:
                type: object
                properties: *ref_10
                required: *ref_11
  /w/{workspace}/github_app/token:
    post:
      summary: get github app token
      operationId: getGithubAppToken
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: jwt job token
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                job_token:
                  type: string
              required:
                - job_token
      responses:
        '200':
          description: github app token
          content:
            application/json:
              schema:
                type: object
                properties:
                  token:
                    type: string
                required:
                  - token
  /w/{workspace}/github_app/install_from_workspace:
    post:
      tags:
        - Git Sync
      summary: Install a GitHub installation from another workspace
      operationId: installFromWorkspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                source_workspace_id:
                  type: string
                  description: The ID of the workspace containing the installation to copy
                installation_id:
                  type: number
                  description: The ID of the GitHub installation to copy
              required:
                - source_workspace_id
                - installation_id
      responses:
        '200':
          description: Installation successfully copied
  /w/{workspace}/github_app/installation/{installation_id}:
    delete:
      summary: Delete a GitHub installation from a workspace
      operationId: deleteFromWorkspace
      description: >-
        Removes a GitHub installation from the specified workspace. Requires
        admin privileges.
      tags:
        - Git Sync
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: installation_id
          in: path
          required: true
          schema:
            type: integer
            format: int64
          description: The ID of the GitHub installation to delete
      responses:
        '200':
          description: Installation successfully deleted
  /w/{workspace}/github_app/export/{installationId}:
    get:
      summary: Export GitHub installation JWT token
      description: >-
        Exports the JWT token for a specific GitHub installation in the
        workspace
      operationId: exportInstallation
      tags:
        - Git Sync
      parameters:
        - name: workspace
          in: path
          required: true
          schema:
            type: string
        - name: installationId
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Successfully exported the JWT token
          content:
            application/json:
              schema:
                type: object
                properties:
                  jwt_token:
                    type: string
  /w/{workspace}/github_app/import:
    post:
      summary: Import GitHub installation from JWT token
      description: >-
        Imports a GitHub installation from a JWT token exported from another
        instance
      operationId: importInstallation
      tags:
        - Git Sync
      parameters:
        - name: workspace
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - jwt_token
              properties:
                jwt_token:
                  type: string
      responses:
        '200':
          description: Successfully imported the installation
  /users/accept_invite:
    post:
      summary: accept invite to workspace
      operationId: acceptInvite
      tags:
        - user
      requestBody:
        description: accept invite
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                workspace_id:
                  type: string
                username:
                  type: string
              required:
                - workspace_id
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /users/decline_invite:
    post:
      summary: decline invite to workspace
      operationId: declineInvite
      tags:
        - user
      requestBody:
        description: decline invite
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                workspace_id:
                  type: string
              required:
                - workspace_id
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/workspaces/invite_user:
    post:
      summary: invite user to workspace
      operationId: inviteUser
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: WorkspaceInvite
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                is_admin:
                  type: boolean
                operator:
                  type: boolean
              required:
                - email
                - is_admin
                - operator
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/workspaces/add_user:
    post:
      summary: add user to workspace
      operationId: addUser
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: WorkspaceInvite
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                is_admin:
                  type: boolean
                username:
                  type: string
                operator:
                  type: boolean
              required:
                - email
                - is_admin
                - operator
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/workspaces/delete_invite:
    post:
      summary: delete user invite
      operationId: delete invite
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: WorkspaceInvite
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                is_admin:
                  type: boolean
                operator:
                  type: boolean
              required:
                - email
                - is_admin
                - operator
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/workspaces/archive:
    post:
      summary: archive workspace
      operationId: archiveWorkspace
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /workspaces/unarchive/{workspace}:
    post:
      summary: unarchive workspace
      operationId: unarchiveWorkspace
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /workspaces/delete/{workspace}:
    delete:
      summary: delete workspace (require super admin)
      operationId: deleteWorkspace
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/workspaces/leave:
    post:
      summary: leave workspace
      operationId: leaveWorkspace
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/workspaces/get_workspace_name:
    get:
      summary: get workspace name
      operationId: getWorkspaceName
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/workspaces/change_workspace_name:
    post:
      summary: change workspace name
      operationId: changeWorkspaceName
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                new_name:
                  type: string
              required:
                - username
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/workspaces/change_workspace_id:
    post:
      summary: change workspace id
      operationId: changeWorkspaceId
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                new_id:
                  type: string
                new_name:
                  type: string
              required:
                - username
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/workspaces/change_workspace_color:
    post:
      summary: change workspace id
      operationId: changeWorkspaceColor
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                color:
                  type: string
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/users/whois/{username}:
    get:
      summary: whois
      operationId: whois
      tags:
        - user
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: username
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: user
          content:
            application/json:
              schema:
                type: object
                properties: *ref_10
                required: *ref_11
  /w/{workspace}/workspaces/operator_settings:
    post:
      operationId: updateOperatorSettings
      summary: Update operator settings for a workspace
      description: >-
        Updates the operator settings for a specific workspace. Requires
        workspace admin privileges.
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        required: true
        content:
          application/json:
            schema:
              nullable: true
              type: object
              required: *ref_12
              properties: *ref_13
      responses:
        '200':
          description: Operator settings updated successfully
          content:
            text/plain:
              schema:
                type: string
  /users/exists/{email}:
    get:
      summary: exists email
      operationId: existsEmail
      tags:
        - user
      parameters:
        - name: email
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: user
          content:
            application/json:
              schema:
                type: boolean
  /users/list_as_super_admin:
    get:
      summary: list all users as super admin (require to be super amdin)
      operationId: listUsersAsSuperAdmin
      tags:
        - user
      parameters:
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: active_only
          in: query
          description: filter only active users
          schema:
            type: boolean
      responses:
        '200':
          description: user
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: *ref_14
                  required: *ref_15
  /w/{workspace}/workspaces/list_pending_invites:
    get:
      summary: list pending invites for a workspace
      operationId: listPendingInvites
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: user
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: *ref_16
                  required: *ref_17
  /w/{workspace}/workspaces/get_settings:
    get:
      summary: get settings
      operationId: getSettings
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: status
          content:
            application/json:
              schema:
                type: object
                properties:
                  workspace_id:
                    type: string
                  slack_name:
                    type: string
                  slack_team_id:
                    type: string
                  slack_command_script:
                    type: string
                  teams_team_id:
                    type: string
                  teams_command_script:
                    type: string
                  teams_team_name:
                    type: string
                  auto_invite_domain:
                    type: string
                  auto_invite_operator:
                    type: boolean
                  auto_add:
                    type: boolean
                  plan:
                    type: string
                  customer_id:
                    type: string
                  webhook:
                    type: string
                  deploy_to:
                    type: string
                  ai_config:
                    type: object
                    properties: &ref_21
                      providers:
                        type: object
                        additionalProperties:
                          type: object
                          properties: &ref_238
                            resource_path:
                              type: string
                            models:
                              type: array
                              items:
                                type: string
                          required: &ref_239
                            - resource_path
                            - models
                      default_model:
                        type: object
                        properties: &ref_18
                          model:
                            type: string
                          provider:
                            type: string
                            enum: &ref_237
                              - openai
                              - azure_openai
                              - anthropic
                              - mistral
                              - deepseek
                              - googleai
                              - groq
                              - openrouter
                              - togetherai
                              - customai
                        required: &ref_19
                          - model
                          - provider
                      code_completion_model:
                        type: object
                        properties: *ref_18
                        required: *ref_19
                  error_handler:
                    type: string
                  error_handler_extra_args:
                    type: object
                    description: The arguments to pass to the script or flow
                    additionalProperties: &ref_22 {}
                  error_handler_muted_on_cancel:
                    type: boolean
                  large_file_storage:
                    type: object
                    properties: &ref_23
                      type:
                        type: string
                        enum:
                          - S3Storage
                          - AzureBlobStorage
                          - AzureWorkloadIdentity
                          - S3AwsOidc
                          - GoogleCloudStorage
                      s3_resource_path:
                        type: string
                      azure_blob_resource_path:
                        type: string
                      gcs_resource_path:
                        type: string
                      public_resource:
                        type: boolean
                      secondary_storage:
                        type: object
                        additionalProperties:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - S3Storage
                                - AzureBlobStorage
                                - AzureWorkloadIdentity
                                - S3AwsOidc
                                - GoogleCloudStorage
                            s3_resource_path:
                              type: string
                            azure_blob_resource_path:
                              type: string
                            gcs_resource_path:
                              type: string
                            public_resource:
                              type: boolean
                  ducklake:
                    type: object
                    required: &ref_24
                      - ducklakes
                    properties: &ref_25
                      ducklakes:
                        type: object
                        additionalProperties:
                          type: object
                          required:
                            - catalog
                            - storage
                          properties:
                            catalog:
                              type: object
                              properties:
                                resource_type:
                                  type: string
                                  enum:
                                    - postgresql
                                    - mysql
                                    - instance
                                resource_path:
                                  type: string
                              required:
                                - resource_type
                            storage:
                              type: object
                              properties:
                                storage:
                                  type: string
                                path:
                                  type: string
                              required:
                                - path
                  git_sync:
                    type: object
                    properties: &ref_26
                      repositories:
                        type: array
                        items:
                          type: object
                          properties: &ref_27
                            script_path:
                              type: string
                            git_repo_resource_path:
                              type: string
                            use_individual_branch:
                              type: boolean
                            group_by_folder:
                              type: boolean
                            collapsed:
                              type: boolean
                            settings:
                              type: object
                              properties:
                                include_path:
                                  type: array
                                  items:
                                    type: string
                                include_type:
                                  type: array
                                  items:
                                    type: string
                                    enum: &ref_20
                                      - script
                                      - flow
                                      - app
                                      - folder
                                      - resource
                                      - variable
                                      - secret
                                      - resourcetype
                                      - schedule
                                      - user
                                      - group
                                      - trigger
                                      - settings
                                      - key
                                exclude_path:
                                  type: array
                                  items:
                                    type: string
                                extra_include_path:
                                  type: array
                                  items:
                                    type: string
                            exclude_types_override:
                              type: array
                              items:
                                type: string
                                enum: *ref_20
                          required: &ref_28
                            - script_path
                            - git_repo_resource_path
                  deploy_ui:
                    type: object
                    properties: &ref_29
                      include_path:
                        type: array
                        items:
                          type: string
                      include_type:
                        type: array
                        items:
                          type: string
                          enum: *ref_20
                  default_app:
                    type: string
                  default_scripts:
                    type: object
                    properties: &ref_30
                      order:
                        type: array
                        items:
                          type: string
                      hidden:
                        type: array
                        items:
                          type: string
                      default_script_content:
                        additionalProperties:
                          type: string
                  mute_critical_alerts:
                    type: boolean
                  color:
                    type: string
                  operator_settings:
                    nullable: true
                    type: object
                    required: *ref_12
                    properties: *ref_13
                required:
                  - error_handler_muted_on_cancel
  /w/{workspace}/workspaces/get_deploy_to:
    get:
      summary: get deploy to
      operationId: getDeployTo
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: status
          content:
            application/json:
              schema:
                type: object
                properties:
                  deploy_to:
                    type: string
  /w/{workspace}/workspaces/is_premium:
    get:
      summary: get if workspace is premium
      operationId: getIsPremium
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: status
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/workspaces/premium_info:
    get:
      summary: get premium info
      operationId: getPremiumInfo
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: status
          content:
            application/json:
              schema:
                type: object
                properties:
                  premium:
                    type: boolean
                  usage:
                    type: number
                  owner:
                    type: string
                  status:
                    type: string
                required:
                  - premium
                  - owner
  /w/{workspace}/workspaces/threshold_alert:
    get:
      summary: get threshold alert info
      operationId: getThresholdAlert
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: status
          content:
            application/json:
              schema:
                type: object
                properties:
                  threshold_alert_amount:
                    type: number
                  last_alert_sent:
                    type: string
                    format: date-time
    post:
      summary: set threshold alert info
      operationId: setThresholdAlert
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: threshold alert info
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                threshold_alert_amount:
                  type: number
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/workspaces/edit_slack_command:
    post:
      summary: edit slack command
      operationId: editSlackCommand
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: WorkspaceInvite
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                slack_command_script:
                  type: string
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/workspaces/edit_teams_command:
    post:
      summary: edit teams command
      operationId: editTeamsCommand
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: WorkspaceInvite
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                slack_command_script:
                  type: string
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/workspaces/available_teams_ids:
    get:
      summary: list available teams ids
      operationId: listAvailableTeamsIds
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: status
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    team_name:
                      type: string
                    team_id:
                      type: string
  /w/{workspace}/workspaces/available_teams_channels:
    get:
      summary: list available teams channels
      operationId: listAvailableTeamsChannels
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: status
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    channel_name:
                      type: string
                    channel_id:
                      type: string
                    service_url:
                      type: string
                    tenant_id:
                      type: string
  /w/{workspace}/workspaces/connect_teams:
    post:
      summary: connect teams
      operationId: connectTeams
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: connect teams
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                team_id:
                  type: string
                team_name:
                  type: string
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/workspaces/run_slack_message_test_job:
    post:
      summary: run a job that sends a message to Slack
      operationId: runSlackMessageTestJob
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: path to hub script to run and its corresponding args
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                hub_script_path:
                  type: string
                channel:
                  type: string
                test_msg:
                  type: string
      responses:
        '200':
          description: status
          content:
            text/json:
              schema:
                type: object
                properties:
                  job_uuid:
                    type: string
  /w/{workspace}/workspaces/run_teams_message_test_job:
    post:
      summary: run a job that sends a message to Teams
      operationId: runTeamsMessageTestJob
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: path to hub script to run and its corresponding args
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                hub_script_path:
                  type: string
                channel:
                  type: string
                test_msg:
                  type: string
      responses:
        '200':
          description: status
          content:
            text/json:
              schema:
                type: object
                properties:
                  job_uuid:
                    type: string
  /w/{workspace}/workspaces/edit_deploy_to:
    post:
      summary: edit deploy to
      operationId: editDeployTo
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                deploy_to:
                  type: string
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/workspaces/edit_auto_invite:
    post:
      summary: edit auto invite
      operationId: editAutoInvite
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: WorkspaceInvite
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                operator:
                  type: boolean
                invite_all:
                  type: boolean
                auto_add:
                  type: boolean
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/workspaces/edit_webhook:
    post:
      summary: edit webhook
      operationId: editWebhook
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: WorkspaceWebhook
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                webhook:
                  type: string
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/workspaces/edit_copilot_config:
    post:
      summary: edit copilot config
      operationId: editCopilotConfig
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: WorkspaceCopilotConfig
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: *ref_21
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/workspaces/get_copilot_info:
    get:
      summary: get copilot info
      operationId: getCopilotInfo
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: status
          content:
            application/json:
              schema:
                type: object
                properties: *ref_21
  /w/{workspace}/workspaces/edit_error_handler:
    post:
      summary: edit error handler
      operationId: editErrorHandler
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: WorkspaceErrorHandler
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                error_handler:
                  type: string
                error_handler_extra_args:
                  type: object
                  description: The arguments to pass to the script or flow
                  additionalProperties: *ref_22
                error_handler_muted_on_cancel:
                  type: boolean
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/workspaces/edit_large_file_storage_config:
    post:
      summary: edit large file storage settings
      operationId: editLargeFileStorageConfig
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: LargeFileStorage info
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                large_file_storage:
                  type: object
                  properties: *ref_23
      responses:
        '200':
          description: status
          content:
            application/json:
              schema: {}
  /w/{workspace}/workspaces/list_ducklakes:
    get:
      summary: list ducklakes
      operationId: listDucklakes
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: status
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /w/{workspace}/workspaces/edit_ducklake_config:
    post:
      summary: edit ducklake settings
      operationId: editDucklakeConfig
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: Ducklake settings
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - settings
              properties:
                settings:
                  type: object
                  required: *ref_24
                  properties: *ref_25
      responses:
        '200':
          description: status
          content:
            application/json:
              schema: {}
  /w/{workspace}/workspaces/edit_git_sync_config:
    post:
      summary: edit workspace git sync settings
      operationId: editWorkspaceGitSyncConfig
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: Workspace Git sync settings
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                git_sync_settings:
                  type: object
                  properties: *ref_26
      responses:
        '200':
          description: status
          content:
            application/json:
              schema: {}
  /w/{workspace}/workspaces/edit_git_sync_repository:
    post:
      summary: add or update individual git sync repository
      operationId: editGitSyncRepository
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: Git sync repository settings to add or update
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                git_repo_resource_path:
                  type: string
                  description: The resource path of the git repository to update
                repository:
                  type: object
                  properties: *ref_27
                  required: *ref_28
              required:
                - git_repo_resource_path
                - repository
      responses:
        '200':
          description: status
          content:
            application/json:
              schema: {}
  /w/{workspace}/workspaces/delete_git_sync_repository:
    delete:
      summary: delete individual git sync repository
      operationId: deleteGitSyncRepository
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: Git sync repository to delete
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                git_repo_resource_path:
                  type: string
                  description: The resource path of the git repository to delete
              required:
                - git_repo_resource_path
      responses:
        '200':
          description: status
          content:
            application/json:
              schema: {}
  /w/{workspace}/workspaces/edit_deploy_ui_config:
    post:
      summary: edit workspace deploy ui settings
      operationId: editWorkspaceDeployUISettings
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: Workspace deploy UI settings
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                deploy_ui_settings:
                  type: object
                  properties: *ref_29
      responses:
        '200':
          description: status
          content:
            application/json:
              schema: {}
  /w/{workspace}/workspaces/edit_default_app:
    post:
      summary: edit default app for workspace
      operationId: editWorkspaceDefaultApp
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: Workspace default app
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                default_app_path:
                  type: string
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/workspaces/default_scripts:
    post:
      summary: edit default scripts for workspace
      operationId: editDefaultScripts
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: Workspace default app
        content:
          application/json:
            schema:
              type: object
              properties: *ref_30
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
    get:
      summary: get default scripts for workspace
      operationId: get default scripts
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: status
          content:
            application/json:
              schema:
                type: object
                properties: *ref_30
  /w/{workspace}/workspaces/set_environment_variable:
    post:
      summary: set environment variable
      operationId: setEnvironmentVariable
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: Workspace default app
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                value:
                  type: string
              required:
                - name
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/workspaces/encryption_key:
    get:
      summary: retrieves the encryption key for this workspace
      operationId: getWorkspaceEncryptionKey
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: status
          content:
            application/json:
              schema:
                type: object
                properties:
                  key:
                    type: string
                required:
                  - key
    post:
      summary: update the encryption key for this workspace
      operationId: setWorkspaceEncryptionKey
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: New encryption key
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                new_key:
                  type: string
                skip_reencrypt:
                  type: boolean
              required:
                - new_key
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/workspaces/default_app:
    get:
      summary: get default app for workspace
      operationId: getWorkspaceDefaultApp
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: status
          content:
            application/json:
              schema:
                type: object
                properties:
                  default_app_path:
                    type: string
  /w/{workspace}/workspaces/get_large_file_storage_config:
    get:
      summary: get large file storage config
      operationId: getLargeFileStorageConfig
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: status
          content:
            application/json:
              schema:
                type: object
                properties: *ref_23
  /w/{workspace}/workspaces/usage:
    get:
      summary: get usage
      operationId: getWorkspaceUsage
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: usage
          content:
            text/plain:
              schema:
                type: number
  /w/{workspace}/workspaces/used_triggers:
    get:
      summary: get used triggers
      operationId: getUsedTriggers
      tags:
        - workspace
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: status
          content:
            application/json:
              schema:
                type: object
                properties:
                  http_routes_used:
                    type: boolean
                  websocket_used:
                    type: boolean
                  kafka_used:
                    type: boolean
                  nats_used:
                    type: boolean
                  postgres_used:
                    type: boolean
                  mqtt_used:
                    type: boolean
                  gcp_used:
                    type: boolean
                  sqs_used:
                    type: boolean
                required:
                  - http_routes_used
                  - websocket_used
                  - kafka_used
                  - nats_used
                  - postgres_used
                  - mqtt_used
                  - gcp_used
                  - sqs_used
  /w/{workspace}/users/list:
    get:
      summary: list users
      operationId: listUsers
      tags:
        - user
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: user
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: *ref_10
                  required: *ref_11
  /w/{workspace}/users/list_usage:
    get:
      summary: list users usage
      operationId: listUsersUsage
      tags:
        - user
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: user
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_250
                    email:
                      type: string
                    executions:
                      type: number
  /w/{workspace}/users/list_usernames:
    get:
      summary: list usernames
      operationId: listUsernames
      tags:
        - user
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: user
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /w/{workspace}/users/username_to_email/{username}:
    get:
      summary: get email from username
      operationId: usernameToEmail
      tags:
        - user
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: username
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: email
          content:
            text/plain:
              schema:
                type: string
  /tokens/list/scopes:
    get:
      summary: list of available scopes
      operationId: ListAvailableScopes
      tags:
        - token
      responses:
        '200':
          description: list of available scopes
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_339
                    name:
                      type: string
                    description:
                      type: string
                      nullable: true
                    scopes:
                      type: array
                      items:
                        type: object
                        properties: &ref_337
                          value:
                            type: string
                          label:
                            type: string
                          description:
                            type: string
                            nullable: true
                          requires_resource_path:
                            type: boolean
                        required: &ref_338
                          - value
                          - label
                          - requires_resource_path
                  required: &ref_340
                    - name
                    - scopes
  /users/tokens/create:
    post:
      summary: create token
      operationId: createToken
      tags:
        - user
      requestBody:
        description: new token
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_254
                label:
                  type: string
                expiration:
                  type: string
                  format: date-time
                scopes:
                  type: array
                  items:
                    type: string
                workspace_id:
                  type: string
      responses:
        '201':
          description: token created
          content:
            text/plain:
              schema:
                type: string
  /users/tokens/impersonate:
    post:
      summary: create token to impersonate a user (require superadmin)
      operationId: createTokenImpersonate
      tags:
        - user
      requestBody:
        description: new token
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_255
                label:
                  type: string
                expiration:
                  type: string
                  format: date-time
                impersonate_email:
                  type: string
                workspace_id:
                  type: string
              required: &ref_256
                - impersonate_email
      responses:
        '201':
          description: token created
          content:
            text/plain:
              schema:
                type: string
  /users/tokens/delete/{token_prefix}:
    delete:
      summary: delete token
      operationId: deleteToken
      tags:
        - user
      parameters:
        - name: token_prefix
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: delete token
          content:
            text/plain:
              schema:
                type: string
  /users/tokens/list:
    get:
      summary: list token
      operationId: listTokens
      tags:
        - user
      parameters:
        - name: exclude_ephemeral
          in: query
          schema:
            type: boolean
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
      responses:
        '200':
          description: truncated token
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_54
                    label:
                      type: string
                    expiration:
                      type: string
                      format: date-time
                    token_prefix:
                      type: string
                    created_at:
                      type: string
                      format: date-time
                    last_used_at:
                      type: string
                      format: date-time
                    scopes:
                      type: array
                      items:
                        type: string
                    email:
                      type: string
                  required: &ref_55
                    - token_prefix
                    - created_at
                    - last_used_at
  /w/{workspace}/oidc/token/{audience}:
    post:
      summary: get OIDC token (ee only)
      operationId: getOidcToken
      tags:
        - oidc
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: audience
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: new oidc token
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/variables/create:
    post:
      summary: create variable
      operationId: createVariable
      x-mcp-tool: true
      tags:
        - variable
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: already_encrypted
          description: whether the variable is already encrypted (default false)
          in: query
          schema:
            type: boolean
      requestBody:
        description: new variable
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_259
                path:
                  type: string
                  description: The path to the variable
                value:
                  type: string
                  description: The value of the variable
                is_secret:
                  type: boolean
                  description: Whether the variable is a secret
                description:
                  type: string
                  description: The description of the variable
                account:
                  type: integer
                  description: The account identifier
                is_oauth:
                  type: boolean
                  description: Whether the variable is an OAuth variable
                expires_at:
                  type: string
                  description: The expiration date of the variable
                  format: date-time
              required: &ref_260
                - path
                - value
                - is_secret
                - description
      responses:
        '201':
          description: variable created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/variables/encrypt:
    post:
      summary: encrypt value
      operationId: encryptValue
      tags:
        - variable
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: new variable
        required: true
        content:
          application/json:
            schema:
              type: string
      responses:
        '200':
          description: encrypted value
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/variables/delete/{path}:
    delete:
      summary: delete variable
      operationId: deleteVariable
      x-mcp-tool: true
      tags:
        - variable
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: variable deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/variables/update/{path}:
    post:
      summary: update variable
      operationId: updateVariable
      x-mcp-tool: true
      tags:
        - variable
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
        - name: already_encrypted
          description: whether the variable is already encrypted (default false)
          in: query
          schema:
            type: boolean
      requestBody:
        description: updated variable
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_261
                path:
                  type: string
                  description: The path to the variable
                value:
                  type: string
                  description: The new value of the variable
                is_secret:
                  type: boolean
                  description: Whether the variable is a secret
                description:
                  type: string
                  description: The new description of the variable
      responses:
        '200':
          description: variable updated
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/variables/get/{path}:
    get:
      summary: get variable
      operationId: getVariable
      x-mcp-tool: true
      tags:
        - variable
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
        - name: decrypt_secret
          description: |
            ask to decrypt secret if this variable is secret
            (if not secret no effect, default: true)
          in: query
          schema:
            type: boolean
        - name: include_encrypted
          description: >
            ask to include the encrypted value if secret and decrypt secret is
            not true (default: false)
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: variable
          content:
            application/json:
              schema:
                type: object
                properties: &ref_32
                  workspace_id:
                    type: string
                  path:
                    type: string
                  value:
                    type: string
                  is_secret:
                    type: boolean
                  description:
                    type: string
                  account:
                    type: integer
                  is_oauth:
                    type: boolean
                  extra_perms:
                    type: object
                    additionalProperties:
                      type: boolean
                  is_expired:
                    type: boolean
                  refresh_error:
                    type: string
                  is_linked:
                    type: boolean
                  is_refreshed:
                    type: boolean
                  expires_at:
                    type: string
                    format: date-time
                required: &ref_33
                  - workspace_id
                  - path
                  - is_secret
                  - extra_perms
  /w/{workspace}/variables/get_value/{path}:
    get:
      summary: get variable value
      operationId: getVariableValue
      tags:
        - variable
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: variable
          content:
            application/json:
              schema:
                type: string
  /w/{workspace}/variables/exists/{path}:
    get:
      summary: does variable exists at path
      operationId: existsVariable
      tags:
        - variable
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: variable
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/variables/list:
    get:
      summary: list variables
      operationId: listVariable
      x-mcp-tool: true
      tags:
        - variable
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path_start
          description: filter variables by path prefix
          in: query
          schema:
            type: string
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
      responses:
        '200':
          description: variable list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: *ref_32
                  required: *ref_33
  /w/{workspace}/variables/list_contextual:
    get:
      summary: list contextual variables
      operationId: listContextualVariables
      tags:
        - variable
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: contextual variable list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_257
                    name:
                      type: string
                    value:
                      type: string
                    description:
                      type: string
                    is_custom:
                      type: boolean
                  required: &ref_258
                    - name
                    - value
                    - description
                    - is_custom
  /w/{workspace}/workspaces/get_secondary_storage_names:
    get:
      summary: get secondary storage names
      operationId: getSecondaryStorageNames
      tags:
        - setting
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: status
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /w/{workspace}/workspaces/critical_alerts:
    get:
      summary: Get all critical alerts for this workspace
      operationId: workspaceGetCriticalAlerts
      tags:
        - setting
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - in: query
          name: page
          schema:
            type: integer
            default: 1
            description: The page number to retrieve (minimum value is 1)
        - in: query
          name: page_size
          schema:
            type: integer
            default: 10
            maximum: 100
            description: Number of alerts per page (maximum is 100)
        - in: query
          name: acknowledged
          schema:
            type: boolean
            nullable: true
            description: >-
              Filter by acknowledgment status; true for acknowledged, false for
              unacknowledged, and omit for all alerts
      responses:
        '200':
          description: Successfully retrieved all critical alerts
          content:
            application/json:
              schema:
                type: object
                properties:
                  alerts:
                    type: array
                    items:
                      type: object
                      properties: *ref_34
                  total_rows:
                    type: integer
                    description: Total number of rows matching the query.
                    example: 100
                  total_pages:
                    type: integer
                    description: Total number of pages based on the page size.
                    example: 10
  /w/{workspace}/workspaces/critical_alerts/{id}/acknowledge:
    post:
      summary: Acknowledge a critical alert for this workspace
      operationId: workspaceAcknowledgeCriticalAlert
      tags:
        - setting
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - in: path
          name: id
          required: true
          schema:
            type: integer
          description: The ID of the critical alert to acknowledge
      responses:
        '200':
          description: Successfully acknowledged the critical alert
          content:
            application/json:
              schema:
                type: string
                example: Critical alert acknowledged
  /w/{workspace}/workspaces/critical_alerts/acknowledge_all:
    post:
      summary: Acknowledge all unacknowledged critical alerts for this workspace
      operationId: workspaceAcknowledgeAllCriticalAlerts
      tags:
        - setting
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: Successfully acknowledged all unacknowledged critical alerts.
          content:
            application/json:
              schema:
                type: string
                example: All unacknowledged critical alerts acknowledged
  /w/{workspace}/workspaces/critical_alerts/mute:
    post:
      summary: Mute critical alert UI for this workspace
      operationId: workspaceMuteCriticalAlertsUI
      tags:
        - setting
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: Boolean flag to mute critical alerts.
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                mute_critical_alerts:
                  type: boolean
                  description: Whether critical alerts should be muted.
                  example: true
      responses:
        '200':
          description: Successfully updated mute critical alert settings.
          content:
            application/json:
              schema:
                type: string
                example: >-
                  Updated mute critical alert UI settings for workspace:
                  workspace_id
  /oauth/login_callback/{client_name}:
    post:
      security: []
      summary: login with oauth authorization flow
      operationId: loginWithOauth
      tags:
        - user
      parameters:
        - name: client_name
          in: path
          required: true
          schema: &ref_35
            type: string
      requestBody:
        description: Partially filled script
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                code:
                  type: string
                state:
                  type: string
      responses:
        '200':
          description: >
            Successfully authenticated. The session ID is returned in a cookie
            named `token` and as plaintext response. Preferred method of
            authorization is through the bearer token. The cookie is only for
            browser convenience.
          headers:
            Set-Cookie:
              schema:
                type: string
                example: token=abcde12345; Path=/; HttpOnly
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/oauth/connect_slack_callback:
    post:
      summary: connect slack callback
      operationId: connectSlackCallback
      tags:
        - oauth
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: code endpoint
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                code:
                  type: string
                state:
                  type: string
              required:
                - code
                - state
      responses:
        '200':
          description: slack token
          content:
            text/plain:
              schema:
                type: string
  /oauth/connect_slack_callback:
    post:
      summary: connect slack callback instance
      operationId: connectSlackCallbackInstance
      tags:
        - oauth
      requestBody:
        description: code endpoint
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                code:
                  type: string
                state:
                  type: string
              required:
                - code
                - state
      responses:
        '200':
          description: success message
          content:
            text/plain:
              schema:
                type: string
  /oauth/connect_callback/{client_name}:
    post:
      summary: connect callback
      operationId: connectCallback
      tags:
        - oauth
      parameters:
        - name: client_name
          in: path
          required: true
          schema: *ref_35
      requestBody:
        description: code endpoint
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                code:
                  type: string
                state:
                  type: string
              required:
                - code
                - state
      responses:
        '200':
          description: oauth token
          content:
            application/json:
              schema:
                type: object
                properties: &ref_36
                  access_token:
                    type: string
                  expires_in:
                    type: integer
                  refresh_token:
                    type: string
                  scope:
                    type: array
                    items:
                      type: string
                  grant_type:
                    type: string
                required: &ref_37
                  - access_token
  /w/{workspace}/oauth/create_account:
    post:
      summary: create OAuth account
      operationId: createAccount
      tags:
        - oauth
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: code endpoint
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                refresh_token:
                  type: string
                expires_in:
                  type: integer
                client:
                  type: string
                grant_type:
                  type: string
                  default: authorization_code
                cc_client_id:
                  type: string
                  description: >-
                    OAuth client ID for resource-level credentials
                    (client_credentials flow only)
                cc_client_secret:
                  type: string
                  description: >-
                    OAuth client secret for resource-level credentials
                    (client_credentials flow only)
                cc_token_url:
                  type: string
                  description: >-
                    OAuth token URL override for resource-level authentication
                    (client_credentials flow only)
              required:
                - expires_in
                - client
      responses:
        '200':
          description: account set
          content:
            text/plain:
              schema:
                type: string
  /oauth/connect_client_credentials/{client}:
    post:
      summary: connect OAuth using client credentials
      operationId: connectClientCredentials
      tags:
        - oauth
      parameters:
        - name: client
          in: path
          description: OAuth client name
          required: true
          schema:
            type: string
      requestBody:
        description: client credentials flow parameters
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                scopes:
                  type: array
                  items:
                    type: string
                cc_client_id:
                  type: string
                  description: OAuth client ID for resource-level authentication
                cc_client_secret:
                  type: string
                  description: OAuth client secret for resource-level authentication
                cc_token_url:
                  type: string
                  description: OAuth token URL override for resource-level authentication
              required:
                - cc_client_id
                - cc_client_secret
      responses:
        '200':
          description: OAuth token response
          content:
            application/json:
              schema:
                type: object
                properties: *ref_36
                required: *ref_37
  /w/{workspace}/oauth/refresh_token/{id}:
    post:
      summary: refresh token
      operationId: refreshToken
      tags:
        - oauth
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: &ref_38
            type: integer
      requestBody:
        description: variable path
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                path:
                  type: string
              required:
                - path
      responses:
        '200':
          description: token refreshed
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/oauth/disconnect/{id}:
    post:
      summary: disconnect account
      operationId: disconnectAccount
      tags:
        - oauth
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_38
      responses:
        '200':
          description: disconnected client
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/oauth/disconnect_slack:
    post:
      summary: disconnect slack
      operationId: disconnectSlack
      tags:
        - oauth
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: disconnected slack
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/oauth/disconnect_teams:
    post:
      summary: disconnect teams
      operationId: disconnectTeams
      tags:
        - oauth
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: disconnected teams
          content:
            text/plain:
              schema:
                type: string
  /oauth/list_logins:
    get:
      summary: list oauth logins
      operationId: listOAuthLogins
      tags:
        - oauth
      responses:
        '200':
          description: list of oauth and saml login clients
          content:
            application/json:
              schema:
                type: object
                properties:
                  oauth:
                    type: array
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                        display_name:
                          type: string
                      required:
                        - type
                  saml:
                    type: string
                required:
                  - oauth
  /oauth/list_connects:
    get:
      summary: list oauth connects
      operationId: listOAuthConnects
      tags:
        - oauth
      responses:
        '200':
          description: list of oauth connects clients
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /oauth/get_connect/{client}:
    get:
      summary: get oauth connect
      operationId: getOAuthConnect
      tags:
        - oauth
      parameters:
        - name: client
          description: client name
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: get
          content:
            application/json:
              schema:
                type: object
                properties:
                  extra_params:
                    type: object
                  scopes:
                    type: array
                    items:
                      type: string
                  grant_types:
                    type: array
                    items:
                      type: string
  /teams/sync:
    post:
      operationId: syncTeams
      summary: synchronize Microsoft Teams information (teams/channels)
      tags:
        - teams
      responses:
        '200':
          description: Teams information successfully synchronized
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  required: &ref_372
                    - team_id
                    - team_name
                    - channels
                  properties: &ref_373
                    team_id:
                      type: string
                      description: The unique identifier of the Microsoft Teams team
                      example: 19:abc123def456@thread.tacv2
                    team_name:
                      type: string
                      description: The display name of the Microsoft Teams team
                      example: Engineering Team
                    channels:
                      type: array
                      description: List of channels within the team
                      items:
                        type: object
                        required: &ref_374
                          - channel_id
                          - channel_name
                          - tenant_id
                          - service_url
                        properties: &ref_375
                          channel_id:
                            type: string
                            description: The unique identifier of the channel
                            example: 19:channel123@thread.tacv2
                          channel_name:
                            type: string
                            description: The display name of the channel
                            example: General
                          tenant_id:
                            type: string
                            description: The Microsoft Teams tenant identifier
                            example: 12345678-1234-1234-1234-123456789012
                          service_url:
                            type: string
                            description: The service URL for the channel
                            example: >-
                              https://smba.trafficmanager.net/amer/12345678-1234-1234-1234-123456789012/
  /teams/activities:
    post:
      summary: send update to Microsoft Teams activity
      description: Respond to a Microsoft Teams activity after a workspace command is run
      operationId: sendMessageToConversation
      tags:
        - teams
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - conversation_id
                - text
              properties:
                conversation_id:
                  type: string
                  description: The ID of the Teams conversation/activity
                success:
                  type: boolean
                  description: Used for styling the card conditionally
                  default: true
                text:
                  type: string
                  description: The message text to be sent in the Teams card
                card_block:
                  type: object
                  description: The card block to be sent in the Teams card
      responses:
        '200':
          description: Activity processed successfully
  /w/{workspace}/resources/create:
    post:
      summary: create resource
      operationId: createResource
      x-mcp-tool: true
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: update_if_exists
          description: update the resource if it already exists (default false)
          in: query
          schema:
            type: boolean
      requestBody:
        description: new resource
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_266
                path:
                  type: string
                  description: The path to the resource
                value: {}
                description:
                  type: string
                  description: The description of the resource
                resource_type:
                  type: string
                  description: The resource_type associated with the resource
              required: &ref_267
                - path
                - value
                - resource_type
      responses:
        '201':
          description: resource created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/resources/delete/{path}:
    delete:
      summary: delete resource
      operationId: deleteResource
      x-mcp-tool: true
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: resource deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/resources/update/{path}:
    post:
      summary: update resource
      operationId: updateResource
      x-mcp-tool: true
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: updated resource
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_268
                path:
                  type: string
                  description: The path to the resource
                description:
                  type: string
                  description: The new description of the resource
                value: {}
                resource_type:
                  type: string
                  description: The new resource_type to be associated with the resource
      responses:
        '200':
          description: resource updated
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/resources/update_value/{path}:
    post:
      summary: update resource value
      operationId: updateResourceValue
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: updated resource
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                value: {}
      responses:
        '200':
          description: resource value updated
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/resources/get/{path}:
    get:
      summary: get resource
      operationId: getResource
      x-mcp-tool: true
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: resource
          content:
            application/json:
              schema:
                type: object
                properties: &ref_269
                  workspace_id:
                    type: string
                  path:
                    type: string
                  description:
                    type: string
                  resource_type:
                    type: string
                  value: {}
                  is_oauth:
                    type: boolean
                  extra_perms:
                    type: object
                    additionalProperties:
                      type: boolean
                  created_by:
                    type: string
                  edited_at:
                    type: string
                    format: date-time
                required: &ref_270
                  - path
                  - resource_type
                  - is_oauth
  /w/{workspace}/resources/get_value_interpolated/{path}:
    get:
      summary: get resource interpolated (variables and resources are fully unrolled)
      operationId: getResourceValueInterpolated
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
        - name: job_id
          description: job id
          in: query
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: resource value
          content:
            application/json:
              schema: {}
  /w/{workspace}/resources/get_value/{path}:
    get:
      summary: get resource value
      operationId: getResourceValue
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: resource value
          content:
            application/json:
              schema: {}
  /w/{workspace}/resources/exists/{path}:
    get:
      summary: does resource exists
      operationId: existsResource
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: does resource exists
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/resources/list:
    get:
      summary: list resources
      operationId: listResource
      x-mcp-tool: true
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: resource_type
          description: resource_types to list from, separated by ',',
          in: query
          schema:
            type: string
        - name: resource_type_exclude
          description: resource_types to not list from, separated by ',',
          in: query
          schema:
            type: string
        - name: path_start
          description: filter resources by path prefix
          in: query
          schema:
            type: string
      responses:
        '200':
          description: resource list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_271
                    workspace_id:
                      type: string
                    path:
                      type: string
                    description:
                      type: string
                    resource_type:
                      type: string
                    value: {}
                    is_oauth:
                      type: boolean
                    extra_perms:
                      type: object
                      additionalProperties:
                        type: boolean
                    is_expired:
                      type: boolean
                    refresh_error:
                      type: string
                    is_linked:
                      type: boolean
                    is_refreshed:
                      type: boolean
                    account:
                      type: number
                    created_by:
                      type: string
                    edited_at:
                      type: string
                      format: date-time
                  required: &ref_272
                    - path
                    - resource_type
                    - is_oauth
                    - is_linked
                    - is_refreshed
  /w/{workspace}/resources/list_search:
    get:
      summary: list resources for search
      operationId: listSearchResource
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: resource list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    path:
                      type: string
                    value: {}
                  required:
                    - path
                    - value
  /w/{workspace}/resources/list_names/{name}:
    get:
      summary: list resource names
      operationId: listResourceNames
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: name
          in: path
          required: true
          schema: &ref_180
            type: string
      responses:
        '200':
          description: resource list names
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                    path:
                      type: string
                  required:
                    - name
                    - path
  /w/{workspace}/resources/type/create:
    post:
      summary: create resource_type
      operationId: createResourceType
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: new resource_type
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_39
                workspace_id:
                  type: string
                name:
                  type: string
                schema: {}
                description:
                  type: string
                created_by:
                  type: string
                edited_at:
                  type: string
                  format: date-time
                format_extension:
                  type: string
              required: &ref_40
                - name
      responses:
        '201':
          description: resource_type created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/resources/file_resource_type_to_file_ext_map:
    get:
      summary: get map from resource type to format extension
      operationId: fileResourceTypeToFileExtMap
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: map from resource type to file ext
          content:
            application/json:
              schema: {}
  /w/{workspace}/resources/type/delete/{path}:
    delete:
      summary: delete resource_type
      operationId: deleteResourceType
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: resource_type deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/resources/type/update/{path}:
    post:
      summary: update resource_type
      operationId: updateResourceType
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: updated resource_type
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_273
                schema: {}
                description:
                  type: string
      responses:
        '200':
          description: resource_type updated
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/resources/type/get/{path}:
    get:
      summary: get resource_type
      operationId: getResourceType
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: resource_type deleted
          content:
            application/json:
              schema:
                type: object
                properties: *ref_39
                required: *ref_40
  /w/{workspace}/resources/type/exists/{path}:
    get:
      summary: does resource_type exists
      operationId: existsResourceType
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: does resource_type exist
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/resources/type/list:
    get:
      summary: list resource_types
      operationId: listResourceType
      x-mcp-tool: true
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: resource_type list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: *ref_39
                  required: *ref_40
  /w/{workspace}/resources/type/listnames:
    get:
      summary: list resource_types names
      operationId: listResourceTypeNames
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: resource_type list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /w/{workspace}/embeddings/query_resource_types:
    get:
      summary: query resource types by similarity
      operationId: queryResourceTypes
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: text
          description: query text
          in: query
          required: true
          schema:
            type: string
        - name: limit
          description: query limit
          in: query
          required: false
          schema:
            type: number
      responses:
        '200':
          description: resource type details
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                    score:
                      type: number
                    schema: {}
                  required:
                    - name
                    - score
  /integrations/hub/list:
    get:
      summary: list hub integrations
      operationId: listHubIntegrations
      tags:
        - integration
      parameters:
        - name: kind
          description: query integrations kind
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: integrations details
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                  required:
                    - name
  /flows/hub/list:
    get:
      summary: list all hub flows
      operationId: listHubFlows
      tags:
        - flow
      responses:
        '200':
          description: hub flows list
          content:
            application/json:
              schema:
                type: object
                properties:
                  flows:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                        flow_id:
                          type: number
                        summary:
                          type: string
                        apps:
                          type: array
                          items:
                            type: string
                        approved:
                          type: boolean
                        votes:
                          type: number
                      required:
                        - id
                        - flow_id
                        - summary
                        - apps
                        - approved
                        - votes
  /flows/hub/get/{id}:
    get:
      summary: get hub flow by id
      operationId: getHubFlowById
      tags:
        - flow
      parameters:
        - name: id
          in: path
          required: true
          schema: *ref_41
      responses:
        '200':
          description: flow
          content:
            application/json:
              schema:
                type: object
                properties:
                  flow:
                    type: object
                    properties: &ref_68
                      summary:
                        type: string
                      description:
                        type: string
                      value:
                        type: object
                        properties: &ref_377
                          modules:
                            type: array
                            items:
                              type: object
                              properties: &ref_44
                                id:
                                  type: string
                                value:
                                  oneOf: &ref_216
                                    - type: object
                                      properties: &ref_219
                                        input_transforms:
                                          type: object
                                          additionalProperties:
                                            oneOf: &ref_42
                                              - type: object
                                                properties: &ref_84
                                                  value: {}
                                                  type:
                                                    type: string
                                                    enum:
                                                      - static
                                                required: &ref_85
                                                  - value
                                                  - type
                                              - type: object
                                                properties: &ref_86
                                                  expr:
                                                    type: string
                                                  type:
                                                    type: string
                                                    enum:
                                                      - javascript
                                                required: &ref_87
                                                  - expr
                                                  - type
                                            discriminator: &ref_43
                                              propertyName: type
                                              mapping:
                                                static: >-
                                                  #/components/schemas/schemas-StaticTransform
                                                javascript: >-
                                                  #/components/schemas/schemas-JavascriptTransform
                                        content:
                                          type: string
                                        language:
                                          type: string
                                          enum:
                                            - deno
                                            - bun
                                            - python3
                                            - go
                                            - bash
                                            - powershell
                                            - postgresql
                                            - mysql
                                            - bigquery
                                            - snowflake
                                            - mssql
                                            - oracledb
                                            - graphql
                                            - nativets
                                            - php
                                        path:
                                          type: string
                                        lock:
                                          type: string
                                        type:
                                          type: string
                                          enum:
                                            - rawscript
                                        tag:
                                          type: string
                                        concurrent_limit:
                                          type: number
                                        concurrency_time_window_s:
                                          type: number
                                        custom_concurrency_key:
                                          type: string
                                        is_trigger:
                                          type: boolean
                                        assets:
                                          type: array
                                          items:
                                            type: object
                                            required:
                                              - path
                                              - kind
                                            properties:
                                              path:
                                                type: string
                                              kind:
                                                type: string
                                                enum:
                                                  - s3object
                                                  - resource
                                                  - ducklake
                                              access_type:
                                                type: string
                                                enum:
                                                  - r
                                                  - w
                                                  - rw
                                              alt_access_type:
                                                type: string
                                                enum:
                                                  - r
                                                  - w
                                                  - rw
                                      required: &ref_220
                                        - type
                                        - content
                                        - language
                                        - input_transforms
                                    - type: object
                                      properties: &ref_221
                                        input_transforms:
                                          type: object
                                          additionalProperties:
                                            oneOf: *ref_42
                                            discriminator: *ref_43
                                        path:
                                          type: string
                                        hash:
                                          type: string
                                        type:
                                          type: string
                                          enum:
                                            - script
                                        tag_override:
                                          type: string
                                        is_trigger:
                                          type: boolean
                                      required: &ref_222
                                        - type
                                        - path
                                        - input_transforms
                                    - type: object
                                      properties: &ref_223
                                        input_transforms:
                                          type: object
                                          additionalProperties:
                                            oneOf: *ref_42
                                            discriminator: *ref_43
                                        path:
                                          type: string
                                        type:
                                          type: string
                                          enum:
                                            - flow
                                      required: &ref_224
                                        - type
                                        - path
                                        - input_transforms
                                    - type: object
                                      properties: &ref_225
                                        modules:
                                          type: array
                                          items:
                                            type: object
                                            properties: *ref_44
                                            required: &ref_45
                                              - value
                                              - id
                                        iterator:
                                          oneOf: *ref_42
                                          discriminator: *ref_43
                                        skip_failures:
                                          type: boolean
                                        type:
                                          type: string
                                          enum:
                                            - forloopflow
                                        parallel:
                                          type: boolean
                                        parallelism:
                                          type: integer
                                      required: &ref_226
                                        - modules
                                        - iterator
                                        - skip_failures
                                        - type
                                    - type: object
                                      properties: &ref_227
                                        modules:
                                          type: array
                                          items:
                                            type: object
                                            properties: *ref_44
                                            required: *ref_45
                                        skip_failures:
                                          type: boolean
                                        type:
                                          type: string
                                          enum:
                                            - whileloopflow
                                        parallel:
                                          type: boolean
                                        parallelism:
                                          type: integer
                                      required: &ref_228
                                        - modules
                                        - skip_failures
                                        - type
                                    - type: object
                                      properties: &ref_229
                                        branches:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              summary:
                                                type: string
                                              expr:
                                                type: string
                                              modules:
                                                type: array
                                                items:
                                                  type: object
                                                  properties: *ref_44
                                                  required: *ref_45
                                            required:
                                              - modules
                                              - expr
                                        default:
                                          type: array
                                          items:
                                            type: object
                                            properties: *ref_44
                                            required: *ref_45
                                          required:
                                            - modules
                                        type:
                                          type: string
                                          enum:
                                            - branchone
                                      required: &ref_230
                                        - branches
                                        - default
                                        - type
                                    - type: object
                                      properties: &ref_231
                                        branches:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              summary:
                                                type: string
                                              skip_failure:
                                                type: boolean
                                              modules:
                                                type: array
                                                items:
                                                  type: object
                                                  properties: *ref_44
                                                  required: *ref_45
                                            required:
                                              - modules
                                        type:
                                          type: string
                                          enum:
                                            - branchall
                                        parallel:
                                          type: boolean
                                      required: &ref_232
                                        - branches
                                        - type
                                    - type: object
                                      properties: &ref_233
                                        type:
                                          type: string
                                          enum:
                                            - identity
                                        flow:
                                          type: boolean
                                      required: &ref_234
                                        - type
                                  discriminator: &ref_217
                                    propertyName: type
                                    mapping:
                                      rawscript: '#/components/schemas/schemas-RawScript'
                                      script: '#/components/schemas/schemas-PathScript'
                                      flow: '#/components/schemas/schemas-PathFlow'
                                      forloopflow: '#/components/schemas/schemas-ForloopFlow'
                                      whileloopflow: >-
                                        #/components/schemas/schemas-WhileloopFlow
                                      branchone: '#/components/schemas/schemas-BranchOne'
                                      branchall: '#/components/schemas/schemas-BranchAll'
                                      identity: '#/components/schemas/schemas-Identity'
                                stop_after_if:
                                  type: object
                                  properties: &ref_46
                                    skip_if_stopped:
                                      type: boolean
                                    expr:
                                      type: string
                                    error_message:
                                      type: string
                                  required: &ref_47
                                    - expr
                                stop_after_all_iters_if:
                                  type: object
                                  properties: *ref_46
                                  required: *ref_47
                                skip_if:
                                  type: object
                                  properties:
                                    expr:
                                      type: string
                                  required:
                                    - expr
                                sleep:
                                  oneOf: *ref_42
                                  discriminator: *ref_43
                                cache_ttl:
                                  type: number
                                timeout:
                                  type: number
                                delete_after_use:
                                  type: boolean
                                summary:
                                  type: string
                                mock:
                                  type: object
                                  properties:
                                    enabled:
                                      type: boolean
                                    return_value: {}
                                suspend:
                                  type: object
                                  properties:
                                    required_events:
                                      type: integer
                                    timeout:
                                      type: integer
                                    resume_form:
                                      type: object
                                      properties:
                                        schema:
                                          type: object
                                    user_auth_required:
                                      type: boolean
                                    user_groups_required:
                                      oneOf: *ref_42
                                      discriminator: *ref_43
                                    self_approval_disabled:
                                      type: boolean
                                    hide_cancel:
                                      type: boolean
                                    continue_on_disapprove_timeout:
                                      type: boolean
                                priority:
                                  type: number
                                continue_on_error:
                                  type: boolean
                                retry:
                                  type: object
                                  properties: &ref_218
                                    constant:
                                      type: object
                                      properties:
                                        attempts:
                                          type: integer
                                        seconds:
                                          type: integer
                                    exponential:
                                      type: object
                                      properties:
                                        attempts:
                                          type: integer
                                        multiplier:
                                          type: integer
                                        seconds:
                                          type: integer
                                        random_factor:
                                          type: integer
                                          minimum: 0
                                          maximum: 100
                              required: *ref_45
                          failure_module:
                            type: object
                            properties: *ref_44
                            required: *ref_45
                          preprocessor_module:
                            type: object
                            properties: *ref_44
                            required: *ref_45
                          same_worker:
                            type: boolean
                          concurrent_limit:
                            type: number
                          concurrency_key:
                            type: string
                          concurrency_time_window_s:
                            type: number
                          skip_expr:
                            type: string
                          cache_ttl:
                            type: number
                          priority:
                            type: number
                          early_return:
                            type: string
                        required: &ref_378
                          - modules
                      schema:
                        type: object
                    required: &ref_69
                      - summary
                      - value
  /apps/hub/list:
    get:
      summary: list all hub apps
      operationId: listHubApps
      tags:
        - app
      responses:
        '200':
          description: hub apps list
          content:
            application/json:
              schema:
                type: object
                properties:
                  apps:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                        app_id:
                          type: number
                        summary:
                          type: string
                        apps:
                          type: array
                          items:
                            type: string
                        approved:
                          type: boolean
                        votes:
                          type: number
                      required:
                        - id
                        - app_id
                        - summary
                        - apps
                        - approved
                        - votes
  /apps/hub/get/{id}:
    get:
      summary: get hub app by id
      operationId: getHubAppById
      tags:
        - app
      parameters:
        - name: id
          in: path
          required: true
          schema: *ref_41
      responses:
        '200':
          description: app
          content:
            application/json:
              schema:
                type: object
                properties:
                  app:
                    type: object
                    properties:
                      summary:
                        type: string
                      value: {}
                    required:
                      - summary
                      - value
                required:
                  - app
  /apps_u/public_app_by_custom_path/{custom_path}:
    get:
      summary: get public app by custom path
      operationId: getPublicAppByCustomPath
      tags:
        - app
      parameters:
        - name: custom_path
          in: path
          required: true
          schema: &ref_81
            type: string
      responses:
        '200':
          description: app details
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties: &ref_76
                      id:
                        type: integer
                      workspace_id:
                        type: string
                      path:
                        type: string
                      summary:
                        type: string
                      versions:
                        type: array
                        items:
                          type: integer
                      created_by:
                        type: string
                      created_at:
                        type: string
                        format: date-time
                      value:
                        type: object
                      policy:
                        type: object
                        properties: &ref_75
                          triggerables:
                            type: object
                            additionalProperties:
                              type: object
                          triggerables_v2:
                            type: object
                            additionalProperties:
                              type: object
                          s3_inputs:
                            type: array
                            items:
                              type: object
                          allowed_s3_keys:
                            type: array
                            items:
                              type: object
                              properties:
                                s3_path:
                                  type: string
                                resource:
                                  type: string
                          execution_mode:
                            type: string
                            enum:
                              - viewer
                              - publisher
                              - anonymous
                          on_behalf_of:
                            type: string
                          on_behalf_of_email:
                            type: string
                      execution_mode:
                        type: string
                        enum:
                          - viewer
                          - publisher
                          - anonymous
                      extra_perms:
                        type: object
                        additionalProperties:
                          type: boolean
                      custom_path:
                        type: string
                    required: &ref_77
                      - id
                      - workspace_id
                      - path
                      - summary
                      - versions
                      - created_by
                      - created_at
                      - value
                      - policy
                      - execution_mode
                      - extra_perms
                  - type: object
                    properties:
                      workspace_id:
                        type: string
  /scripts/hub/get/{path}:
    get:
      summary: get hub script content by path
      operationId: getHubScriptContentByPath
      tags:
        - script
      parameters:
        - name: path
          in: path
          required: true
          schema: &ref_48
            type: string
      responses:
        '200':
          description: script details
          content:
            text/plain:
              schema:
                type: string
  /scripts/hub/get_full/{path}:
    get:
      summary: get full hub script by path
      operationId: getHubScriptByPath
      tags:
        - script
      parameters:
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: script details
          content:
            application/json:
              schema:
                type: object
                properties:
                  content:
                    type: string
                  lockfile:
                    type: string
                  schema: {}
                  language:
                    type: string
                  summary:
                    type: string
                required:
                  - content
                  - language
  /scripts/hub/top:
    get:
      summary: get top hub scripts
      operationId: getTopHubScripts
      tags:
        - script
      parameters:
        - name: limit
          description: query limit
          in: query
          required: false
          schema:
            type: number
        - name: app
          description: query scripts app
          in: query
          required: false
          schema:
            type: string
        - name: kind
          description: query scripts kind
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: hub scripts list
          content:
            application/json:
              schema:
                type: object
                properties:
                  asks:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                        ask_id:
                          type: number
                        summary:
                          type: string
                        app:
                          type: string
                        version_id:
                          type: number
                        kind:
                          type: string
                          enum: &ref_49
                            - script
                            - failure
                            - trigger
                            - approval
                        votes:
                          type: number
                        views:
                          type: number
                      required:
                        - id
                        - ask_id
                        - summary
                        - app
                        - version_id
                        - kind
                        - views
                        - votes
  /embeddings/query_hub_scripts:
    get:
      summary: query hub scripts by similarity
      operationId: queryHubScripts
      tags:
        - script
      parameters:
        - name: text
          description: query text
          in: query
          required: true
          schema:
            type: string
        - name: kind
          description: query scripts kind
          in: query
          required: false
          schema:
            type: string
        - name: limit
          description: query limit
          in: query
          required: false
          schema:
            type: number
        - name: app
          description: query scripts app
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: script details
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    ask_id:
                      type: number
                    id:
                      type: number
                    version_id:
                      type: number
                    summary:
                      type: string
                    app:
                      type: string
                    kind:
                      type: string
                      enum: *ref_49
                    score:
                      type: number
                  required:
                    - ask_id
                    - id
                    - version_id
                    - summary
                    - app
                    - kind
                    - score
  /w/{workspace}/scripts/list_search:
    get:
      summary: list scripts for search
      operationId: listSearchScript
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: script list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    path:
                      type: string
                    content:
                      type: string
                  required:
                    - path
                    - content
  /w/{workspace}/scripts/list:
    get:
      summary: list all scripts
      operationId: listScripts
      x-mcp-tool: true
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: order_desc
          description: order by desc order (default true)
          in: query
          schema: &ref_66
            type: boolean
        - name: created_by
          description: mask to filter exact matching user creator
          in: query
          schema: &ref_67
            type: string
        - name: path_start
          description: mask to filter matching starting path
          in: query
          schema:
            type: string
        - name: path_exact
          description: mask to filter exact matching path
          in: query
          schema:
            type: string
        - name: first_parent_hash
          description: mask to filter scripts whom first direct parent has exact hash
          in: query
          schema:
            type: string
        - name: last_parent_hash
          description: >
            mask to filter scripts whom last parent in the chain has exact hash.

            Beware that each script stores only a limited number of parents.
            Hence

            the last parent hash for a script is not necessarily its top-most
            parent.

            To find the top-most parent you will have to jump from last to last
            hash
             until finding the parent
          in: query
          schema:
            type: string
        - name: parent_hash
          description: >
            is the hash present in the array of stored parent hashes for this
            script.

            The same warning applies than for last_parent_hash. A script only
            store a

            limited number of direct parent
          in: query
          schema:
            type: string
        - name: show_archived
          description: >
            (default false)

            show only the archived files.

            when multiple archived hash share the same path, only the ones with
            the latest create_at

            are

            ed.
          in: query
          schema:
            type: boolean
        - name: include_without_main
          description: |
            (default false)
            include scripts without an exported main function
          in: query
          schema:
            type: boolean
        - name: include_draft_only
          description: |
            (default false)
            include scripts that have no deployed version
          in: query
          schema:
            type: boolean
        - name: is_template
          description: |
            (default regardless)
            if true show only the templates
            if false show only the non templates
            if not defined, show all regardless of if the script is a template
          in: query
          schema:
            type: boolean
        - name: kinds
          description: |
            (default regardless)
            script kinds to filter, split by comma
          in: query
          schema:
            type: string
        - name: starred_only
          description: |
            (default false)
            show only the starred items
          in: query
          schema:
            type: boolean
        - name: with_deployment_msg
          description: |
            (default false)
            include deployment message
          in: query
          schema:
            type: boolean
        - name: languages
          in: query
          description: |
            Filter to only include scripts written in the given languages.
            Accepts multiple values as a comma-separated list.
          schema:
            type: string
      responses:
        '200':
          description: All scripts
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_51
                    workspace_id:
                      type: string
                    hash:
                      type: string
                    path:
                      type: string
                    parent_hashes:
                      type: array
                      description: >
                        The first element is the direct parent of the script,
                        the second is the parent of the first, etc
                      items:
                        type: string
                    summary:
                      type: string
                    description:
                      type: string
                    content:
                      type: string
                    created_by:
                      type: string
                    created_at:
                      type: string
                      format: date-time
                    archived:
                      type: boolean
                    schema:
                      type: object
                    deleted:
                      type: boolean
                    is_template:
                      type: boolean
                    extra_perms:
                      type: object
                      additionalProperties:
                        type: boolean
                    lock:
                      type: string
                    lock_error_logs:
                      type: string
                    language:
                      type: string
                      enum: &ref_50
                        - python3
                        - deno
                        - go
                        - bash
                        - powershell
                        - postgresql
                        - mysql
                        - bigquery
                        - snowflake
                        - mssql
                        - oracledb
                        - graphql
                        - nativets
                        - bun
                        - php
                        - rust
                        - ansible
                        - csharp
                        - nu
                        - java
                        - duckdb
                    kind:
                      type: string
                      enum:
                        - script
                        - failure
                        - trigger
                        - command
                        - approval
                        - preprocessor
                    starred:
                      type: boolean
                    tag:
                      type: string
                    has_draft:
                      type: boolean
                    draft_only:
                      type: boolean
                    envs:
                      type: array
                      items:
                        type: string
                    concurrent_limit:
                      type: integer
                    concurrency_time_window_s:
                      type: integer
                    concurrency_key:
                      type: string
                    cache_ttl:
                      type: number
                    dedicated_worker:
                      type: boolean
                    ws_error_handler_muted:
                      type: boolean
                    priority:
                      type: integer
                    restart_unless_cancelled:
                      type: boolean
                    timeout:
                      type: integer
                    delete_after_use:
                      type: boolean
                    visible_to_runner_only:
                      type: boolean
                    no_main_func:
                      type: boolean
                    codebase:
                      type: string
                    has_preprocessor:
                      type: boolean
                    on_behalf_of_email:
                      type: string
                  required: &ref_52
                    - hash
                    - path
                    - summary
                    - description
                    - content
                    - created_by
                    - created_at
                    - archived
                    - deleted
                    - is_template
                    - extra_perms
                    - language
                    - kind
                    - starred
                    - no_main_func
                    - has_preprocessor
  /w/{workspace}/scripts/list_paths:
    get:
      summary: list all scripts paths
      operationId: listScriptPaths
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: list of script paths
          content:
            text/plain:
              schema:
                type: array
                items:
                  type: string
  /w/{workspace}/drafts/create:
    post:
      summary: create draft
      operationId: createDraft
      tags:
        - draft
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                path:
                  type: string
                typ:
                  type: string
                  enum:
                    - flow
                    - script
                    - app
                value: {}
              required:
                - path
                - typ
                - enum
      responses:
        '201':
          description: draft created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/drafts/delete/{kind}/{path}:
    delete:
      summary: delete draft
      operationId: deleteDraft
      tags:
        - draft
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: kind
          in: path
          required: true
          schema:
            type: string
            enum:
              - script
              - flow
              - app
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: draft deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/scripts/create:
    post:
      summary: create script
      operationId: createScript
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: Partially filled script
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_56
                path:
                  type: string
                parent_hash:
                  type: string
                summary:
                  type: string
                description:
                  type: string
                content:
                  type: string
                schema:
                  type: object
                is_template:
                  type: boolean
                lock:
                  type: string
                language:
                  type: string
                  enum: *ref_50
                kind:
                  type: string
                  enum:
                    - script
                    - failure
                    - trigger
                    - command
                    - approval
                    - preprocessor
                tag:
                  type: string
                draft_only:
                  type: boolean
                envs:
                  type: array
                  items:
                    type: string
                concurrent_limit:
                  type: integer
                concurrency_time_window_s:
                  type: integer
                cache_ttl:
                  type: number
                dedicated_worker:
                  type: boolean
                ws_error_handler_muted:
                  type: boolean
                priority:
                  type: integer
                restart_unless_cancelled:
                  type: boolean
                timeout:
                  type: integer
                delete_after_use:
                  type: boolean
                deployment_message:
                  type: string
                concurrency_key:
                  type: string
                visible_to_runner_only:
                  type: boolean
                no_main_func:
                  type: boolean
                codebase:
                  type: string
                has_preprocessor:
                  type: boolean
                on_behalf_of_email:
                  type: string
                assets:
                  type: array
                  items:
                    type: object
                    required:
                      - path
                      - kind
                    properties:
                      path:
                        type: string
                      kind:
                        type: string
                        enum: &ref_202
                          - s3object
                          - resource
                          - ducklake
                      access_type:
                        type: string
                        enum:
                          - r
                          - w
                          - rw
                      alt_access_type:
                        type: string
                        enum:
                          - r
                          - w
                          - rw
              required: &ref_57
                - path
                - summary
                - description
                - content
                - language
      responses:
        '201':
          description: script created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/scripts/toggle_workspace_error_handler/p/{path}:
    post:
      summary: Toggle ON and OFF the workspace error handler for a given script
      operationId: toggleWorkspaceErrorHandlerForScript
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      requestBody:
        description: Workspace error handler enabled
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                muted:
                  type: boolean
      responses:
        '200':
          description: error handler toggled
          content:
            text/plain:
              schema:
                type: string
  /workers/custom_tags:
    get:
      summary: >-
        get all instance custom tags (tags are used to dispatch jobs to
        different worker groups)
      operationId: getCustomTags
      tags:
        - worker
      parameters:
        - name: workspace
          in: query
          schema:
            type: string
          required: false
        - name: show_workspace_restriction
          in: query
          schema:
            type: boolean
          required: false
      responses:
        '200':
          description: list of custom tags
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /workers/get_default_tags:
    get:
      summary: get all instance default tags
      operationId: geDefaultTags
      tags:
        - worker
      responses:
        '200':
          description: list of default tags
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /workers/is_default_tags_per_workspace:
    get:
      summary: is default tags per workspace
      operationId: isDefaultTagsPerWorkspace
      tags:
        - worker
      responses:
        '200':
          description: is the default tags per workspace
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/scripts/archive/p/{path}:
    post:
      summary: archive script by path
      operationId: archiveScriptByPath
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: script archived
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/scripts/archive/h/{hash}:
    post:
      summary: archive script by hash
      operationId: archiveScriptByHash
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: hash
          in: path
          required: true
          schema: &ref_53
            type: string
      responses:
        '200':
          description: script details
          content:
            application/json:
              schema:
                type: object
                properties: *ref_51
                required: *ref_52
  /w/{workspace}/scripts/delete/h/{hash}:
    post:
      summary: delete script by hash (erase content but keep hash, require admin)
      operationId: deleteScriptByHash
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: hash
          in: path
          required: true
          schema: *ref_53
      responses:
        '200':
          description: script details
          content:
            application/json:
              schema:
                type: object
                properties: *ref_51
                required: *ref_52
  /w/{workspace}/scripts/delete/p/{path}:
    post:
      summary: delete script at a given path (require admin)
      operationId: deleteScriptByPath
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
        - name: keep_captures
          description: keep captures
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: script path
          content:
            application/json:
              schema:
                type: string
  /w/{workspace}/scripts/get/p/{path}:
    get:
      summary: get script by path
      operationId: getScriptByPath
      x-mcp-tool: true
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
        - name: with_starred_info
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: script details
          content:
            application/json:
              schema:
                type: object
                properties: *ref_51
                required: *ref_52
  /w/{workspace}/scripts/get_triggers_count/{path}:
    get:
      summary: get triggers count of script
      operationId: getTriggersCountOfScript
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: triggers count
          content:
            application/json:
              schema:
                type: object
                properties: &ref_73
                  primary_schedule:
                    type: object
                    properties:
                      schedule:
                        type: string
                  schedule_count:
                    type: number
                  http_routes_count:
                    type: number
                  webhook_count:
                    type: number
                  email_count:
                    type: number
                  websocket_count:
                    type: number
                  postgres_count:
                    type: number
                  kafka_count:
                    type: number
                  nats_count:
                    type: number
                  mqtt_count:
                    type: number
                  gcp_count:
                    type: number
                  sqs_count:
                    type: number
  /w/{workspace}/scripts/list_tokens/{path}:
    get:
      summary: get tokens with script scope
      operationId: listTokensOfScript
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: tokens list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: *ref_54
                  required: *ref_55
  /w/{workspace}/scripts/get/draft/{path}:
    get:
      summary: get script by path with draft
      operationId: getScriptByPathWithDraft
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: script details
          content:
            application/json:
              schema:
                allOf: &ref_243
                  - type: object
                    properties: *ref_56
                    required: *ref_57
                  - type: object
                    properties:
                      draft:
                        type: object
                        properties: *ref_56
                        required: *ref_57
                      hash:
                        type: string
                    required:
                      - hash
  /w/{workspace}/scripts/history/p/{path}:
    get:
      summary: get history of a script by path
      operationId: getScriptHistoryByPath
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: script history
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_58
                    script_hash:
                      type: string
                    deployment_msg:
                      type: string
                  required: &ref_59
                    - script_hash
  /w/{workspace}/scripts/list_paths_from_workspace_runnable/{path}:
    get:
      summary: list script paths using provided script as a relative import
      operationId: listScriptPathsFromWorkspaceRunnable
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: list of script paths
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /w/{workspace}/scripts/get_latest_version/{path}:
    get:
      summary: get scripts's latest version (hash)
      operationId: getScriptLatestVersion
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      tags:
        - script
      responses:
        '200':
          description: Script version/hash
          content:
            application/json:
              schema:
                type: object
                properties: *ref_58
                required: *ref_59
  /w/{workspace}/scripts/history_update/h/{hash}/p/{path}:
    post:
      summary: update history of a script
      operationId: updateScriptHistory
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: hash
          in: path
          required: true
          schema: *ref_53
        - name: path
          in: path
          required: true
          schema: *ref_48
      requestBody:
        description: Script deployment message
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                deployment_msg:
                  type: string
      responses:
        '200':
          description: success
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/scripts/raw/p/{path}:
    get:
      summary: raw script by path
      operationId: rawScriptByPath
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: script content
          content:
            text/plain:
              schema:
                type: string
  /scripts_u/tokened_raw/{workspace}/{token}/{path}:
    get:
      summary: >-
        raw script by path with a token (mostly used by lsp to be used with
        import maps to resolve scripts)
      operationId: rawScriptByPathTokened
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: token
          in: path
          required: true
          schema: &ref_207
            type: string
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: script content
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/scripts/exists/p/{path}:
    get:
      summary: exists script by path
      operationId: existsScriptByPath
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: does it exists
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/scripts/get/h/{hash}:
    get:
      summary: get script by hash
      operationId: getScriptByHash
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: hash
          in: path
          required: true
          schema: *ref_53
        - name: with_starred_info
          in: query
          schema:
            type: boolean
        - name: authed
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: script details
          content:
            application/json:
              schema:
                type: object
                properties: *ref_51
                required: *ref_52
  /w/{workspace}/scripts/raw/h/{path}:
    get:
      summary: raw script by hash
      operationId: rawScriptByHash
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: script content
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/scripts/deployment_status/h/{hash}:
    get:
      summary: get script deployment status
      operationId: getScriptDeploymentStatus
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: hash
          in: path
          required: true
          schema: *ref_53
      responses:
        '200':
          description: script details
          content:
            application/json:
              schema:
                type: object
                properties:
                  lock:
                    type: string
                  lock_error_logs:
                    type: string
  /w/{workspace}/jobs/list_selected_job_groups:
    post:
      summary: list selected jobs script/flow schemas grouped by (kind, path)
      operationId: listSelectedJobGroups
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: script args
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
                format: uuid
      responses:
        '200':
          description: result
          content:
            text/plain:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - script
                        - flow
                    script_path:
                      type: string
                    latest_schema:
                      type: object
                    schemas:
                      type: array
                      items:
                        type: object
                        properties:
                          schema:
                            type: object
                          script_hash:
                            type: string
                          job_ids:
                            type: array
                            items:
                              type: string
                        required:
                          - schema
                          - script_hash
                          - job_ids
                  required:
                    - kind
                    - script_path
                    - latest_schema
                    - schemas
  /w/{workspace}/jobs/run/p/{path}:
    post:
      summary: run script by path
      operationId: runScriptByPath
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
        - name: scheduled_for
          description: when to schedule this job (leave empty for immediate run)
          in: query
          schema:
            type: string
            format: date-time
        - name: scheduled_in_secs
          description: schedule the script to execute in the number of seconds starting now
          in: query
          schema:
            type: integer
        - name: skip_preprocessor
          description: skip the preprocessor
          in: query
          schema:
            type: boolean
        - name: parent_job
          description: >-
            The parent job that is at the origin and responsible for the
            execution of this script if any
          in: query
          schema: &ref_60
            type: string
            format: uuid
        - name: tag
          description: Override the tag to use
          in: query
          schema: &ref_62
            type: string
        - name: cache_ttl
          description: >-
            Override the cache time to live (in seconds). Can not be used to
            disable caching, only override with a new cache ttl
          in: query
          schema: &ref_63
            type: string
        - name: job_id
          description: >-
            The job id to assign to the created job. if missing, job is chosen
            randomly using the ULID scheme. If a job id already exists in the
            queue or as a completed job, the request to create one will fail
            (Bad Request)
          in: query
          schema: &ref_61
            type: string
            format: uuid
        - name: invisible_to_owner
          description: make the run invisible to the the script owner (default false)
          in: query
          schema:
            type: boolean
      requestBody:
        description: script args
        required: true
        content:
          application/json:
            schema:
              type: object
              description: The arguments to pass to the script or flow
              additionalProperties: *ref_22
      responses:
        '201':
          description: job created
          content:
            text/plain:
              schema:
                type: string
                format: uuid
  /w/{workspace}/jobs/openai_sync/p/{path}:
    post:
      summary: run script by path in openai format
      operationId: openaiSyncScriptByPath
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
        - name: parent_job
          description: >-
            The parent job that is at the origin and responsible for the
            execution of this script if any
          in: query
          schema: *ref_60
        - name: job_id
          description: >-
            The job id to assign to the created job. if missing, job is chosen
            randomly using the ULID scheme. If a job id already exists in the
            queue or as a completed job, the request to create one will fail
            (Bad Request)
          in: query
          schema: *ref_61
        - name: include_header
          description: >
            List of headers's keys (separated with ',') whove value are added to
            the args

            Header's key lowercased and '-'' replaced to '_' such that
            'Content-Type' becomes the 'content_type' arg key
          in: query
          schema: &ref_64
            type: string
        - name: queue_limit
          description: >
            The maximum size of the queue for which the request would get
            rejected if that job would push it above that limit
          in: query
          schema: &ref_65
            type: string
      requestBody:
        description: script args
        required: true
        content:
          application/json:
            schema:
              type: object
              description: The arguments to pass to the script or flow
              additionalProperties: *ref_22
      responses:
        '200':
          description: job result
          content:
            application/json:
              schema: {}
  /w/{workspace}/jobs/run_wait_result/p/{path}:
    post:
      summary: run script by path
      operationId: runWaitResultScriptByPath
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
        - name: parent_job
          description: >-
            The parent job that is at the origin and responsible for the
            execution of this script if any
          in: query
          schema: *ref_60
        - name: tag
          description: Override the tag to use
          in: query
          schema: *ref_62
        - name: cache_ttl
          description: >-
            Override the cache time to live (in seconds). Can not be used to
            disable caching, only override with a new cache ttl
          in: query
          schema: *ref_63
        - name: job_id
          description: >-
            The job id to assign to the created job. if missing, job is chosen
            randomly using the ULID scheme. If a job id already exists in the
            queue or as a completed job, the request to create one will fail
            (Bad Request)
          in: query
          schema: *ref_61
        - name: include_header
          description: >
            List of headers's keys (separated with ',') whove value are added to
            the args

            Header's key lowercased and '-'' replaced to '_' such that
            'Content-Type' becomes the 'content_type' arg key
          in: query
          schema: *ref_64
        - name: queue_limit
          description: >
            The maximum size of the queue for which the request would get
            rejected if that job would push it above that limit
          in: query
          schema: *ref_65
      requestBody:
        description: script args
        required: true
        content:
          application/json:
            schema:
              type: object
              description: The arguments to pass to the script or flow
              additionalProperties: *ref_22
      responses:
        '200':
          description: job result
          content:
            application/json:
              schema: {}
    get:
      summary: run script by path with get
      operationId: runWaitResultScriptByPathGet
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
        - name: parent_job
          description: >-
            The parent job that is at the origin and responsible for the
            execution of this script if any
          in: query
          schema: *ref_60
        - name: tag
          description: Override the tag to use
          in: query
          schema: *ref_62
        - name: cache_ttl
          description: >-
            Override the cache time to live (in seconds). Can not be used to
            disable caching, only override with a new cache ttl
          in: query
          schema: *ref_63
        - name: job_id
          description: >-
            The job id to assign to the created job. if missing, job is chosen
            randomly using the ULID scheme. If a job id already exists in the
            queue or as a completed job, the request to create one will fail
            (Bad Request)
          in: query
          schema: *ref_61
        - name: include_header
          description: >
            List of headers's keys (separated with ',') whove value are added to
            the args

            Header's key lowercased and '-'' replaced to '_' such that
            'Content-Type' becomes the 'content_type' arg key
          in: query
          schema: *ref_64
        - name: queue_limit
          description: >
            The maximum size of the queue for which the request would get
            rejected if that job would push it above that limit
          in: query
          schema: *ref_65
        - name: payload
          description: >
            The base64 encoded payload that has been encoded as a JSON. e.g how
            to encode such payload encodeURIComponent

            `encodeURIComponent(btoa(JSON.stringify({a: 2})))`
          in: query
          schema: &ref_126
            type: string
      responses:
        '200':
          description: job result
          content:
            application/json:
              schema: {}
  /w/{workspace}/jobs/openai_sync/f/{path}:
    post:
      summary: run flow by path and wait until completion in openai format
      operationId: openaiSyncFlowByPath
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
        - name: include_header
          description: >
            List of headers's keys (separated with ',') whove value are added to
            the args

            Header's key lowercased and '-'' replaced to '_' such that
            'Content-Type' becomes the 'content_type' arg key
          in: query
          schema: *ref_64
        - name: queue_limit
          description: >
            The maximum size of the queue for which the request would get
            rejected if that job would push it above that limit
          in: query
          schema: *ref_65
        - name: job_id
          description: >-
            The job id to assign to the created job. if missing, job is chosen
            randomly using the ULID scheme. If a job id already exists in the
            queue or as a completed job, the request to create one will fail
            (Bad Request)
          in: query
          schema: *ref_61
      requestBody:
        description: script args
        required: true
        content:
          application/json:
            schema:
              type: object
              description: The arguments to pass to the script or flow
              additionalProperties: *ref_22
      responses:
        '200':
          description: job result
          content:
            application/json:
              schema: {}
  /w/{workspace}/jobs/run_wait_result/f/{path}:
    post:
      summary: run flow by path and wait until completion
      operationId: runWaitResultFlowByPath
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
        - name: include_header
          description: >
            List of headers's keys (separated with ',') whove value are added to
            the args

            Header's key lowercased and '-'' replaced to '_' such that
            'Content-Type' becomes the 'content_type' arg key
          in: query
          schema: *ref_64
        - name: queue_limit
          description: >
            The maximum size of the queue for which the request would get
            rejected if that job would push it above that limit
          in: query
          schema: *ref_65
        - name: job_id
          description: >-
            The job id to assign to the created job. if missing, job is chosen
            randomly using the ULID scheme. If a job id already exists in the
            queue or as a completed job, the request to create one will fail
            (Bad Request)
          in: query
          schema: *ref_61
      requestBody:
        description: script args
        required: true
        content:
          application/json:
            schema:
              type: object
              description: The arguments to pass to the script or flow
              additionalProperties: *ref_22
      responses:
        '200':
          description: job result
          content:
            application/json:
              schema: {}
  /w/{workspace}/jobs/result_by_id/{flow_job_id}/{node_id}:
    get:
      summary: get job result by id
      operationId: resultById
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: flow_job_id
          in: path
          required: true
          schema:
            type: string
        - name: node_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: job result
          content:
            application/json:
              schema: {}
  /w/{workspace}/flows/list_paths:
    get:
      summary: list all flow paths
      operationId: listFlowPaths
      tags:
        - flow
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: list of flow paths
          content:
            text/plain:
              schema:
                type: array
                items:
                  type: string
  /w/{workspace}/flows/list_search:
    get:
      summary: list flows for search
      operationId: listSearchFlow
      tags:
        - flow
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: flow list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    path:
                      type: string
                    value: {}
                  required:
                    - path
                    - value
  /w/{workspace}/flows/list:
    get:
      summary: list all flows
      operationId: listFlows
      x-mcp-tool: true
      tags:
        - flow
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: order_desc
          description: order by desc order (default true)
          in: query
          schema: *ref_66
        - name: created_by
          description: mask to filter exact matching user creator
          in: query
          schema: *ref_67
        - name: path_start
          description: mask to filter matching starting path
          in: query
          schema:
            type: string
        - name: path_exact
          description: mask to filter exact matching path
          in: query
          schema:
            type: string
        - name: show_archived
          description: >
            (default false)

            show only the archived files.

            when multiple archived hash share the same path, only the ones with
            the latest create_at

            are displayed.
          in: query
          schema:
            type: boolean
        - name: starred_only
          description: |
            (default false)
            show only the starred items
          in: query
          schema:
            type: boolean
        - name: include_draft_only
          description: |
            (default false)
            include items that have no deployed version
          in: query
          schema:
            type: boolean
        - name: with_deployment_msg
          description: |
            (default false)
            include deployment message
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: All flow
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf:
                    - allOf: &ref_72
                        - type: object
                          properties: *ref_68
                          required: *ref_69
                        - type: object
                          properties: &ref_330
                            workspace_id:
                              type: string
                            path:
                              type: string
                            edited_by:
                              type: string
                            edited_at:
                              type: string
                              format: date-time
                            archived:
                              type: boolean
                            extra_perms:
                              type: object
                              additionalProperties: &ref_329
                                type: boolean
                            starred:
                              type: boolean
                            draft_only:
                              type: boolean
                            tag:
                              type: string
                            ws_error_handler_muted:
                              type: boolean
                            priority:
                              type: integer
                            dedicated_worker:
                              type: boolean
                            timeout:
                              type: number
                            visible_to_runner_only:
                              type: boolean
                            on_behalf_of_email:
                              type: string
                          required: &ref_331
                            - path
                            - edited_by
                            - edited_at
                            - archived
                            - extra_perms
                        - type: object
                          properties:
                            lock_error_logs:
                              type: string
                    - type: object
                      properties:
                        has_draft:
                          type: boolean
                        draft_only:
                          type: boolean
  /w/{workspace}/flows/history/p/{path}:
    get:
      summary: get flow history by path
      operationId: getFlowHistory
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      tags:
        - flow
      responses:
        '200':
          description: Flow history
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_70
                    id:
                      type: integer
                    created_at:
                      type: string
                      format: date-time
                    deployment_msg:
                      type: string
                  required: &ref_71
                    - id
                    - created_at
  /w/{workspace}/flows/get_latest_version/{path}:
    get:
      summary: get flow's latest version
      operationId: getFlowLatestVersion
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      tags:
        - flow
      responses:
        '200':
          description: Flow version
          content:
            application/json:
              schema:
                type: object
                properties: *ref_70
                required: *ref_71
  /w/{workspace}/flows/list_paths_from_workspace_runnable/{runnable_kind}/{path}:
    get:
      summary: list flow paths from workspace runnable
      operationId: listFlowPathsFromWorkspaceRunnable
      tags:
        - flow
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: runnable_kind
          in: path
          required: true
          schema: &ref_80
            type: string
            enum:
              - script
              - flow
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: list of flow paths
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /w/{workspace}/flows/get/v/{version}/p/{path}:
    get:
      summary: get flow version
      operationId: getFlowVersion
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: version
          in: path
          required: true
          schema:
            type: number
        - name: path
          in: path
          required: true
          schema: *ref_48
      tags:
        - flow
      responses:
        '200':
          description: flow details
          content:
            application/json:
              schema:
                allOf: *ref_72
  /w/{workspace}/flows/history_update/v/{version}/p/{path}:
    post:
      summary: update flow history
      operationId: updateFlowHistory
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: version
          in: path
          required: true
          schema:
            type: number
        - name: path
          in: path
          required: true
          schema: *ref_48
      requestBody:
        description: Flow deployment message
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                deployment_msg:
                  type: string
              required:
                - deployment_msg
      tags:
        - flow
      responses:
        '200':
          description: success
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/flows/get/{path}:
    get:
      summary: get flow by path
      operationId: getFlowByPath
      x-mcp-tool: true
      tags:
        - flow
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
        - name: with_starred_info
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: flow details
          content:
            application/json:
              schema:
                allOf: *ref_72
  /w/{workspace}/flows/deployment_status/p/{path}:
    get:
      summary: get flow deployment status
      operationId: getFlowDeploymentStatus
      tags:
        - flow
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: flow status
          content:
            application/json:
              schema:
                type: object
                properties:
                  lock_error_logs:
                    type: string
  /w/{workspace}/flows/get_triggers_count/{path}:
    get:
      summary: get triggers count of flow
      operationId: getTriggersCountOfFlow
      tags:
        - flow
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: triggers count
          content:
            application/json:
              schema:
                type: object
                properties: *ref_73
  /w/{workspace}/flows/list_tokens/{path}:
    get:
      summary: get tokens with flow scope
      operationId: listTokensOfFlow
      tags:
        - flow
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: tokens list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: *ref_54
                  required: *ref_55
  /w/{workspace}/flows/toggle_workspace_error_handler/{path}:
    post:
      summary: Toggle ON and OFF the workspace error handler for a given flow
      operationId: toggleWorkspaceErrorHandlerForFlow
      tags:
        - flow
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      requestBody:
        description: Workspace error handler enabled
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                muted:
                  type: boolean
      responses:
        '200':
          description: error handler toggled
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/flows/get/draft/{path}:
    get:
      summary: get flow by path with draft
      operationId: getFlowByPathWithDraft
      tags:
        - flow
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: flow details with draft
          content:
            application/json:
              schema:
                allOf:
                  - allOf: *ref_72
                  - type: object
                    properties:
                      draft:
                        allOf: *ref_72
  /w/{workspace}/flows/exists/{path}:
    get:
      summary: exists flow by path
      operationId: existsFlowByPath
      tags:
        - flow
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: flow details
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/flows/create:
    post:
      summary: create flow
      operationId: createFlow
      tags:
        - flow
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: Partially filled flow
        required: true
        content:
          application/json:
            schema:
              allOf:
                - allOf: &ref_74
                    - type: object
                      properties: *ref_68
                      required: *ref_69
                    - type: object
                      properties:
                        path:
                          type: string
                        tag:
                          type: string
                        ws_error_handler_muted:
                          type: boolean
                        priority:
                          type: integer
                        dedicated_worker:
                          type: boolean
                        timeout:
                          type: number
                        visible_to_runner_only:
                          type: boolean
                        on_behalf_of_email:
                          type: string
                      required:
                        - path
                - type: object
                  properties:
                    draft_only:
                      type: boolean
                    deployment_message:
                      type: string
      responses:
        '201':
          description: flow created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/flows/update/{path}:
    post:
      summary: update flow
      operationId: updateFlow
      tags:
        - flow
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      requestBody:
        description: Partially filled flow
        required: true
        content:
          application/json:
            schema:
              allOf:
                - allOf: *ref_74
                - type: object
                  properties:
                    deployment_message:
                      type: string
      responses:
        '200':
          description: flow updated
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/flows/archive/{path}:
    post:
      summary: archive flow by path
      operationId: archiveFlowByPath
      tags:
        - flow
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      requestBody:
        description: archiveFlow
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                archived:
                  type: boolean
      responses:
        '200':
          description: flow archived
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/flows/delete/{path}:
    delete:
      summary: delete flow by path
      operationId: deleteFlowByPath
      tags:
        - flow
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
        - name: keep_captures
          description: keep captures
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: flow delete
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/raw_apps/list:
    get:
      summary: list all raw apps
      operationId: listRawApps
      tags:
        - raw_app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: order_desc
          description: order by desc order (default true)
          in: query
          schema: *ref_66
        - name: created_by
          description: mask to filter exact matching user creator
          in: query
          schema: *ref_67
        - name: path_start
          description: mask to filter matching starting path
          in: query
          schema:
            type: string
        - name: path_exact
          description: mask to filter exact matching path
          in: query
          schema:
            type: string
        - name: starred_only
          description: |
            (default false)
            show only the starred items
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: All raw apps
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_341
                    workspace_id:
                      type: string
                    path:
                      type: string
                    summary:
                      type: string
                    extra_perms:
                      type: object
                      additionalProperties:
                        type: boolean
                    starred:
                      type: boolean
                    version:
                      type: number
                    edited_at:
                      type: string
                      format: date-time
                  required: &ref_342
                    - workspace_id
                    - path
                    - summary
                    - extra_perms
                    - version
                    - edited_at
  /w/{workspace}/raw_apps/exists/{path}:
    get:
      summary: does an app exisst at path
      operationId: existsRawApp
      tags:
        - raw_app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: app exists
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/apps/get_data/{version}/{path}:
    get:
      summary: get app by path
      operationId: getRawAppData
      tags:
        - raw_app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: version
          in: path
          required: true
          schema: &ref_206
            type: number
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: app details
          content:
            text/javascript:
              schema:
                type: string
  /w/{workspace}/apps/list_search:
    get:
      summary: list apps for search
      operationId: listSearchApp
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: app list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    path:
                      type: string
                    value: {}
                  required:
                    - path
                    - value
  /w/{workspace}/apps/list:
    get:
      summary: list all apps
      operationId: listApps
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: order_desc
          description: order by desc order (default true)
          in: query
          schema: *ref_66
        - name: created_by
          description: mask to filter exact matching user creator
          in: query
          schema: *ref_67
        - name: path_start
          description: mask to filter matching starting path
          in: query
          schema:
            type: string
        - name: path_exact
          description: mask to filter exact matching path
          in: query
          schema:
            type: string
        - name: starred_only
          description: |
            (default false)
            show only the starred items
          in: query
          schema:
            type: boolean
        - name: include_draft_only
          description: |
            (default false)
            include items that have no deployed version
          in: query
          schema:
            type: boolean
        - name: with_deployment_msg
          description: |
            (default false)
            include deployment message
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: All apps
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_335
                    id:
                      type: integer
                    workspace_id:
                      type: string
                    path:
                      type: string
                    summary:
                      type: string
                    version:
                      type: integer
                    extra_perms:
                      type: object
                      additionalProperties:
                        type: boolean
                    starred:
                      type: boolean
                    edited_at:
                      type: string
                      format: date-time
                    execution_mode:
                      type: string
                      enum:
                        - viewer
                        - publisher
                        - anonymous
                    raw_app:
                      type: boolean
                  required: &ref_336
                    - id
                    - workspace_id
                    - path
                    - summary
                    - version
                    - extra_perms
                    - edited_at
                    - execution_mode
  /w/{workspace}/apps/create:
    post:
      summary: create app
      operationId: createApp
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: new app
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                path:
                  type: string
                value: {}
                summary:
                  type: string
                policy:
                  type: object
                  properties: *ref_75
                draft_only:
                  type: boolean
                deployment_message:
                  type: string
                custom_path:
                  type: string
              required:
                - path
                - value
                - summary
                - policy
      responses:
        '201':
          description: app created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/apps/create_raw:
    post:
      summary: create app raw
      operationId: createAppRaw
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: new app
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                app:
                  type: object
                  properties:
                    path:
                      type: string
                    value: {}
                    summary:
                      type: string
                    policy:
                      type: object
                      properties: *ref_75
                    draft_only:
                      type: boolean
                    deployment_message:
                      type: string
                    custom_path:
                      type: string
                  required:
                    - path
                    - value
                    - summary
                    - policy
                js:
                  type: string
                css:
                  type: string
      responses:
        '201':
          description: app created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/apps/exists/{path}:
    get:
      summary: does an app exisst at path
      operationId: existsApp
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: app exists
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/apps/get/p/{path}:
    get:
      summary: get app by path
      operationId: getAppByPath
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
        - name: with_starred_info
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: app details
          content:
            application/json:
              schema:
                type: object
                properties: *ref_76
                required: *ref_77
  /w/{workspace}/apps/get/lite/{path}:
    get:
      summary: get app lite by path
      operationId: getAppLiteByPath
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: app lite details
          content:
            application/json:
              schema:
                type: object
                properties: *ref_76
                required: *ref_77
  /w/{workspace}/apps/get/draft/{path}:
    get:
      summary: get app by path with draft
      operationId: getAppByPathWithDraft
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: app details with draft
          content:
            application/json:
              schema:
                allOf: &ref_343
                  - type: object
                    properties: *ref_76
                    required: *ref_77
                  - type: object
                    properties:
                      draft_only:
                        type: boolean
                      draft: {}
  /w/{workspace}/apps/history/p/{path}:
    get:
      summary: get app history by path
      operationId: getAppHistoryByPath
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: app history
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_78
                    version:
                      type: integer
                    deployment_msg:
                      type: string
                  required: &ref_79
                    - version
  /w/{workspace}/apps/get_latest_version/{path}:
    get:
      summary: get apps's latest version
      operationId: getAppLatestVersion
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      tags:
        - app
      responses:
        '200':
          description: App version
          content:
            application/json:
              schema:
                type: object
                properties: *ref_78
                required: *ref_79
  /w/{workspace}/apps/list_paths_from_workspace_runnable/{runnable_kind}/{path}:
    get:
      summary: list app paths from workspace runnable
      operationId: listAppPathsFromWorkspaceRunnable
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: runnable_kind
          in: path
          required: true
          schema: *ref_80
        - name: path
          in: path
          required: true
          schema: *ref_48
      responses:
        '200':
          description: list of app paths
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /w/{workspace}/apps/history_update/a/{id}/v/{version}:
    post:
      summary: update app history
      operationId: updateAppHistory
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_41
        - name: version
          in: path
          required: true
          schema: &ref_208
            type: integer
      requestBody:
        description: App deployment message
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                deployment_msg:
                  type: string
      responses:
        '200':
          description: success
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/apps_u/public_app/{path}:
    get:
      summary: get public app by secret
      operationId: getPublicAppBySecret
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: app details
          content:
            application/json:
              schema:
                type: object
                properties: *ref_76
                required: *ref_77
  /w/{workspace}/apps_u/public_resource/{path}:
    get:
      summary: get public resource
      operationId: get public resource
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: resource value
          content:
            application/json:
              schema: {}
  /w/{workspace}/apps/secret_of/{path}:
    get:
      summary: get public secret of app
      operationId: getPublicSecretOfApp
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: app secret
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/apps/get/v/{id}:
    get:
      summary: get app by version
      operationId: getAppByVersion
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_41
      responses:
        '200':
          description: app details
          content:
            application/json:
              schema:
                type: object
                properties: *ref_76
                required: *ref_77
  /w/{workspace}/raw_apps/create:
    post:
      summary: create raw app
      operationId: createRawApp
      tags:
        - raw_app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: new raw app
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                path:
                  type: string
                value:
                  type: string
                summary:
                  type: string
              required:
                - path
                - value
                - summary
      responses:
        '201':
          description: raw app created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/raw_apps/update/{path}:
    post:
      summary: update app
      operationId: updateRawApp
      tags:
        - raw_app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      requestBody:
        description: updateraw  app
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                path:
                  type: string
                summary:
                  type: string
                value:
                  type: string
      responses:
        '200':
          description: app updated
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/raw_apps/delete/{path}:
    delete:
      summary: delete raw app
      operationId: deleteRawApp
      tags:
        - raw_app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: app deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/apps/delete/{path}:
    delete:
      summary: delete app
      operationId: deleteApp
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: app deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/apps/update/{path}:
    post:
      summary: update app
      operationId: updateApp
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      requestBody:
        description: update app
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                path:
                  type: string
                summary:
                  type: string
                value: {}
                policy:
                  type: object
                  properties: *ref_75
                deployment_message:
                  type: string
                custom_path:
                  type: string
      responses:
        '200':
          description: app updated
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/apps/update_raw/{path}:
    post:
      summary: update app
      operationId: updateAppRaw
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      requestBody:
        description: update app
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                app:
                  type: object
                  properties:
                    path:
                      type: string
                    summary:
                      type: string
                    value: {}
                    policy:
                      type: object
                      properties: *ref_75
                    deployment_message:
                      type: string
                    custom_path:
                      type: string
                js:
                  type: string
                css:
                  type: string
      responses:
        '200':
          description: app updated
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/apps/custom_path_exists/{custom_path}:
    get:
      summary: check if custom path exists
      operationId: customPathExists
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: custom_path
          in: path
          required: true
          schema: *ref_81
      responses:
        '200':
          description: custom path exists
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/apps/sign_s3_objects:
    post:
      summary: sign s3 objects, to be used by anonymous users in public apps
      operationId: signS3Objects
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: s3 objects to sign
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                s3_objects:
                  type: array
                  items:
                    type: object
                    properties: &ref_82
                      s3:
                        type: string
                      filename:
                        type: string
                      storage:
                        type: string
                      presigned:
                        type: string
                    required: &ref_83
                      - s3
              required:
                - s3_objects
      responses:
        '200':
          description: signed s3 objects
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: *ref_82
                  required: *ref_83
  /w/{workspace}/apps_u/execute_component/{path}:
    post:
      summary: executeComponent
      operationId: executeComponent
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
      requestBody:
        description: update app
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                component:
                  type: string
                path:
                  type: string
                version:
                  type: integer
                args: {}
                raw_code:
                  type: object
                  properties:
                    content:
                      type: string
                    language:
                      type: string
                    path:
                      type: string
                    lock:
                      type: string
                    cache_ttl:
                      type: integer
                  required:
                    - content
                    - language
                id:
                  type: integer
                force_viewer_static_fields:
                  type: object
                force_viewer_one_of_fields:
                  type: object
                force_viewer_allow_user_resources:
                  type: array
                  items:
                    type: string
              required:
                - args
                - component
      responses:
        '200':
          description: job uuid
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/apps_u/upload_s3_file/{path}:
    post:
      summary: upload s3 file from app
      operationId: uploadS3FileFromApp
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
        - name: file_key
          in: query
          required: false
          schema:
            type: string
        - name: file_extension
          in: query
          required: false
          schema:
            type: string
        - name: s3_resource_path
          in: query
          required: false
          schema:
            type: string
        - name: resource_type
          in: query
          required: false
          schema:
            type: string
        - name: storage
          in: query
          schema:
            type: string
        - name: content_type
          in: query
          schema:
            type: string
        - name: content_disposition
          in: query
          schema:
            type: string
      requestBody:
        description: File content
        required: true
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: file uploaded
          content:
            application/json:
              schema:
                type: object
                properties:
                  file_key:
                    type: string
                  delete_token:
                    type: string
                required:
                  - file_key
                  - delete_token
  /w/{workspace}/apps_u/delete_s3_file:
    delete:
      summary: delete s3 file from app
      operationId: deleteS3FileFromApp
      tags:
        - app
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: delete_token
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: file deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/jobs/run/f/{path}:
    post:
      summary: run flow by path
      operationId: runFlowByPath
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_48
        - name: scheduled_for
          description: when to schedule this job (leave empty for immediate run)
          in: query
          schema:
            type: string
            format: date-time
        - name: scheduled_in_secs
          description: schedule the script to execute in the number of seconds starting now
          in: query
          schema:
            type: integer
        - name: skip_preprocessor
          description: skip the preprocessor
          in: query
          schema:
            type: boolean
        - name: parent_job
          description: >-
            The parent job that is at the origin and responsible for the
            execution of this script if any
          in: query
          schema: *ref_60
        - name: tag
          description: Override the tag to use
          in: query
          schema: *ref_62
        - name: job_id
          description: >-
            The job id to assign to the created job. if missing, job is chosen
            randomly using the ULID scheme. If a job id already exists in the
            queue or as a completed job, the request to create one will fail
            (Bad Request)
          in: query
          schema: *ref_61
        - name: include_header
          description: >
            List of headers's keys (separated with ',') whove value are added to
            the args

            Header's key lowercased and '-'' replaced to '_' such that
            'Content-Type' becomes the 'content_type' arg key
          in: query
          schema: *ref_64
        - name: invisible_to_owner
          description: make the run invisible to the the flow owner (default false)
          in: query
          schema:
            type: boolean
      requestBody:
        description: flow args
        required: true
        content:
          application/json:
            schema:
              type: object
              description: The arguments to pass to the script or flow
              additionalProperties: *ref_22
      responses:
        '201':
          description: job created
          content:
            text/plain:
              schema:
                type: string
                format: uuid
  /w/{workspace}/jobs/run/batch_rerun_jobs:
    post:
      summary: re-run multiple jobs
      operationId: batchReRunJobs
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: list of job ids to re run and arg tranforms
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - job_ids
                - script_options_by_path
                - flow_options_by_path
              properties:
                job_ids:
                  type: array
                  items:
                    type: string
                script_options_by_path:
                  type: object
                  additionalProperties:
                    type: object
                    properties:
                      input_transforms:
                        type: object
                        additionalProperties:
                          oneOf: &ref_88
                            - type: object
                              properties: *ref_84
                              required: *ref_85
                            - type: object
                              properties: *ref_86
                              required: *ref_87
                          discriminator: &ref_89
                            propertyName: type
                            mapping:
                              static: '#/components/schemas/schemas-StaticTransform'
                              javascript: '#/components/schemas/schemas-JavascriptTransform'
                      use_latest_version:
                        type: boolean
                flow_options_by_path:
                  type: object
                  additionalProperties:
                    type: object
                    properties:
                      input_transforms:
                        type: object
                        additionalProperties:
                          oneOf: *ref_88
                          discriminator: *ref_89
                      use_latest_version:
                        type: boolean
      responses:
        '201':
          description: >-
            stream of created job uuids separated by \n. Lines may start with
            'Error:'
          content:
            text/event-stream:
              schema:
                type: string
  /w/{workspace}/jobs/restart/f/{id}/from/{step_id}/{branch_or_iteration_n}:
    post:
      summary: restart a completed flow at a given step
      operationId: restartFlowAtStep
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: &ref_123
            type: string
            format: uuid
        - name: step_id
          description: step id to restart the flow from
          required: true
          in: path
          schema:
            type: string
        - name: branch_or_iteration_n
          description: >-
            for branchall or loop, the iteration at which the flow should
            restart
          required: true
          in: path
          schema:
            type: integer
        - name: scheduled_for
          description: when to schedule this job (leave empty for immediate run)
          in: query
          schema:
            type: string
            format: date-time
        - name: scheduled_in_secs
          description: schedule the script to execute in the number of seconds starting now
          in: query
          schema:
            type: integer
        - name: parent_job
          description: >-
            The parent job that is at the origin and responsible for the
            execution of this script if any
          in: query
          schema: *ref_60
        - name: tag
          description: Override the tag to use
          in: query
          schema: *ref_62
        - name: job_id
          description: >-
            The job id to assign to the created job. if missing, job is chosen
            randomly using the ULID scheme. If a job id already exists in the
            queue or as a completed job, the request to create one will fail
            (Bad Request)
          in: query
          schema: *ref_61
        - name: include_header
          description: >
            List of headers's keys (separated with ',') whove value are added to
            the args

            Header's key lowercased and '-'' replaced to '_' such that
            'Content-Type' becomes the 'content_type' arg key
          in: query
          schema: *ref_64
        - name: invisible_to_owner
          description: make the run invisible to the the flow owner (default false)
          in: query
          schema:
            type: boolean
      requestBody:
        description: flow args
        required: true
        content:
          application/json:
            schema:
              type: object
              description: The arguments to pass to the script or flow
              additionalProperties: *ref_22
      responses:
        '201':
          description: job created
          content:
            text/plain:
              schema:
                type: string
                format: uuid
  /w/{workspace}/jobs/run/h/{hash}:
    post:
      summary: run script by hash
      operationId: runScriptByHash
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: hash
          in: path
          required: true
          schema: *ref_53
        - name: scheduled_for
          description: when to schedule this job (leave empty for immediate run)
          in: query
          schema:
            type: string
            format: date-time
        - name: scheduled_in_secs
          description: schedule the script to execute in the number of seconds starting now
          in: query
          schema:
            type: integer
        - name: skip_preprocessor
          description: skip the preprocessor
          in: query
          schema:
            type: boolean
        - name: parent_job
          description: >-
            The parent job that is at the origin and responsible for the
            execution of this script if any
          in: query
          schema: *ref_60
        - name: tag
          description: Override the tag to use
          in: query
          schema: *ref_62
        - name: cache_ttl
          description: >-
            Override the cache time to live (in seconds). Can not be used to
            disable caching, only override with a new cache ttl
          in: query
          schema: *ref_63
        - name: job_id
          description: >-
            The job id to assign to the created job. if missing, job is chosen
            randomly using the ULID scheme. If a job id already exists in the
            queue or as a completed job, the request to create one will fail
            (Bad Request)
          in: query
          schema: *ref_61
        - name: include_header
          description: >
            List of headers's keys (separated with ',') whove value are added to
            the args

            Header's key lowercased and '-'' replaced to '_' such that
            'Content-Type' becomes the 'content_type' arg key
          in: query
          schema: *ref_64
        - name: invisible_to_owner
          description: make the run invisible to the the script owner (default false)
          in: query
          schema:
            type: boolean
      requestBody:
        description: Partially filled args
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: job created
          content:
            text/plain:
              schema:
                type: string
                format: uuid
  /w/{workspace}/jobs/run/preview:
    post:
      summary: run script preview
      operationId: runScriptPreview
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: include_header
          description: >
            List of headers's keys (separated with ',') whove value are added to
            the args

            Header's key lowercased and '-'' replaced to '_' such that
            'Content-Type' becomes the 'content_type' arg key
          in: query
          schema: *ref_64
        - name: invisible_to_owner
          description: make the run invisible to the the script owner (default false)
          in: query
          schema:
            type: boolean
        - name: job_id
          description: >-
            The job id to assign to the created job. if missing, job is chosen
            randomly using the ULID scheme. If a job id already exists in the
            queue or as a completed job, the request to create one will fail
            (Bad Request)
          in: query
          schema: *ref_61
      requestBody:
        description: preview
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_262
                content:
                  type: string
                path:
                  type: string
                script_hash:
                  type: string
                args:
                  type: object
                  description: The arguments to pass to the script or flow
                  additionalProperties: *ref_22
                language:
                  type: string
                  enum: *ref_50
                tag:
                  type: string
                kind:
                  type: string
                  enum:
                    - code
                    - identity
                    - http
                dedicated_worker:
                  type: boolean
                lock:
                  type: string
              required: &ref_263
                - args
      responses:
        '201':
          description: job created
          content:
            text/plain:
              schema:
                type: string
                format: uuid
  /w/{workspace}/jobs/workflow_as_code/{job_id}/{entrypoint}:
    post:
      summary: run code-workflow task
      operationId: runCodeWorkflowTask
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: job_id
          in: path
          required: true
          schema:
            type: string
        - name: entrypoint
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: preview
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_264
                args:
                  type: object
                  description: The arguments to pass to the script or flow
                  additionalProperties: *ref_22
              required: &ref_265
                - args
      responses:
        '201':
          description: job created
          content:
            text/plain:
              schema:
                type: string
                format: uuid
  /w/{workspace}/jobs/run/dependencies:
    post:
      summary: run a one-off dependencies job
      operationId: runRawScriptDependencies
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: raw script content
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                raw_scripts:
                  type: array
                  items:
                    type: object
                    properties: &ref_357
                      raw_code:
                        type: string
                      path:
                        type: string
                      language:
                        type: string
                        enum: *ref_50
                    required: &ref_358
                      - raw_code
                      - path
                      - language
                entrypoint:
                  type: string
              required:
                - entrypoint
                - raw_scripts
      responses:
        '201':
          description: dependency job result
          content:
            application/json:
              schema:
                type: object
                properties:
                  lock:
                    type: string
                required:
                  - lock
  /w/{workspace}/jobs/run/preview_flow:
    post:
      summary: run flow preview
      operationId: runFlowPreview
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: include_header
          description: >
            List of headers's keys (separated with ',') whove value are added to
            the args

            Header's key lowercased and '-'' replaced to '_' such that
            'Content-Type' becomes the 'content_type' arg key
          in: query
          schema: *ref_64
        - name: invisible_to_owner
          description: make the run invisible to the the script owner (default false)
          in: query
          schema:
            type: boolean
        - name: job_id
          description: >-
            The job id to assign to the created job. if missing, job is chosen
            randomly using the ULID scheme. If a job id already exists in the
            queue or as a completed job, the request to create one will fail
            (Bad Request)
          in: query
          schema: *ref_61
      requestBody:
        description: preview
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_332
                value:
                  type: object
                  properties: &ref_92
                    modules:
                      type: array
                      items:
                        type: object
                        properties: *ref_44
                        required: *ref_45
                    failure_module:
                      type: object
                      properties: *ref_44
                      required: *ref_45
                    preprocessor_module:
                      type: object
                      properties: *ref_44
                      required: *ref_45
                    same_worker:
                      type: boolean
                    concurrent_limit:
                      type: number
                    concurrency_key:
                      type: string
                    concurrency_time_window_s:
                      type: number
                    skip_expr:
                      type: string
                    cache_ttl:
                      type: number
                    priority:
                      type: number
                    early_return:
                      type: string
                  required: &ref_93
                    - modules
                path:
                  type: string
                args:
                  type: object
                  description: The arguments to pass to the script or flow
                  additionalProperties: *ref_22
                tag:
                  type: string
                restarted_from:
                  type: object
                  properties: &ref_334
                    flow_job_id:
                      type: string
                      format: uuid
                    step_id:
                      type: string
                    branch_or_iteration_n:
                      type: integer
              required: &ref_333
                - value
                - content
                - args
      responses:
        '201':
          description: job created
          content:
            text/plain:
              schema:
                type: string
                format: uuid
  /w/{workspace}/jobs/queue/list:
    get:
      summary: list all queued jobs
      operationId: listQueue
      x-mcp-tool: true
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: order_desc
          description: order by desc order (default true)
          in: query
          schema: *ref_66
        - name: created_by
          description: mask to filter exact matching user creator
          in: query
          schema: *ref_67
        - name: parent_job
          description: >-
            The parent job that is at the origin and responsible for the
            execution of this script if any
          in: query
          schema: *ref_60
        - name: worker
          description: worker this job was ran on
          in: query
          schema: &ref_94
            type: string
        - name: script_path_exact
          description: mask to filter exact matching path
          in: query
          schema: &ref_95
            type: string
        - name: script_path_start
          description: mask to filter matching starting path
          in: query
          schema: &ref_96
            type: string
        - name: schedule_path
          description: mask to filter by schedule path
          in: query
          schema: &ref_97
            type: string
        - name: script_hash
          description: mask to filter exact matching path
          in: query
          schema: &ref_98
            type: string
        - name: started_before
          description: filter on started before (inclusive) timestamp
          in: query
          schema: &ref_99
            type: string
            format: date-time
        - name: started_after
          description: filter on started after (exclusive) timestamp
          in: query
          schema: &ref_100
            type: string
            format: date-time
        - name: success
          description: filter on successful jobs
          in: query
          schema: &ref_108
            type: boolean
        - name: scheduled_for_before_now
          description: filter on jobs scheduled_for before now (hence waitinf for a worker)
          in: query
          schema: &ref_102
            type: boolean
        - name: job_kinds
          description: >-
            filter on job kind (values 'preview', 'script', 'dependencies',
            'flow') separated by,
          in: query
          schema: &ref_103
            type: string
        - name: suspended
          description: filter on suspended jobs
          in: query
          schema: &ref_104
            type: boolean
        - name: running
          description: filter on running jobs
          in: query
          schema: &ref_101
            type: boolean
        - name: args
          description: >-
            filter on jobs containing those args as a json subset (@> in
            postgres)
          in: query
          schema: &ref_105
            type: string
        - name: result
          description: >-
            filter on jobs containing those result as a json subset (@> in
            postgres)
          in: query
          schema: &ref_107
            type: string
        - name: allow_wildcards
          description: allow wildcards (*) in the filter of label, tag, worker
          in: query
          schema: &ref_109
            type: boolean
        - name: tag
          description: filter on jobs with a given tag/worker group
          in: query
          schema: &ref_106
            type: string
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: all_workspaces
          description: >-
            get jobs from all workspaces (only valid if request come from the
            `admins` workspace)
          in: query
          schema:
            type: boolean
        - name: is_not_schedule
          description: is not a scheduled job
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: All queued jobs
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_121
                    workspace_id:
                      type: string
                    id:
                      type: string
                      format: uuid
                    parent_job:
                      type: string
                      format: uuid
                    created_by:
                      type: string
                    created_at:
                      type: string
                      format: date-time
                    started_at:
                      type: string
                      format: date-time
                    scheduled_for:
                      type: string
                      format: date-time
                    running:
                      type: boolean
                    script_path:
                      type: string
                    script_hash:
                      type: string
                    args:
                      type: object
                      description: The arguments to pass to the script or flow
                      additionalProperties: *ref_22
                    logs:
                      type: string
                    raw_code:
                      type: string
                    canceled:
                      type: boolean
                    canceled_by:
                      type: string
                    canceled_reason:
                      type: string
                    last_ping:
                      type: string
                      format: date-time
                    job_kind:
                      type: string
                      enum:
                        - script
                        - preview
                        - dependencies
                        - flowdependencies
                        - appdependencies
                        - flow
                        - flowpreview
                        - script_hub
                        - identity
                        - deploymentcallback
                        - singlescriptflow
                        - flowscript
                        - flownode
                        - appscript
                    schedule_path:
                      type: string
                    permissioned_as:
                      type: string
                      description: >
                        The user (u/userfoo) or group (g/groupfoo) whom

                        the execution of this script will be permissioned_as and
                        by extension its DT_TOKEN.
                    flow_status:
                      type: object
                      properties: &ref_111
                        step:
                          type: integer
                        modules:
                          type: array
                          items:
                            type: object
                            properties: &ref_90
                              type:
                                type: string
                                enum:
                                  - WaitingForPriorSteps
                                  - WaitingForEvents
                                  - WaitingForExecutor
                                  - InProgress
                                  - Success
                                  - Failure
                              id:
                                type: string
                              job:
                                type: string
                                format: uuid
                              count:
                                type: integer
                              progress:
                                type: integer
                              iterator:
                                type: object
                                properties:
                                  index:
                                    type: integer
                                  itered:
                                    type: array
                                    items: {}
                                  args: {}
                              flow_jobs:
                                type: array
                                items:
                                  type: string
                              flow_jobs_success:
                                type: array
                                items:
                                  type: boolean
                              branch_chosen:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - branch
                                      - default
                                  branch:
                                    type: integer
                                required:
                                  - type
                              branchall:
                                type: object
                                properties:
                                  branch:
                                    type: integer
                                  len:
                                    type: integer
                                required:
                                  - branch
                                  - len
                              approvers:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    resume_id:
                                      type: integer
                                    approver:
                                      type: string
                                  required:
                                    - resume_id
                                    - approver
                              failed_retries:
                                type: array
                                items:
                                  type: string
                                  format: uuid
                              skipped:
                                type: boolean
                            required: &ref_91
                              - type
                        user_states:
                          additionalProperties: true
                        preprocessor_module:
                          allOf:
                            - type: object
                              properties: *ref_90
                              required: *ref_91
                        failure_module:
                          allOf:
                            - type: object
                              properties: *ref_90
                              required: *ref_91
                            - type: object
                              properties:
                                parent_module:
                                  type: string
                        retry:
                          type: object
                          properties:
                            fail_count:
                              type: integer
                            failed_jobs:
                              type: array
                              items:
                                type: string
                                format: uuid
                      required: &ref_112
                        - step
                        - modules
                        - failure_module
                    workflow_as_code_status:
                      type: object
                      properties: &ref_113
                        scheduled_for:
                          type: string
                          format: date-time
                        started_at:
                          type: string
                          format: date-time
                        duration_ms:
                          type: number
                        name:
                          type: string
                    raw_flow:
                      type: object
                      properties: *ref_92
                      required: *ref_93
                    is_flow_step:
                      type: boolean
                    language:
                      type: string
                      enum: *ref_50
                    email:
                      type: string
                    visible_to_owner:
                      type: boolean
                    mem_peak:
                      type: integer
                    tag:
                      type: string
                    priority:
                      type: integer
                    self_wait_time_ms:
                      type: number
                    aggregate_wait_time_ms:
                      type: number
                    suspend:
                      type: number
                    preprocessed:
                      type: boolean
                    worker:
                      type: string
                  required: &ref_122
                    - id
                    - running
                    - canceled
                    - job_kind
                    - permissioned_as
                    - is_flow_step
                    - email
                    - visible_to_owner
                    - tag
  /w/{workspace}/jobs/queue/count:
    get:
      summary: get queue count
      operationId: getQueueCount
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: all_workspaces
          description: >-
            get jobs from all workspaces (only valid if request come from the
            `admins` workspace)
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: queue count
          content:
            application/json:
              schema:
                type: object
                properties:
                  database_length:
                    type: integer
                  suspended:
                    type: integer
                required:
                  - database_length
  /w/{workspace}/jobs/completed/count:
    get:
      summary: get completed count
      operationId: getCompletedCount
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: completed count
          content:
            application/json:
              schema:
                type: object
                properties:
                  database_length:
                    type: integer
                required:
                  - database_length
  /w/{workspace}/jobs/completed/count_jobs:
    get:
      summary: count number of completed jobs with filter
      operationId: countCompletedJobs
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: completed_after_s_ago
          in: query
          schema:
            type: integer
        - name: success
          in: query
          schema:
            type: boolean
        - name: tags
          in: query
          schema:
            type: string
        - name: all_workspaces
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: Count of completed jobs
          content:
            application/json:
              schema:
                type: integer
  /w/{workspace}/jobs/list_filtered_uuids:
    get:
      summary: get the ids of all jobs matching the given filters
      operationId: listFilteredJobsUuids
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: created_by
          description: mask to filter exact matching user creator
          in: query
          schema: *ref_67
        - name: label
          description: >-
            mask to filter exact matching job's label (job labels are completed
            jobs with as a result an object containing a string in the array at
            key 'wm_labels')
          in: query
          schema: &ref_110
            type: string
        - name: worker
          description: worker this job was ran on
          in: query
          schema: *ref_94
        - name: parent_job
          description: >-
            The parent job that is at the origin and responsible for the
            execution of this script if any
          in: query
          schema: *ref_60
        - name: script_path_exact
          description: mask to filter exact matching path
          in: query
          schema: *ref_95
        - name: script_path_start
          description: mask to filter matching starting path
          in: query
          schema: *ref_96
        - name: schedule_path
          description: mask to filter by schedule path
          in: query
          schema: *ref_97
        - name: script_hash
          description: mask to filter exact matching path
          in: query
          schema: *ref_98
        - name: started_before
          description: filter on started before (inclusive) timestamp
          in: query
          schema: *ref_99
        - name: started_after
          description: filter on started after (exclusive) timestamp
          in: query
          schema: *ref_100
        - name: created_before
          description: filter on created before (inclusive) timestamp
          in: query
          schema: &ref_114
            type: string
            format: date-time
        - name: created_after
          description: filter on created after (exclusive) timestamp
          in: query
          schema: &ref_115
            type: string
            format: date-time
        - name: created_or_started_before
          description: >-
            filter on created_at for non non started job and started_at
            otherwise before (inclusive) timestamp
          in: query
          schema: &ref_116
            type: string
            format: date-time
        - name: running
          description: filter on running jobs
          in: query
          schema: *ref_101
        - name: scheduled_for_before_now
          description: filter on jobs scheduled_for before now (hence waitinf for a worker)
          in: query
          schema: *ref_102
        - name: created_or_started_after
          description: >-
            filter on created_at for non non started job and started_at
            otherwise after (exclusive) timestamp
          in: query
          schema: &ref_117
            type: string
            format: date-time
        - name: created_or_started_after_completed_jobs
          description: >-
            filter on created_at for non non started job and started_at
            otherwise after (exclusive) timestamp but only for the completed
            jobs
          in: query
          schema: &ref_118
            type: string
            format: date-time
        - name: job_kinds
          description: >-
            filter on job kind (values 'preview', 'script', 'dependencies',
            'flow') separated by,
          in: query
          schema: *ref_103
        - name: suspended
          description: filter on suspended jobs
          in: query
          schema: *ref_104
        - name: args
          description: >-
            filter on jobs containing those args as a json subset (@> in
            postgres)
          in: query
          schema: *ref_105
        - name: tag
          description: filter on jobs with a given tag/worker group
          in: query
          schema: *ref_106
        - name: result
          description: >-
            filter on jobs containing those result as a json subset (@> in
            postgres)
          in: query
          schema: *ref_107
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: is_skipped
          description: is the job skipped
          in: query
          schema:
            type: boolean
        - name: is_flow_step
          description: is the job a flow step
          in: query
          schema:
            type: boolean
        - name: has_null_parent
          description: has null parent
          in: query
          schema:
            type: boolean
        - name: success
          description: filter on successful jobs
          in: query
          schema:
            type: boolean
        - name: all_workspaces
          description: >-
            get jobs from all workspaces (only valid if request come from the
            `admins` workspace)
          in: query
          schema:
            type: boolean
        - name: is_not_schedule
          description: is not a scheduled job
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: uuids of jobs
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /w/{workspace}/jobs/queue/list_filtered_uuids:
    get:
      summary: get the ids of all queued jobs matching the given filters
      operationId: listFilteredQueueUuids
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: order_desc
          description: order by desc order (default true)
          in: query
          schema: *ref_66
        - name: created_by
          description: mask to filter exact matching user creator
          in: query
          schema: *ref_67
        - name: parent_job
          description: >-
            The parent job that is at the origin and responsible for the
            execution of this script if any
          in: query
          schema: *ref_60
        - name: script_path_exact
          description: mask to filter exact matching path
          in: query
          schema: *ref_95
        - name: script_path_start
          description: mask to filter matching starting path
          in: query
          schema: *ref_96
        - name: schedule_path
          description: mask to filter by schedule path
          in: query
          schema: *ref_97
        - name: script_hash
          description: mask to filter exact matching path
          in: query
          schema: *ref_98
        - name: started_before
          description: filter on started before (inclusive) timestamp
          in: query
          schema: *ref_99
        - name: started_after
          description: filter on started after (exclusive) timestamp
          in: query
          schema: *ref_100
        - name: success
          description: filter on successful jobs
          in: query
          schema: *ref_108
        - name: scheduled_for_before_now
          description: filter on jobs scheduled_for before now (hence waitinf for a worker)
          in: query
          schema: *ref_102
        - name: job_kinds
          description: >-
            filter on job kind (values 'preview', 'script', 'dependencies',
            'flow') separated by,
          in: query
          schema: *ref_103
        - name: suspended
          description: filter on suspended jobs
          in: query
          schema: *ref_104
        - name: running
          description: filter on running jobs
          in: query
          schema: *ref_101
        - name: args
          description: >-
            filter on jobs containing those args as a json subset (@> in
            postgres)
          in: query
          schema: *ref_105
        - name: result
          description: >-
            filter on jobs containing those result as a json subset (@> in
            postgres)
          in: query
          schema: *ref_107
        - name: allow_wildcards
          description: allow wildcards (*) in the filter of label, tag, worker
          in: query
          schema: *ref_109
        - name: tag
          description: filter on jobs with a given tag/worker group
          in: query
          schema: *ref_106
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: concurrency_key
          in: query
          required: false
          schema:
            type: string
        - name: all_workspaces
          description: >-
            get jobs from all workspaces (only valid if request come from the
            `admins` workspace)
          in: query
          schema:
            type: boolean
        - name: is_not_schedule
          description: is not a scheduled job
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: uuids of jobs
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /w/{workspace}/jobs/queue/cancel_selection:
    post:
      summary: cancel jobs based on the given uuids
      operationId: cancelSelection
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: uuids of the jobs to cancel
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
      responses:
        '200':
          description: uuids of canceled jobs
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /w/{workspace}/jobs/completed/list:
    get:
      summary: list all completed jobs
      operationId: listCompletedJobs
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: order_desc
          description: order by desc order (default true)
          in: query
          schema: *ref_66
        - name: created_by
          description: mask to filter exact matching user creator
          in: query
          schema: *ref_67
        - name: label
          description: >-
            mask to filter exact matching job's label (job labels are completed
            jobs with as a result an object containing a string in the array at
            key 'wm_labels')
          in: query
          schema: *ref_110
        - name: worker
          description: worker this job was ran on
          in: query
          schema: *ref_94
        - name: parent_job
          description: >-
            The parent job that is at the origin and responsible for the
            execution of this script if any
          in: query
          schema: *ref_60
        - name: script_path_exact
          description: mask to filter exact matching path
          in: query
          schema: *ref_95
        - name: script_path_start
          description: mask to filter matching starting path
          in: query
          schema: *ref_96
        - name: schedule_path
          description: mask to filter by schedule path
          in: query
          schema: *ref_97
        - name: script_hash
          description: mask to filter exact matching path
          in: query
          schema: *ref_98
        - name: started_before
          description: filter on started before (inclusive) timestamp
          in: query
          schema: *ref_99
        - name: started_after
          description: filter on started after (exclusive) timestamp
          in: query
          schema: *ref_100
        - name: success
          description: filter on successful jobs
          in: query
          schema: *ref_108
        - name: job_kinds
          description: >-
            filter on job kind (values 'preview', 'script', 'dependencies',
            'flow') separated by,
          in: query
          schema: *ref_103
        - name: args
          description: >-
            filter on jobs containing those args as a json subset (@> in
            postgres)
          in: query
          schema: *ref_105
        - name: result
          description: >-
            filter on jobs containing those result as a json subset (@> in
            postgres)
          in: query
          schema: *ref_107
        - name: allow_wildcards
          description: allow wildcards (*) in the filter of label, tag, worker
          in: query
          schema: *ref_109
        - name: tag
          description: filter on jobs with a given tag/worker group
          in: query
          schema: *ref_106
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: is_skipped
          description: is the job skipped
          in: query
          schema:
            type: boolean
        - name: is_flow_step
          description: is the job a flow step
          in: query
          schema:
            type: boolean
        - name: has_null_parent
          description: has null parent
          in: query
          schema:
            type: boolean
        - name: is_not_schedule
          description: is not a scheduled job
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: All completed jobs
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_119
                    workspace_id:
                      type: string
                    id:
                      type: string
                      format: uuid
                    parent_job:
                      type: string
                      format: uuid
                    created_by:
                      type: string
                    created_at:
                      type: string
                      format: date-time
                    started_at:
                      type: string
                      format: date-time
                    duration_ms:
                      type: integer
                    success:
                      type: boolean
                    script_path:
                      type: string
                    script_hash:
                      type: string
                    args:
                      type: object
                      description: The arguments to pass to the script or flow
                      additionalProperties: *ref_22
                    result: {}
                    logs:
                      type: string
                    deleted:
                      type: boolean
                    raw_code:
                      type: string
                    canceled:
                      type: boolean
                    canceled_by:
                      type: string
                    canceled_reason:
                      type: string
                    job_kind:
                      type: string
                      enum:
                        - script
                        - preview
                        - dependencies
                        - flow
                        - flowdependencies
                        - appdependencies
                        - flowpreview
                        - script_hub
                        - identity
                        - deploymentcallback
                        - singlescriptflow
                        - flowscript
                        - flownode
                        - appscript
                    schedule_path:
                      type: string
                    permissioned_as:
                      type: string
                      description: >
                        The user (u/userfoo) or group (g/groupfoo) whom

                        the execution of this script will be permissioned_as and
                        by extension its DT_TOKEN.
                    flow_status:
                      type: object
                      properties: *ref_111
                      required: *ref_112
                    workflow_as_code_status:
                      type: object
                      properties: *ref_113
                    raw_flow:
                      type: object
                      properties: *ref_92
                      required: *ref_93
                    is_flow_step:
                      type: boolean
                    language:
                      type: string
                      enum: *ref_50
                    is_skipped:
                      type: boolean
                    email:
                      type: string
                    visible_to_owner:
                      type: boolean
                    mem_peak:
                      type: integer
                    tag:
                      type: string
                    priority:
                      type: integer
                    labels:
                      type: array
                      items:
                        type: string
                    self_wait_time_ms:
                      type: number
                    aggregate_wait_time_ms:
                      type: number
                    preprocessed:
                      type: boolean
                    worker:
                      type: string
                  required: &ref_120
                    - id
                    - created_by
                    - duration_ms
                    - created_at
                    - started_at
                    - success
                    - canceled
                    - job_kind
                    - permissioned_as
                    - is_flow_step
                    - is_skipped
                    - email
                    - visible_to_owner
                    - tag
  /w/{workspace}/jobs/list:
    get:
      summary: list all jobs
      operationId: listJobs
      x-mcp-tool: true
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: created_by
          description: mask to filter exact matching user creator
          in: query
          schema: *ref_67
        - name: label
          description: >-
            mask to filter exact matching job's label (job labels are completed
            jobs with as a result an object containing a string in the array at
            key 'wm_labels')
          in: query
          schema: *ref_110
        - name: worker
          description: worker this job was ran on
          in: query
          schema: *ref_94
        - name: parent_job
          description: >-
            The parent job that is at the origin and responsible for the
            execution of this script if any
          in: query
          schema: *ref_60
        - name: script_path_exact
          description: mask to filter exact matching path
          in: query
          schema: *ref_95
        - name: script_path_start
          description: mask to filter matching starting path
          in: query
          schema: *ref_96
        - name: schedule_path
          description: mask to filter by schedule path
          in: query
          schema: *ref_97
        - name: script_hash
          description: mask to filter exact matching path
          in: query
          schema: *ref_98
        - name: started_before
          description: filter on started before (inclusive) timestamp
          in: query
          schema: *ref_99
        - name: started_after
          description: filter on started after (exclusive) timestamp
          in: query
          schema: *ref_100
        - name: created_before
          description: filter on created before (inclusive) timestamp
          in: query
          schema: *ref_114
        - name: created_after
          description: filter on created after (exclusive) timestamp
          in: query
          schema: *ref_115
        - name: created_or_started_before
          description: >-
            filter on created_at for non non started job and started_at
            otherwise before (inclusive) timestamp
          in: query
          schema: *ref_116
        - name: running
          description: filter on running jobs
          in: query
          schema: *ref_101
        - name: scheduled_for_before_now
          description: filter on jobs scheduled_for before now (hence waitinf for a worker)
          in: query
          schema: *ref_102
        - name: created_or_started_after
          description: >-
            filter on created_at for non non started job and started_at
            otherwise after (exclusive) timestamp
          in: query
          schema: *ref_117
        - name: created_or_started_after_completed_jobs
          description: >-
            filter on created_at for non non started job and started_at
            otherwise after (exclusive) timestamp but only for the completed
            jobs
          in: query
          schema: *ref_118
        - name: job_kinds
          description: >-
            filter on job kind (values 'preview', 'script', 'dependencies',
            'flow') separated by,
          in: query
          schema: *ref_103
        - name: suspended
          description: filter on suspended jobs
          in: query
          schema: *ref_104
        - name: args
          description: >-
            filter on jobs containing those args as a json subset (@> in
            postgres)
          in: query
          schema: *ref_105
        - name: tag
          description: filter on jobs with a given tag/worker group
          in: query
          schema: *ref_106
        - name: result
          description: >-
            filter on jobs containing those result as a json subset (@> in
            postgres)
          in: query
          schema: *ref_107
        - name: allow_wildcards
          description: allow wildcards (*) in the filter of label, tag, worker
          in: query
          schema: *ref_109
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: is_skipped
          description: is the job skipped
          in: query
          schema:
            type: boolean
        - name: is_flow_step
          description: is the job a flow step
          in: query
          schema:
            type: boolean
        - name: has_null_parent
          description: has null parent
          in: query
          schema:
            type: boolean
        - name: success
          description: filter on successful jobs
          in: query
          schema:
            type: boolean
        - name: all_workspaces
          description: >-
            get jobs from all workspaces (only valid if request come from the
            `admins` workspace)
          in: query
          schema:
            type: boolean
        - name: is_not_schedule
          description: is not a scheduled job
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: All jobs
          content:
            application/json:
              schema:
                type: array
                items:
                  oneOf: &ref_124
                    - allOf:
                        - type: object
                          properties: *ref_119
                          required: *ref_120
                        - type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - CompletedJob
                    - allOf:
                        - type: object
                          properties: *ref_121
                          required: *ref_122
                        - type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - QueuedJob
                  discriminator: &ref_125
                    propertyName: type
  /jobs/db_clock:
    get:
      summary: get db clock
      operationId: getDbClock
      tags:
        - job
      responses:
        '200':
          description: the timestamp of the db that can be used to compute the drift
          content:
            application/json:
              schema:
                type: integer
  /jobs/completed/count_by_tag:
    get:
      summary: Count jobs by tag
      operationId: countJobsByTag
      tags:
        - job
      parameters:
        - name: horizon_secs
          in: query
          description: >-
            Past Time horizon in seconds (when to start the count = now -
            horizon) (default is 3600)
          required: false
          schema:
            type: integer
        - name: workspace_id
          in: query
          description: Specific workspace ID to filter results (optional)
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Job counts by tag
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    tag:
                      type: string
                    count:
                      type: integer
                  required:
                    - tag
                    - count
  /w/{workspace}/jobs_u/get/{id}:
    get:
      summary: get job
      operationId: getJob
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
        - name: no_logs
          in: query
          schema:
            type: boolean
        - name: no_code
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: job details
          content:
            application/json:
              schema:
                oneOf: *ref_124
                discriminator: *ref_125
  /w/{workspace}/jobs_u/get_root_job_id/{id}:
    get:
      summary: get root job id
      operationId: getRootJobId
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
      responses:
        '200':
          description: get root job id
          content:
            application/json:
              schema:
                type: string
  /w/{workspace}/jobs_u/get_logs/{id}:
    get:
      summary: get job logs
      operationId: getJob logs
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
      responses:
        '200':
          description: job details
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/jobs_u/get_args/{id}:
    get:
      summary: get job args
      operationId: getJobArgs
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
      responses:
        '200':
          description: job args
          content:
            application/json:
              schema: {}
  /w/{workspace}/jobs_u/getupdate/{id}:
    get:
      summary: get job updates
      operationId: getJobUpdates
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
        - name: running
          in: query
          schema:
            type: boolean
        - name: log_offset
          in: query
          schema:
            type: integer
        - name: stream_offset
          in: query
          schema:
            type: integer
        - name: get_progress
          in: query
          schema:
            type: boolean
        - name: no_logs
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: job details
          content:
            application/json:
              schema:
                type: object
                properties:
                  running:
                    type: boolean
                  completed:
                    type: boolean
                  new_logs:
                    type: string
                  log_offset:
                    type: integer
                  mem_peak:
                    type: integer
                  progress:
                    type: integer
                  stream_offset:
                    type: integer
                  new_result_stream:
                    type: string
                  flow_status:
                    type: object
                    properties: *ref_111
                    required: *ref_112
                  workflow_as_code_status:
                    type: object
                    properties: *ref_113
  /w/{workspace}/jobs_u/getupdate_sse/{id}:
    get:
      summary: get job updates via server-sent events
      operationId: getJobUpdatesSSE
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
        - name: running
          in: query
          schema:
            type: boolean
        - name: log_offset
          in: query
          schema:
            type: integer
        - name: stream_offset
          in: query
          schema:
            type: integer
        - name: get_progress
          in: query
          schema:
            type: boolean
        - name: only_result
          in: query
          schema:
            type: boolean
        - name: no_logs
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: server-sent events stream of job updates
          content:
            text/event-stream:
              schema:
                type: string
  /w/{workspace}/jobs_u/get_log_file/{path}:
    get:
      summary: get log file from object store
      operationId: getLogFileFromStore
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: job log
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/jobs_u/get_flow_debug_info/{id}:
    get:
      summary: get flow debug info
      operationId: getFlowDebugInfo
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
      responses:
        '200':
          description: flow debug info details
          content:
            application/json:
              schema: {}
  /w/{workspace}/jobs_u/completed/get/{id}:
    get:
      summary: get completed job
      operationId: getCompletedJob
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
      responses:
        '200':
          description: job details
          content:
            application/json:
              schema:
                type: object
                properties: *ref_119
                required: *ref_120
  /w/{workspace}/jobs_u/completed/get_result/{id}:
    get:
      summary: get completed job result
      operationId: getCompletedJobResult
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
        - name: suspended_job
          in: query
          schema:
            type: string
        - name: resume_id
          in: query
          schema:
            type: integer
        - name: secret
          in: query
          schema:
            type: string
        - name: approver
          in: query
          schema:
            type: string
      responses:
        '200':
          description: result
          content:
            application/json:
              schema: {}
  /w/{workspace}/jobs_u/completed/get_result_maybe/{id}:
    get:
      summary: get completed job result if job is completed
      operationId: getCompletedJobResultMaybe
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
        - name: get_started
          in: query
          schema: &ref_214
            type: boolean
      responses:
        '200':
          description: result
          content:
            application/json:
              schema:
                type: object
                properties:
                  completed:
                    type: boolean
                  result: {}
                  success:
                    type: boolean
                  started:
                    type: boolean
                required:
                  - completed
                  - result
  /w/{workspace}/jobs/completed/delete/{id}:
    post:
      summary: delete completed job (erase content but keep run id)
      operationId: deleteCompletedJob
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
      responses:
        '200':
          description: job details
          content:
            application/json:
              schema:
                type: object
                properties: *ref_119
                required: *ref_120
  /w/{workspace}/jobs_u/queue/cancel/{id}:
    post:
      summary: cancel queued or running job
      operationId: cancelQueuedJob
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
      requestBody:
        description: reason
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                reason:
                  type: string
      responses:
        '200':
          description: job canceled
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/jobs_u/queue/cancel_persistent/{path}:
    post:
      summary: cancel all queued jobs for persistent script
      operationId: cancelPersistentQueuedJobs
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: reason
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                reason:
                  type: string
      responses:
        '200':
          description: persistent job scaled down to zero
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/jobs_u/queue/force_cancel/{id}:
    post:
      summary: force cancel queued job
      operationId: forceCancelQueuedJob
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
      requestBody:
        description: reason
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                reason:
                  type: string
      responses:
        '200':
          description: job canceled
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/jobs/job_signature/{id}/{resume_id}:
    get:
      summary: create an HMac signature given a job id and a resume id
      operationId: createJobSignature
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
        - name: resume_id
          in: path
          required: true
          schema:
            type: integer
        - name: approver
          in: query
          schema:
            type: string
      responses:
        '200':
          description: job signature
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/jobs/resume_urls/{id}/{resume_id}:
    get:
      summary: get resume urls given a job_id, resume_id and a nonce to resume a flow
      operationId: getResumeUrls
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
        - name: resume_id
          in: path
          required: true
          schema:
            type: integer
        - name: approver
          in: query
          schema:
            type: string
      responses:
        '200':
          description: url endpoints
          content:
            application/json:
              schema:
                type: object
                properties:
                  approvalPage:
                    type: string
                  resume:
                    type: string
                  cancel:
                    type: string
                required:
                  - approvalPage
                  - resume
                  - cancel
  /w/{workspace}/jobs/slack_approval/{id}:
    get:
      summary: generate interactive slack approval for suspended job
      operationId: getSlackApprovalPayload
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
        - name: approver
          in: query
          schema:
            type: string
        - name: message
          in: query
          schema:
            type: string
        - name: slack_resource_path
          in: query
          required: true
          schema:
            type: string
        - name: channel_id
          in: query
          required: true
          schema:
            type: string
        - name: flow_step_id
          in: query
          required: true
          schema:
            type: string
        - name: default_args_json
          in: query
          required: false
          schema:
            type: string
        - name: dynamic_enums_json
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Interactive slack approval message sent successfully
  /w/{workspace}/jobs/teams_approval/{id}:
    get:
      summary: generate interactive teams approval for suspended job
      operationId: getTeamsApprovalPayload
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
        - name: approver
          in: query
          schema:
            type: string
        - name: message
          in: query
          schema:
            type: string
        - name: team_name
          in: query
          required: true
          schema:
            type: string
        - name: channel_name
          in: query
          required: true
          schema:
            type: string
        - name: flow_step_id
          in: query
          required: true
          schema:
            type: string
        - name: default_args_json
          in: query
          required: false
          schema:
            type: string
        - name: dynamic_enums_json
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Interactive slack approval message sent successfully
  /w/{workspace}/jobs_u/resume/{id}/{resume_id}/{signature}:
    get:
      summary: resume a job for a suspended flow
      operationId: resumeSuspendedJobGet
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
        - name: payload
          description: >
            The base64 encoded payload that has been encoded as a JSON. e.g how
            to encode such payload encodeURIComponent

            `encodeURIComponent(btoa(JSON.stringify({a: 2})))`
          in: query
          schema: *ref_126
        - name: resume_id
          in: path
          required: true
          schema:
            type: integer
        - name: signature
          in: path
          required: true
          schema:
            type: string
        - name: approver
          in: query
          schema:
            type: string
      responses:
        '201':
          description: job resumed
          content:
            text/plain:
              schema:
                type: string
    post:
      summary: resume a job for a suspended flow
      operationId: resumeSuspendedJobPost
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
        - name: resume_id
          in: path
          required: true
          schema:
            type: integer
        - name: signature
          in: path
          required: true
          schema:
            type: string
        - name: approver
          in: query
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: job resumed
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/jobs/flow/user_states/{id}/{key}:
    post:
      summary: set flow user state at a given key
      operationId: setFlowUserState
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
        - name: key
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: new value
        required: true
        content:
          application/json:
            schema: {}
      responses:
        '200':
          description: flow user state updated
          content:
            text/plain:
              schema:
                type: string
    get:
      summary: get flow user state at a given key
      operationId: getFlowUserState
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
        - name: key
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: flow user state updated
          content:
            application/json:
              schema: {}
  /w/{workspace}/jobs/flow/resume/{id}:
    post:
      summary: resume a job for a suspended flow as an owner
      operationId: resumeSuspendedFlowAsOwner
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: job resumed
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/jobs_u/cancel/{id}/{resume_id}/{signature}:
    get:
      summary: cancel a job for a suspended flow
      operationId: cancelSuspendedJobGet
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
        - name: resume_id
          in: path
          required: true
          schema:
            type: integer
        - name: signature
          in: path
          required: true
          schema:
            type: string
        - name: approver
          in: query
          schema:
            type: string
      responses:
        '201':
          description: job canceled
          content:
            text/plain:
              schema:
                type: string
    post:
      summary: cancel a job for a suspended flow
      operationId: cancelSuspendedJobPost
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
        - name: resume_id
          in: path
          required: true
          schema:
            type: integer
        - name: signature
          in: path
          required: true
          schema:
            type: string
        - name: approver
          in: query
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: job canceled
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/jobs_u/get_flow/{id}/{resume_id}/{signature}:
    get:
      summary: get parent flow job of suspended job
      operationId: getSuspendedJobFlow
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
        - name: resume_id
          in: path
          required: true
          schema:
            type: integer
        - name: signature
          in: path
          required: true
          schema:
            type: string
        - name: approver
          in: query
          schema:
            type: string
      responses:
        '200':
          description: parent flow details
          content:
            application/json:
              schema:
                type: object
                properties:
                  job:
                    oneOf: *ref_124
                    discriminator: *ref_125
                  approvers:
                    type: array
                    items:
                      type: object
                      properties:
                        resume_id:
                          type: integer
                        approver:
                          type: string
                      required:
                        - resume_id
                        - approver
                required:
                  - job
                  - approvers
  /schedules/preview:
    post:
      summary: preview schedule
      operationId: previewSchedule
      tags:
        - schedule
      requestBody:
        description: schedule
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                schedule:
                  type: string
                timezone:
                  type: string
                cron_version:
                  type: string
              required:
                - schedule
                - timezone
      responses:
        '200':
          description: List of 5 estimated upcoming execution events (in UTC)
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                  format: date-time
  /w/{workspace}/schedules/create:
    post:
      summary: create schedule
      operationId: createSchedule
      x-mcp-tool: true
      x-mcp-instructions: >
        Creates a new schedule.

        The schedule should include seconds.

        You should get the schema of the script or flow before creating the
        schedule to correctly specify the arguments needed.
      tags:
        - schedule
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: new schedule
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_275
                path:
                  type: string
                  description: The path where the schedule will be created
                schedule:
                  type: string
                  description: >-
                    The cron schedule to trigger the script or flow. Should
                    include seconds.
                timezone:
                  type: string
                  description: The timezone to use for the cron schedule
                script_path:
                  type: string
                  description: The path to the script or flow to trigger
                is_flow:
                  type: boolean
                  description: Whether the schedule is for a flow
                args:
                  description: The arguments to pass to the script or flow
                  type: object
                  additionalProperties: *ref_22
                enabled:
                  type: boolean
                  description: Whether the schedule is enabled
                on_failure:
                  type: string
                  description: The path to the script or flow to trigger on failure
                on_failure_times:
                  type: number
                  description: The number of times to retry on failure
                on_failure_exact:
                  type: boolean
                  description: Whether the schedule should only run on the exact time
                on_failure_extra_args:
                  description: The arguments to pass to the script or flow
                  type: object
                  additionalProperties: *ref_22
                on_recovery:
                  type: string
                  description: The path to the script or flow to trigger on recovery
                on_recovery_times:
                  type: number
                  description: The number of times to retry on recovery
                on_recovery_extra_args:
                  description: The arguments to pass to the script or flow
                  type: object
                  additionalProperties: *ref_22
                on_success:
                  type: string
                  description: The path to the script or flow to trigger on success
                on_success_extra_args:
                  description: The arguments to pass to the script or flow
                  type: object
                  additionalProperties: *ref_22
                ws_error_handler_muted:
                  type: boolean
                  description: Whether the WebSocket error handler is muted
                retry:
                  description: The retry configuration for the schedule
                  type: object
                  properties: &ref_127
                    constant:
                      type: object
                      properties:
                        attempts:
                          type: integer
                        seconds:
                          type: integer
                    exponential:
                      type: object
                      properties:
                        attempts:
                          type: integer
                        multiplier:
                          type: integer
                        seconds:
                          type: integer
                        random_factor:
                          type: integer
                          minimum: 0
                          maximum: 100
                no_flow_overlap:
                  type: boolean
                  description: >-
                    Whether the schedule should not run if a flow is already
                    running
                summary:
                  type: string
                  description: The summary of the schedule
                description:
                  type: string
                  description: The description of the schedule
                tag:
                  type: string
                  description: The tag of the schedule
                paused_until:
                  type: string
                  description: The date and time the schedule will be paused until
                  format: date-time
                cron_version:
                  type: string
                  description: The version of the cron schedule to use (last is v2)
              required: &ref_276
                - path
                - schedule
                - timezone
                - script_path
                - is_flow
                - args
      responses:
        '201':
          description: schedule created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/schedules/update/{path}:
    post:
      summary: update schedule
      operationId: updateSchedule
      x-mcp-tool: true
      x-mcp-instructions: >
        Updates a schedule.

        The schedule should include seconds.

        You should get the schema of the script or flow before updating the
        schedule to correctly specify the arguments needed.
      tags:
        - schedule
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: updated schedule
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_277
                schedule:
                  type: string
                  description: >-
                    The cron schedule to trigger the script or flow. Should
                    include seconds.
                timezone:
                  type: string
                  description: The timezone to use for the cron schedule
                args:
                  description: The arguments to pass to the script or flow
                  type: object
                  additionalProperties: *ref_22
                on_failure:
                  type: string
                  description: The path to the script or flow to trigger on failure
                on_failure_times:
                  type: number
                  description: The number of times to retry on failure
                on_failure_exact:
                  type: boolean
                  description: Whether the schedule should only run on the exact time
                on_failure_extra_args:
                  description: The arguments to pass to the script or flow
                  type: object
                  additionalProperties: *ref_22
                on_recovery:
                  type: string
                  description: The path to the script or flow to trigger on recovery
                on_recovery_times:
                  type: number
                  description: The number of times to retry on recovery
                on_recovery_extra_args:
                  description: The arguments to pass to the script or flow
                  type: object
                  additionalProperties: *ref_22
                on_success:
                  type: string
                  description: The path to the script or flow to trigger on success
                on_success_extra_args:
                  description: The arguments to pass to the script or flow
                  type: object
                  additionalProperties: *ref_22
                ws_error_handler_muted:
                  type: boolean
                  description: Whether the WebSocket error handler is muted
                retry:
                  description: The retry configuration for the schedule
                  type: object
                  properties: *ref_127
                no_flow_overlap:
                  type: boolean
                  description: >-
                    Whether the schedule should not run if a flow is already
                    running
                summary:
                  type: string
                  description: The summary of the schedule
                description:
                  type: string
                  description: The description of the schedule
                tag:
                  type: string
                  description: The tag of the schedule
                paused_until:
                  type: string
                  description: The date and time the schedule will be paused until
                  format: date-time
                cron_version:
                  type: string
                  description: The version of the cron schedule to use (last is v2)
              required: &ref_278
                - schedule
                - timezone
                - args
      responses:
        '200':
          description: schedule updated
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/schedules/setenabled/{path}:
    post:
      summary: set enabled schedule
      operationId: setScheduleEnabled
      tags:
        - schedule
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: updated schedule enable
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                enabled:
                  type: boolean
              required:
                - enabled
      responses:
        '200':
          description: schedule enabled set
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/schedules/delete/{path}:
    delete:
      summary: delete schedule
      operationId: deleteSchedule
      x-mcp-tool: true
      tags:
        - schedule
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: schedule deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/schedules/get/{path}:
    get:
      summary: get schedule
      operationId: getSchedule
      x-mcp-tool: true
      tags:
        - schedule
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: schedule deleted
          content:
            application/json:
              schema:
                type: object
                properties: &ref_128
                  path:
                    type: string
                  edited_by:
                    type: string
                  edited_at:
                    type: string
                    format: date-time
                  schedule:
                    type: string
                  timezone:
                    type: string
                  enabled:
                    type: boolean
                  script_path:
                    type: string
                  is_flow:
                    type: boolean
                  args:
                    type: object
                    description: The arguments to pass to the script or flow
                    additionalProperties: *ref_22
                  extra_perms:
                    type: object
                    additionalProperties:
                      type: boolean
                  email:
                    type: string
                  error:
                    type: string
                  on_failure:
                    type: string
                  on_failure_times:
                    type: number
                  on_failure_exact:
                    type: boolean
                  on_failure_extra_args:
                    type: object
                    description: The arguments to pass to the script or flow
                    additionalProperties: *ref_22
                  on_recovery:
                    type: string
                  on_recovery_times:
                    type: number
                  on_recovery_extra_args:
                    type: object
                    description: The arguments to pass to the script or flow
                    additionalProperties: *ref_22
                  on_success:
                    type: string
                  on_success_extra_args:
                    type: object
                    description: The arguments to pass to the script or flow
                    additionalProperties: *ref_22
                  ws_error_handler_muted:
                    type: boolean
                  retry:
                    type: object
                    properties: *ref_127
                  summary:
                    type: string
                  description:
                    type: string
                  no_flow_overlap:
                    type: boolean
                  tag:
                    type: string
                  paused_until:
                    type: string
                    format: date-time
                  cron_version:
                    type: string
                required: &ref_129
                  - path
                  - edited_by
                  - edited_at
                  - schedule
                  - script_path
                  - timezone
                  - extra_perms
                  - is_flow
                  - enabled
                  - email
  /w/{workspace}/schedules/exists/{path}:
    get:
      summary: does schedule exists
      operationId: existsSchedule
      tags:
        - schedule
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: schedule exists
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/schedules/list:
    get:
      summary: list schedules
      operationId: listSchedules
      x-mcp-tool: true
      tags:
        - schedule
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: args
          description: >-
            filter on jobs containing those args as a json subset (@> in
            postgres)
          in: query
          schema: *ref_105
        - name: path
          description: filter by path
          in: query
          schema:
            type: string
        - name: is_flow
          description: filter schedules by whether they target a flow
          in: query
          schema:
            type: boolean
        - name: path_start
          description: filter schedules by path prefix
          in: query
          schema:
            type: string
      responses:
        '200':
          description: schedule list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: *ref_128
                  required: *ref_129
  /w/{workspace}/schedules/list_with_jobs:
    get:
      summary: list schedules with last 20 jobs
      operationId: listSchedulesWithJobs
      tags:
        - schedule
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
      responses:
        '200':
          description: schedule list
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf: &ref_274
                    - type: object
                      properties: *ref_128
                      required: *ref_129
                    - type: object
                      properties:
                        jobs:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                              success:
                                type: boolean
                              duration_ms:
                                type: number
                            required:
                              - id
                              - success
                              - duration_ms
  /w/{workspace}/schedules/setdefaulthandler:
    post:
      summary: Set default error or recoevery handler
      operationId: setDefaultErrorOrRecoveryHandler
      tags:
        - schedule
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: Handler description
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                handler_type:
                  type: string
                  enum:
                    - error
                    - recovery
                    - success
                override_existing:
                  type: boolean
                path:
                  type: string
                extra_args:
                  type: object
                number_of_occurence:
                  type: integer
                number_of_occurence_exact:
                  type: boolean
                workspace_handler_muted:
                  type: boolean
              required:
                - handler_type
                - override_existing
      responses:
        '201':
          description: default error handler set
  /w/{workspace}/openapi/generate:
    post:
      summary: generate openapi spec from http routes/webhook
      operationId: generateOpenapiSpec
      tags:
        - openapi
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: openapi spec info and url
        content:
          application/json:
            schema:
              type: object
              properties: &ref_130
                info:
                  type: object
                  properties: &ref_285
                    title:
                      type: string
                    version:
                      type: string
                    description:
                      type: string
                    terms_of_service:
                      type: string
                    contact:
                      type: object
                      properties:
                        name:
                          type: string
                        url:
                          type: string
                        email:
                          type: string
                    license:
                      type: object
                      properties:
                        name:
                          type: string
                        identifier:
                          type: string
                        url:
                          type: string
                      required:
                        - name
                  required: &ref_286
                    - title
                    - version
                url:
                  type: string
                openapi_spec_format:
                  type: string
                  enum: &ref_280
                    - yaml
                    - json
                http_route_filters:
                  type: array
                  items:
                    type: object
                    properties: &ref_281
                      folder_regex:
                        type: string
                      path_regex:
                        type: string
                      route_path_regex:
                        type: string
                    required: &ref_282
                      - folder_regex
                      - path_regex
                      - route_path_regex
                webhook_filters:
                  type: array
                  items:
                    type: object
                    properties: &ref_283
                      user_or_folder_regex:
                        type: string
                        enum:
                          - '*'
                          - u
                          - f
                      user_or_folder_regex_value:
                        type: string
                      path:
                        type: string
                      runnable_kind:
                        type: string
                        enum: &ref_279
                          - script
                          - flow
                    required: &ref_284
                      - user_or_folder_regex
                      - user_or_folder_regex_value
                      - path
                      - runnable_kind
      responses:
        '200':
          description: openapi spec
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/openapi/download:
    post:
      summary: Download the OpenAPI v3.1 spec as a file
      operationId: DownloadOpenapiSpec
      tags:
        - openapi
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: openapi spec info and url
        content:
          application/json:
            schema:
              type: object
              properties: *ref_130
      responses:
        '200':
          description: Downloaded OpenAPI spec
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
  /w/{workspace}/http_triggers/create_many:
    post:
      summary: create many HTTP triggers
      operationId: createHttpTriggers
      tags:
        - http_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: new http trigger
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                properties: &ref_131
                  path:
                    type: string
                  script_path:
                    type: string
                  route_path:
                    type: string
                  workspaced_route:
                    type: boolean
                  summary:
                    type: string
                  description:
                    type: string
                  static_asset_config:
                    type: object
                    properties:
                      s3:
                        type: string
                      storage:
                        type: string
                      filename:
                        type: string
                    required:
                      - s3
                  is_flow:
                    type: boolean
                  http_method:
                    type: string
                    enum: &ref_133
                      - get
                      - post
                      - put
                      - delete
                      - patch
                  authentication_resource_path:
                    type: string
                  is_async:
                    type: boolean
                  authentication_method:
                    type: string
                    enum: &ref_134
                      - none
                      - windmill
                      - api_key
                      - basic_http
                      - custom_script
                      - signature
                  is_static_website:
                    type: boolean
                  wrap_body:
                    type: boolean
                  raw_string:
                    type: boolean
                  error_handler_path:
                    type: string
                  error_handler_args:
                    type: object
                    description: The arguments to pass to the script or flow
                    additionalProperties: *ref_22
                  retry:
                    type: object
                    properties: *ref_127
                required: &ref_132
                  - path
                  - script_path
                  - route_path
                  - is_flow
                  - is_async
                  - authentication_method
                  - http_method
                  - is_static_website
      responses:
        '201':
          description: http trigger created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/http_triggers/create:
    post:
      summary: create http trigger
      operationId: createHttpTrigger
      tags:
        - http_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: new http trigger
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: *ref_131
              required: *ref_132
      responses:
        '201':
          description: http trigger created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/http_triggers/update/{path}:
    post:
      summary: update http trigger
      operationId: updateHttpTrigger
      tags:
        - http_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: updated trigger
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_287
                path:
                  type: string
                script_path:
                  type: string
                route_path:
                  type: string
                summary:
                  type: string
                description:
                  type: string
                workspaced_route:
                  type: boolean
                static_asset_config:
                  type: object
                  properties:
                    s3:
                      type: string
                    storage:
                      type: string
                    filename:
                      type: string
                  required:
                    - s3
                authentication_resource_path:
                  type: string
                is_flow:
                  type: boolean
                http_method:
                  type: string
                  enum: *ref_133
                is_async:
                  type: boolean
                authentication_method:
                  type: string
                  enum: *ref_134
                is_static_website:
                  type: boolean
                wrap_body:
                  type: boolean
                raw_string:
                  type: boolean
                error_handler_path:
                  type: string
                error_handler_args:
                  type: object
                  description: The arguments to pass to the script or flow
                  additionalProperties: *ref_22
                retry:
                  type: object
                  properties: *ref_127
              required: &ref_288
                - path
                - script_path
                - is_flow
                - kind
                - is_async
                - authentication_method
                - http_method
                - is_static_website
      responses:
        '200':
          description: http trigger updated
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/http_triggers/delete/{path}:
    delete:
      summary: delete http trigger
      operationId: deleteHttpTrigger
      tags:
        - http_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: http trigger deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/http_triggers/get/{path}:
    get:
      summary: get http trigger
      operationId: getHttpTrigger
      tags:
        - http_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: http trigger deleted
          content:
            application/json:
              schema:
                allOf: &ref_135
                  - type: object
                    properties: &ref_139
                      path:
                        type: string
                      script_path:
                        type: string
                      email:
                        type: string
                      extra_perms:
                        type: object
                        additionalProperties:
                          type: boolean
                      workspace_id:
                        type: string
                      edited_by:
                        type: string
                      edited_at:
                        type: string
                        format: date-time
                      is_flow:
                        type: boolean
                    required: &ref_140
                      - path
                      - script_path
                      - email
                      - extra_perms
                      - workspace_id
                      - edited_by
                      - edited_at
                      - is_flow
                type: object
                properties: &ref_136
                  route_path:
                    type: string
                  static_asset_config:
                    type: object
                    properties:
                      s3:
                        type: string
                      storage:
                        type: string
                      filename:
                        type: string
                    required:
                      - s3
                  http_method:
                    type: string
                    enum: *ref_133
                  authentication_resource_path:
                    type: string
                  summary:
                    type: string
                  description:
                    type: string
                  is_async:
                    type: boolean
                  authentication_method:
                    type: string
                    enum: *ref_134
                  is_static_website:
                    type: boolean
                  workspaced_route:
                    type: boolean
                  wrap_body:
                    type: boolean
                  raw_string:
                    type: boolean
                  error_handler_path:
                    type: string
                  error_handler_args:
                    type: object
                    description: The arguments to pass to the script or flow
                    additionalProperties: *ref_22
                  retry:
                    type: object
                    properties: *ref_127
                required: &ref_137
                  - route_path
                  - is_async
                  - authentication_method
                  - http_method
                  - is_static_website
                  - workspaced_route
                  - wrap_body
                  - raw_string
  /w/{workspace}/http_triggers/list:
    get:
      summary: list http triggers
      operationId: listHttpTriggers
      tags:
        - http_trigger
      parameters:
        - required: true
          name: workspace
          in: path
          schema: *ref_0
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: path
          description: filter by path
          in: query
          schema:
            type: string
        - name: is_flow
          in: query
          schema:
            type: boolean
        - name: path_start
          in: query
          schema:
            type: string
      responses:
        '200':
          description: http trigger list
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf: *ref_135
                  type: object
                  properties: *ref_136
                  required: *ref_137
  /w/{workspace}/http_triggers/exists/{path}:
    get:
      summary: does http trigger exists
      operationId: existsHttpTrigger
      tags:
        - http_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: http trigger exists
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/http_triggers/route_exists:
    post:
      summary: does route exists
      operationId: existsRoute
      tags:
        - http_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: route exists request
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                route_path:
                  type: string
                http_method:
                  type: string
                  enum: *ref_133
                trigger_path:
                  type: string
                workspaced_route:
                  type: boolean
              required:
                - route_path
                - http_method
      responses:
        '200':
          description: route exists
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/websocket_triggers/create:
    post:
      summary: create websocket trigger
      operationId: createWebsocketTrigger
      tags:
        - websocket_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: new websocket trigger
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_289
                path:
                  type: string
                script_path:
                  type: string
                is_flow:
                  type: boolean
                url:
                  type: string
                enabled:
                  type: boolean
                filters:
                  type: array
                  items:
                    type: object
                    properties:
                      key:
                        type: string
                      value: {}
                    required:
                      - key
                      - value
                initial_messages:
                  type: array
                  items:
                    anyOf: &ref_138
                      - type: object
                        properties:
                          raw_message:
                            type: string
                        required:
                          - raw_message
                      - type: object
                        properties:
                          runnable_result:
                            type: object
                            properties:
                              path:
                                type: string
                              args:
                                type: object
                                description: The arguments to pass to the script or flow
                                additionalProperties: *ref_22
                              is_flow:
                                type: boolean
                            required:
                              - path
                              - args
                              - is_flow
                        required:
                          - runnable_result
                url_runnable_args:
                  type: object
                  description: The arguments to pass to the script or flow
                  additionalProperties: *ref_22
                can_return_message:
                  type: boolean
                error_handler_path:
                  type: string
                error_handler_args:
                  type: object
                  description: The arguments to pass to the script or flow
                  additionalProperties: *ref_22
                retry:
                  type: object
                  properties: *ref_127
              required: &ref_290
                - path
                - script_path
                - url
                - is_flow
                - filters
                - can_return_message
      responses:
        '201':
          description: websocket trigger created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/websocket_triggers/update/{path}:
    post:
      summary: update websocket trigger
      operationId: updateWebsocketTrigger
      tags:
        - websocket_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: updated trigger
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_291
                url:
                  type: string
                path:
                  type: string
                script_path:
                  type: string
                is_flow:
                  type: boolean
                filters:
                  type: array
                  items:
                    type: object
                    properties:
                      key:
                        type: string
                      value: {}
                    required:
                      - key
                      - value
                initial_messages:
                  type: array
                  items:
                    anyOf: *ref_138
                url_runnable_args:
                  type: object
                  description: The arguments to pass to the script or flow
                  additionalProperties: *ref_22
                can_return_message:
                  type: boolean
                error_handler_path:
                  type: string
                error_handler_args:
                  type: object
                  description: The arguments to pass to the script or flow
                  additionalProperties: *ref_22
                retry:
                  type: object
                  properties: *ref_127
              required: &ref_292
                - path
                - script_path
                - url
                - is_flow
                - filters
                - can_return_message
      responses:
        '200':
          description: websocket trigger updated
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/websocket_triggers/delete/{path}:
    delete:
      summary: delete websocket trigger
      operationId: deleteWebsocketTrigger
      tags:
        - websocket_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: websocket trigger deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/websocket_triggers/get/{path}:
    get:
      summary: get websocket trigger
      operationId: getWebsocketTrigger
      tags:
        - websocket_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: websocket trigger deleted
          content:
            application/json:
              schema:
                allOf: &ref_141
                  - type: object
                    properties: *ref_139
                    required: *ref_140
                type: object
                properties: &ref_142
                  url:
                    type: string
                  server_id:
                    type: string
                  last_server_ping:
                    type: string
                    format: date-time
                  error:
                    type: string
                  enabled:
                    type: boolean
                  filters:
                    type: array
                    items:
                      type: object
                      properties:
                        key:
                          type: string
                        value: {}
                      required:
                        - key
                        - value
                  initial_messages:
                    type: array
                    items:
                      anyOf: *ref_138
                  url_runnable_args:
                    type: object
                    description: The arguments to pass to the script or flow
                    additionalProperties: *ref_22
                  can_return_message:
                    type: boolean
                  error_handler_path:
                    type: string
                  error_handler_args:
                    type: object
                    description: The arguments to pass to the script or flow
                    additionalProperties: *ref_22
                  retry:
                    type: object
                    properties: *ref_127
                required: &ref_143
                  - url
                  - enabled
                  - filters
                  - can_return_message
  /w/{workspace}/websocket_triggers/list:
    get:
      summary: list websocket triggers
      operationId: listWebsocketTriggers
      tags:
        - websocket_trigger
      parameters:
        - required: true
          name: workspace
          in: path
          schema: *ref_0
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: path
          description: filter by path
          in: query
          schema:
            type: string
        - name: is_flow
          in: query
          schema:
            type: boolean
        - name: path_start
          in: query
          schema:
            type: string
      responses:
        '200':
          description: websocket trigger list
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf: *ref_141
                  type: object
                  properties: *ref_142
                  required: *ref_143
  /w/{workspace}/websocket_triggers/exists/{path}:
    get:
      summary: does websocket trigger exists
      operationId: existsWebsocketTrigger
      tags:
        - websocket_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: websocket trigger exists
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/websocket_triggers/setenabled/{path}:
    post:
      summary: set enabled websocket trigger
      operationId: setWebsocketTriggerEnabled
      tags:
        - websocket_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: updated websocket trigger enable
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                enabled:
                  type: boolean
              required:
                - enabled
      responses:
        '200':
          description: websocket trigger enabled set
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/websocket_triggers/test:
    post:
      summary: test websocket connection
      operationId: testWebsocketConnection
      tags:
        - websocket_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: test websocket connection
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type: string
                url_runnable_args:
                  type: object
                  description: The arguments to pass to the script or flow
                  additionalProperties: *ref_22
                can_return_message:
                  type: boolean
              required:
                - url
                - can_return_message
      responses:
        '200':
          description: successfuly connected to websocket
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/kafka_triggers/create:
    post:
      summary: create kafka trigger
      operationId: createKafkaTrigger
      tags:
        - kafka_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: new kafka trigger
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_315
                path:
                  type: string
                script_path:
                  type: string
                is_flow:
                  type: boolean
                kafka_resource_path:
                  type: string
                group_id:
                  type: string
                topics:
                  type: array
                  items:
                    type: string
                enabled:
                  type: boolean
                error_handler_path:
                  type: string
                error_handler_args:
                  type: object
                  description: The arguments to pass to the script or flow
                  additionalProperties: *ref_22
                retry:
                  type: object
                  properties: *ref_127
              required: &ref_316
                - path
                - script_path
                - is_flow
                - kafka_resource_path
                - group_id
                - topics
      responses:
        '201':
          description: kafka trigger created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/kafka_triggers/update/{path}:
    post:
      summary: update kafka trigger
      operationId: updateKafkaTrigger
      tags:
        - kafka_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: updated trigger
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_317
                kafka_resource_path:
                  type: string
                group_id:
                  type: string
                topics:
                  type: array
                  items:
                    type: string
                path:
                  type: string
                script_path:
                  type: string
                is_flow:
                  type: boolean
                error_handler_path:
                  type: string
                error_handler_args:
                  type: object
                  description: The arguments to pass to the script or flow
                  additionalProperties: *ref_22
                retry:
                  type: object
                  properties: *ref_127
              required: &ref_318
                - path
                - script_path
                - kafka_resource_path
                - group_id
                - topics
                - is_flow
      responses:
        '200':
          description: kafka trigger updated
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/kafka_triggers/delete/{path}:
    delete:
      summary: delete kafka trigger
      operationId: deleteKafkaTrigger
      tags:
        - kafka_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: kafka trigger deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/kafka_triggers/get/{path}:
    get:
      summary: get kafka trigger
      operationId: getKafkaTrigger
      tags:
        - kafka_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: kafka trigger deleted
          content:
            application/json:
              schema:
                allOf: &ref_144
                  - type: object
                    properties: *ref_139
                    required: *ref_140
                type: object
                properties: &ref_145
                  kafka_resource_path:
                    type: string
                  group_id:
                    type: string
                  topics:
                    type: array
                    items:
                      type: string
                  server_id:
                    type: string
                  last_server_ping:
                    type: string
                    format: date-time
                  error:
                    type: string
                  enabled:
                    type: boolean
                  error_handler_path:
                    type: string
                  error_handler_args:
                    type: object
                    description: The arguments to pass to the script or flow
                    additionalProperties: *ref_22
                  retry:
                    type: object
                    properties: *ref_127
                required: &ref_146
                  - kafka_resource_path
                  - group_id
                  - topics
                  - enabled
  /w/{workspace}/kafka_triggers/list:
    get:
      summary: list kafka triggers
      operationId: listKafkaTriggers
      tags:
        - kafka_trigger
      parameters:
        - required: true
          name: workspace
          in: path
          schema: *ref_0
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: path
          description: filter by path
          in: query
          schema:
            type: string
        - name: is_flow
          in: query
          schema:
            type: boolean
        - name: path_start
          in: query
          schema:
            type: string
      responses:
        '200':
          description: kafka trigger list
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf: *ref_144
                  type: object
                  properties: *ref_145
                  required: *ref_146
  /w/{workspace}/kafka_triggers/exists/{path}:
    get:
      summary: does kafka trigger exists
      operationId: existsKafkaTrigger
      tags:
        - kafka_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: kafka trigger exists
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/kafka_triggers/setenabled/{path}:
    post:
      summary: set enabled kafka trigger
      operationId: setKafkaTriggerEnabled
      tags:
        - kafka_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: updated kafka trigger enable
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                enabled:
                  type: boolean
              required:
                - enabled
      responses:
        '200':
          description: kafka trigger enabled set
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/kafka_triggers/test:
    post:
      summary: test kafka connection
      operationId: testKafkaConnection
      tags:
        - kafka_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: test kafka connection
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                connection:
                  type: object
              required:
                - connection
      responses:
        '200':
          description: successfuly connected to kafka brokers
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/nats_triggers/create:
    post:
      summary: create nats trigger
      operationId: createNatsTrigger
      tags:
        - nats_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: new nats trigger
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_319
                path:
                  type: string
                script_path:
                  type: string
                is_flow:
                  type: boolean
                nats_resource_path:
                  type: string
                use_jetstream:
                  type: boolean
                stream_name:
                  type: string
                consumer_name:
                  type: string
                subjects:
                  type: array
                  items:
                    type: string
                enabled:
                  type: boolean
                error_handler_path:
                  type: string
                error_handler_args:
                  type: object
                  description: The arguments to pass to the script or flow
                  additionalProperties: *ref_22
                retry:
                  type: object
                  properties: *ref_127
              required: &ref_320
                - path
                - script_path
                - is_flow
                - nats_resource_path
                - use_jetstream
                - subjects
      responses:
        '201':
          description: nats trigger created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/nats_triggers/update/{path}:
    post:
      summary: update nats trigger
      operationId: updateNatsTrigger
      tags:
        - nats_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: updated trigger
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_321
                nats_resource_path:
                  type: string
                use_jetstream:
                  type: boolean
                stream_name:
                  type: string
                consumer_name:
                  type: string
                subjects:
                  type: array
                  items:
                    type: string
                path:
                  type: string
                script_path:
                  type: string
                is_flow:
                  type: boolean
                error_handler_path:
                  type: string
                error_handler_args:
                  type: object
                  description: The arguments to pass to the script or flow
                  additionalProperties: *ref_22
                retry:
                  type: object
                  properties: *ref_127
              required: &ref_322
                - path
                - script_path
                - nats_resource_path
                - use_jetstream
                - subjects
                - is_flow
      responses:
        '200':
          description: nats trigger updated
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/nats_triggers/delete/{path}:
    delete:
      summary: delete nats trigger
      operationId: deleteNatsTrigger
      tags:
        - nats_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: nats trigger deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/nats_triggers/get/{path}:
    get:
      summary: get nats trigger
      operationId: getNatsTrigger
      tags:
        - nats_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: nats trigger deleted
          content:
            application/json:
              schema:
                allOf: &ref_147
                  - type: object
                    properties: *ref_139
                    required: *ref_140
                type: object
                properties: &ref_148
                  nats_resource_path:
                    type: string
                  use_jetstream:
                    type: boolean
                  stream_name:
                    type: string
                  consumer_name:
                    type: string
                  subjects:
                    type: array
                    items:
                      type: string
                  server_id:
                    type: string
                  last_server_ping:
                    type: string
                    format: date-time
                  error:
                    type: string
                  enabled:
                    type: boolean
                  error_handler_path:
                    type: string
                  error_handler_args:
                    type: object
                    description: The arguments to pass to the script or flow
                    additionalProperties: *ref_22
                  retry:
                    type: object
                    properties: *ref_127
                required: &ref_149
                  - nats_resource_path
                  - use_jetstream
                  - subjects
                  - enabled
  /w/{workspace}/nats_triggers/list:
    get:
      summary: list nats triggers
      operationId: listNatsTriggers
      tags:
        - nats_trigger
      parameters:
        - required: true
          name: workspace
          in: path
          schema: *ref_0
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: path
          description: filter by path
          in: query
          schema:
            type: string
        - name: is_flow
          in: query
          schema:
            type: boolean
        - name: path_start
          in: query
          schema:
            type: string
      responses:
        '200':
          description: nats trigger list
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf: *ref_147
                  type: object
                  properties: *ref_148
                  required: *ref_149
  /w/{workspace}/nats_triggers/exists/{path}:
    get:
      summary: does nats trigger exists
      operationId: existsNatsTrigger
      tags:
        - nats_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: nats trigger exists
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/nats_triggers/setenabled/{path}:
    post:
      summary: set enabled nats trigger
      operationId: setNatsTriggerEnabled
      tags:
        - nats_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: updated nats trigger enable
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                enabled:
                  type: boolean
              required:
                - enabled
      responses:
        '200':
          description: nats trigger enabled set
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/nats_triggers/test:
    post:
      summary: test NATS connection
      operationId: testNatsConnection
      tags:
        - nats_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: test nats connection
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                connection:
                  type: object
              required:
                - connection
      responses:
        '200':
          description: successfuly connected to NATS servers
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/sqs_triggers/create:
    post:
      summary: create sqs trigger
      operationId: createSqsTrigger
      tags:
        - sqs_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: new sqs trigger
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_302
                queue_url:
                  type: string
                aws_auth_resource_type:
                  type: string
                  enum: &ref_150
                    - oidc
                    - credentials
                aws_resource_path:
                  type: string
                message_attributes:
                  type: array
                  items:
                    type: string
                path:
                  type: string
                script_path:
                  type: string
                is_flow:
                  type: boolean
                enabled:
                  type: boolean
                error_handler_path:
                  type: string
                error_handler_args:
                  type: object
                  description: The arguments to pass to the script or flow
                  additionalProperties: *ref_22
                retry:
                  type: object
                  properties: *ref_127
              required: &ref_303
                - queue_url
                - aws_resource_path
                - path
                - script_path
                - is_flow
                - aws_auth_resource_type
      responses:
        '201':
          description: sqs trigger created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/sqs_triggers/update/{path}:
    post:
      summary: update sqs trigger
      operationId: updateSqsTrigger
      tags:
        - sqs_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: updated trigger
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_304
                queue_url:
                  type: string
                aws_auth_resource_type:
                  type: string
                  enum: *ref_150
                aws_resource_path:
                  type: string
                message_attributes:
                  type: array
                  items:
                    type: string
                path:
                  type: string
                script_path:
                  type: string
                is_flow:
                  type: boolean
                enabled:
                  type: boolean
                error_handler_path:
                  type: string
                error_handler_args:
                  type: object
                  description: The arguments to pass to the script or flow
                  additionalProperties: *ref_22
                retry:
                  type: object
                  properties: *ref_127
              required: &ref_305
                - queue_url
                - aws_resource_path
                - path
                - script_path
                - is_flow
                - enabled
                - aws_auth_resource_type
      responses:
        '200':
          description: sqs trigger updated
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/sqs_triggers/delete/{path}:
    delete:
      summary: delete sqs trigger
      operationId: deleteSqsTrigger
      tags:
        - sqs_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: sqs trigger deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/sqs_triggers/get/{path}:
    get:
      summary: get sqs trigger
      operationId: getSqsTrigger
      tags:
        - sqs_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: sqs trigger deleted
          content:
            application/json:
              schema:
                allOf: &ref_151
                  - type: object
                    properties: *ref_139
                    required: *ref_140
                type: object
                properties: &ref_152
                  queue_url:
                    type: string
                  aws_auth_resource_type:
                    type: string
                    enum: *ref_150
                  aws_resource_path:
                    type: string
                  message_attributes:
                    type: array
                    items:
                      type: string
                  server_id:
                    type: string
                  last_server_ping:
                    type: string
                    format: date-time
                  error:
                    type: string
                  enabled:
                    type: boolean
                  error_handler_path:
                    type: string
                  error_handler_args:
                    type: object
                    description: The arguments to pass to the script or flow
                    additionalProperties: *ref_22
                  retry:
                    type: object
                    properties: *ref_127
                required: &ref_153
                  - queue_url
                  - aws_resource_path
                  - enabled
                  - aws_auth_resource_type
  /w/{workspace}/sqs_triggers/list:
    get:
      summary: list sqs triggers
      operationId: listSqsTriggers
      tags:
        - sqs_trigger
      parameters:
        - required: true
          name: workspace
          in: path
          schema: *ref_0
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: path
          description: filter by path
          in: query
          schema:
            type: string
        - name: is_flow
          in: query
          schema:
            type: boolean
        - name: path_start
          in: query
          schema:
            type: string
      responses:
        '200':
          description: sqs trigger list
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf: *ref_151
                  type: object
                  properties: *ref_152
                  required: *ref_153
  /w/{workspace}/sqs_triggers/exists/{path}:
    get:
      summary: does sqs trigger exists
      operationId: existsSqsTrigger
      tags:
        - sqs_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: sqs trigger exists
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/sqs_triggers/setenabled/{path}:
    post:
      summary: set enabled sqs trigger
      operationId: setSqsTriggerEnabled
      tags:
        - sqs_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: updated sqs trigger enable
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                enabled:
                  type: boolean
              required:
                - enabled
      responses:
        '200':
          description: sqs trigger enabled set
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/sqs_triggers/test:
    post:
      summary: test sqs connection
      operationId: testSqsConnection
      tags:
        - sqs_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: test sqs connection
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                connection:
                  type: object
              required:
                - connection
      responses:
        '200':
          description: successfuly connected to sqs
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/mqtt_triggers/create:
    post:
      summary: create mqtt trigger
      operationId: createMqttTrigger
      tags:
        - mqtt_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: new mqtt trigger
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_294
                mqtt_resource_path:
                  type: string
                subscribe_topics:
                  type: array
                  items:
                    type: object
                    properties: &ref_154
                      qos:
                        type: string
                        enum: &ref_293
                          - qos0
                          - qos1
                          - qos2
                      topic:
                        type: string
                    required: &ref_155
                      - qos
                      - topic
                client_id:
                  type: string
                v3_config:
                  type: object
                  properties: &ref_156
                    clean_session:
                      type: boolean
                v5_config:
                  type: object
                  properties: &ref_157
                    clean_start:
                      type: boolean
                    topic_alias_maximum:
                      type: number
                    session_expiry_interval:
                      type: number
                client_version:
                  type: string
                  enum: &ref_158
                    - v3
                    - v5
                path:
                  type: string
                script_path:
                  type: string
                is_flow:
                  type: boolean
                enabled:
                  type: boolean
                error_handler_path:
                  type: string
                error_handler_args:
                  type: object
                  description: The arguments to pass to the script or flow
                  additionalProperties: *ref_22
                retry:
                  type: object
                  properties: *ref_127
              required: &ref_295
                - path
                - script_path
                - is_flow
                - subscribe_topics
                - mqtt_resource_path
      responses:
        '201':
          description: mqtt trigger created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/mqtt_triggers/update/{path}:
    post:
      summary: update mqtt trigger
      operationId: updateMqttTrigger
      tags:
        - mqtt_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: updated trigger
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_296
                mqtt_resource_path:
                  type: string
                subscribe_topics:
                  type: array
                  items:
                    type: object
                    properties: *ref_154
                    required: *ref_155
                client_id:
                  type: string
                v3_config:
                  type: object
                  properties: *ref_156
                v5_config:
                  type: object
                  properties: *ref_157
                client_version:
                  type: string
                  enum: *ref_158
                path:
                  type: string
                script_path:
                  type: string
                is_flow:
                  type: boolean
                enabled:
                  type: boolean
                error_handler_path:
                  type: string
                error_handler_args:
                  type: object
                  description: The arguments to pass to the script or flow
                  additionalProperties: *ref_22
                retry:
                  type: object
                  properties: *ref_127
              required: &ref_297
                - path
                - script_path
                - is_flow
                - enabled
                - subscribe_topics
                - mqtt_resource_path
      responses:
        '200':
          description: mqtt trigger updated
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/mqtt_triggers/delete/{path}:
    delete:
      summary: delete mqtt trigger
      operationId: deleteMqttTrigger
      tags:
        - mqtt_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: mqtt trigger deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/mqtt_triggers/get/{path}:
    get:
      summary: get mqtt trigger
      operationId: getMqttTrigger
      tags:
        - mqtt_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: mqtt trigger deleted
          content:
            application/json:
              schema:
                allOf: &ref_159
                  - type: object
                    properties: *ref_139
                    required: *ref_140
                type: object
                properties: &ref_160
                  mqtt_resource_path:
                    type: string
                  subscribe_topics:
                    type: array
                    items:
                      type: object
                      properties: *ref_154
                      required: *ref_155
                  v3_config:
                    type: object
                    properties: *ref_156
                  v5_config:
                    type: object
                    properties: *ref_157
                  client_id:
                    type: string
                  client_version:
                    type: string
                    enum: *ref_158
                  server_id:
                    type: string
                  last_server_ping:
                    type: string
                    format: date-time
                  error:
                    type: string
                  enabled:
                    type: boolean
                  error_handler_path:
                    type: string
                  error_handler_args:
                    type: object
                    description: The arguments to pass to the script or flow
                    additionalProperties: *ref_22
                  retry:
                    type: object
                    properties: *ref_127
                required: &ref_161
                  - enabled
                  - subscribe_topics
                  - mqtt_resource_path
  /w/{workspace}/mqtt_triggers/list:
    get:
      summary: list mqtt triggers
      operationId: listMqttTriggers
      tags:
        - mqtt_trigger
      parameters:
        - required: true
          name: workspace
          in: path
          schema: *ref_0
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: path
          description: filter by path
          in: query
          schema:
            type: string
        - name: is_flow
          in: query
          schema:
            type: boolean
        - name: path_start
          in: query
          schema:
            type: string
      responses:
        '200':
          description: mqtt trigger list
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf: *ref_159
                  type: object
                  properties: *ref_160
                  required: *ref_161
  /w/{workspace}/mqtt_triggers/exists/{path}:
    get:
      summary: does mqtt trigger exists
      operationId: existsMqttTrigger
      tags:
        - mqtt_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: mqtt trigger exists
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/mqtt_triggers/setenabled/{path}:
    post:
      summary: set enabled mqtt trigger
      operationId: setMqttTriggerEnabled
      tags:
        - mqtt_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: updated mqtt trigger enable
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                enabled:
                  type: boolean
              required:
                - enabled
      responses:
        '200':
          description: mqtt trigger enabled set
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/mqtt_triggers/test:
    post:
      summary: test mqtt connection
      operationId: testMqttConnection
      tags:
        - mqtt_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: test mqtt connection
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                connection:
                  type: object
              required:
                - connection
      responses:
        '200':
          description: successfully connected to mqtt
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/gcp_triggers/create:
    post:
      summary: create gcp trigger
      operationId: createGcpTrigger
      tags:
        - gcp_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: new gcp trigger
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_162
                gcp_resource_path:
                  type: string
                subscription_mode:
                  type: string
                  enum: &ref_167
                    - existing
                    - create_update
                  description: >-
                    The mode of subscription. 'existing' means using an existing
                    GCP subscription, while 'create_update' involves creating or
                    updating a new subscription.
                topic_id:
                  type: string
                subscription_id:
                  type: string
                base_endpoint:
                  type: string
                delivery_type:
                  type: string
                  enum: &ref_164
                    - push
                    - pull
                delivery_config:
                  type: object
                  properties: &ref_165
                    audience:
                      type: string
                    authenticate:
                      type: boolean
                  required: &ref_166
                    - authenticate
                    - base_endpoint
                path:
                  type: string
                script_path:
                  type: string
                is_flow:
                  type: boolean
                enabled:
                  type: boolean
                auto_acknowledge_msg:
                  type: boolean
                error_handler_path:
                  type: string
                error_handler_args:
                  type: object
                  description: The arguments to pass to the script or flow
                  additionalProperties: *ref_22
                retry:
                  type: object
                  properties: *ref_127
              required: &ref_163
                - path
                - script_path
                - is_flow
                - gcp_resource_path
                - topic_id
                - subscription_mode
      responses:
        '201':
          description: gcp trigger created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/gcp_triggers/update/{path}:
    post:
      summary: update gcp trigger
      operationId: updateGcpTrigger
      tags:
        - gcp_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: updated trigger
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: *ref_162
              required: *ref_163
      responses:
        '200':
          description: gcp trigger updated
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/gcp_triggers/delete/{path}:
    delete:
      summary: delete gcp trigger
      operationId: deleteGcpTrigger
      tags:
        - gcp_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: gcp trigger deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/gcp_triggers/get/{path}:
    get:
      summary: get gcp trigger
      operationId: getGcpTrigger
      tags:
        - gcp_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: gcp trigger deleted
          content:
            application/json:
              schema:
                allOf: &ref_168
                  - type: object
                    properties: *ref_139
                    required: *ref_140
                type: object
                properties: &ref_169
                  gcp_resource_path:
                    type: string
                  topic_id:
                    type: string
                  subscription_id:
                    type: string
                  server_id:
                    type: string
                  delivery_type:
                    type: string
                    enum: *ref_164
                  delivery_config:
                    type: object
                    properties: *ref_165
                    required: *ref_166
                  subscription_mode:
                    type: string
                    enum: *ref_167
                    description: >-
                      The mode of subscription. 'existing' means using an
                      existing GCP subscription, while 'create_update' involves
                      creating or updating a new subscription.
                  last_server_ping:
                    type: string
                    format: date-time
                  error:
                    type: string
                  enabled:
                    type: boolean
                  error_handler_path:
                    type: string
                  error_handler_args:
                    type: object
                    description: The arguments to pass to the script or flow
                    additionalProperties: *ref_22
                  retry:
                    type: object
                    properties: *ref_127
                required: &ref_170
                  - gcp_resource_path
                  - topic_id
                  - subscription_id
                  - enabled
                  - delivery_type
                  - subscription_mode
  /w/{workspace}/gcp_triggers/list:
    get:
      summary: list gcp triggers
      operationId: listGcpTriggers
      tags:
        - gcp_trigger
      parameters:
        - required: true
          name: workspace
          in: path
          schema: *ref_0
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: path
          description: filter by path
          in: query
          schema:
            type: string
        - name: is_flow
          in: query
          schema:
            type: boolean
        - name: path_start
          in: query
          schema:
            type: string
      responses:
        '200':
          description: gcp trigger list
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf: *ref_168
                  type: object
                  properties: *ref_169
                  required: *ref_170
  /w/{workspace}/gcp_triggers/exists/{path}:
    get:
      summary: does gcp trigger exists
      operationId: existsGcpTrigger
      tags:
        - gcp_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: gcp trigger exists
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/gcp_triggers/setenabled/{path}:
    post:
      summary: set enabled gcp trigger
      operationId: setGcpTriggerEnabled
      tags:
        - gcp_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: updated gcp trigger enable
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                enabled:
                  type: boolean
              required:
                - enabled
      responses:
        '200':
          description: gcp trigger enabled set
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/gcp_triggers/test:
    post:
      summary: test gcp connection
      operationId: testGcpConnection
      tags:
        - gcp_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: test gcp connection
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                connection:
                  type: object
              required:
                - connection
      responses:
        '200':
          description: try to connect to a gcp broker
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/gcp_triggers/subscriptions/delete/{path}:
    delete:
      summary: delete gcp trigger
      operationId: deleteGcpSubscription
      tags:
        - gcp_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: args to delete subscription from google cloud
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_300
                subscription_id:
                  type: string
              required: &ref_301
                - subscription_id
      responses:
        '200':
          description: gcp trigger deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/gcp_triggers/topics/list/{path}:
    get:
      summary: list all topics of google cloud service
      operationId: listGoogleTopics
      tags:
        - gcp_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: get all google topics
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /w/{workspace}/gcp_triggers/subscriptions/list/{path}:
    post:
      summary: list all subscription of a give topic from google cloud service
      operationId: listAllTGoogleTopicSubscriptions
      tags:
        - gcp_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: args to get subscription's topic from google cloud
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_298
                topic_id:
                  type: string
              required: &ref_299
                - topic_id
      responses:
        '200':
          description: get all google topic subscriptions name
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /w/{workspace}/postgres_triggers/postgres/version/{path}:
    get:
      summary: get postgres version
      operationId: getPostgresVersion
      tags:
        - postgres_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: postgres version
          content:
            application/json:
              schema:
                type: string
  /w/{workspace}/postgres_triggers/is_valid_postgres_configuration/{path}:
    get:
      summary: check if postgres configuration is set to logical
      operationId: isValidPostgresConfiguration
      tags:
        - postgres_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: boolean that indicates if postgres is set to logical level or not
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/postgres_triggers/create_template_script:
    post:
      summary: create template script
      operationId: createTemplateScript
      tags:
        - postgres_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: template script
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_309
                postgres_resource_path:
                  type: string
                relations:
                  type: array
                  items:
                    type: object
                    properties: &ref_172
                      schema_name:
                        type: string
                      table_to_track:
                        type: array
                        items: &ref_307
                          type: object
                          properties:
                            table_name:
                              type: string
                            columns_name:
                              type: array
                              items:
                                type: string
                            where_clause:
                              type: string
                          required:
                            - table_name
                    required: &ref_173
                      - schema_name
                      - table_to_track
                language:
                  type: string
                  enum: &ref_308
                    - Typescript
              required: &ref_310
                - postgres_resource_path
                - relations
                - language
      responses:
        '200':
          description: custom id to retrieve template script
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/postgres_triggers/get_template_script/{id}:
    get:
      summary: get template script
      operationId: getTemplateScript
      tags:
        - postgres_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: &ref_205
            type: string
      responses:
        '200':
          description: template script
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/postgres_triggers/slot/list/{path}:
    get:
      summary: list postgres replication slot
      operationId: listPostgresReplicationSlot
      tags:
        - postgres_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: list postgres slot
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_306
                    slot_name:
                      type: string
                    active:
                      type: boolean
  /w/{workspace}/postgres_triggers/slot/create/{path}:
    post:
      summary: create replication slot for postgres
      operationId: createPostgresReplicationSlot
      tags:
        - postgres_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: new slot for postgres
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_171
                name:
                  type: string
      responses:
        '201':
          description: slot created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/postgres_triggers/slot/delete/{path}:
    delete:
      summary: delete postgres replication slot
      operationId: deletePostgresReplicationSlot
      tags:
        - postgres_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: replication slot of postgres
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: *ref_171
      responses:
        '200':
          description: postgres replication slot deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/postgres_triggers/publication/list/{path}:
    get:
      summary: list postgres publication
      operationId: listPostgresPublication
      tags:
        - postgres_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: database publication list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /w/{workspace}/postgres_triggers/publication/get/{publication}/{path}:
    get:
      summary: get postgres publication
      operationId: getPostgresPublication
      tags:
        - postgres_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
        - name: publication
          in: path
          required: true
          description: The name of the publication
          schema: &ref_174
            type: string
      responses:
        '200':
          description: postgres publication get
          content:
            application/json:
              schema:
                type: object
                properties: &ref_175
                  table_to_track:
                    type: array
                    items:
                      type: object
                      properties: *ref_172
                      required: *ref_173
                  transaction_to_track:
                    type: array
                    items:
                      type: string
                required: &ref_176
                  - transaction_to_track
  /w/{workspace}/postgres_triggers/publication/create/{publication}/{path}:
    post:
      summary: create publication for postgres
      operationId: createPostgresPublication
      tags:
        - postgres_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
        - name: publication
          in: path
          required: true
          description: The name of the publication
          schema: *ref_174
      requestBody:
        description: new publication for postgres
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: *ref_175
              required: *ref_176
      responses:
        '201':
          description: publication created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/postgres_triggers/publication/update/{publication}/{path}:
    post:
      summary: update publication for postgres
      operationId: updatePostgresPublication
      tags:
        - postgres_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
        - name: publication
          in: path
          required: true
          description: The name of the publication
          schema: *ref_174
      requestBody:
        description: update publication for postgres
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: *ref_175
              required: *ref_176
      responses:
        '201':
          description: publication updated
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/postgres_triggers/publication/delete/{publication}/{path}:
    delete:
      summary: delete postgres publication
      operationId: deletePostgresPublication
      tags:
        - postgres_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
        - name: publication
          in: path
          required: true
          description: The name of the publication
          schema: *ref_174
      responses:
        '200':
          description: postgres publication deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/postgres_triggers/create:
    post:
      summary: create postgres trigger
      operationId: createPostgresTrigger
      tags:
        - postgres_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: new postgres trigger
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_311
                replication_slot_name:
                  type: string
                publication_name:
                  type: string
                path:
                  type: string
                script_path:
                  type: string
                is_flow:
                  type: boolean
                enabled:
                  type: boolean
                postgres_resource_path:
                  type: string
                publication:
                  type: object
                  properties: *ref_175
                  required: *ref_176
                error_handler_path:
                  type: string
                error_handler_args:
                  type: object
                  description: The arguments to pass to the script or flow
                  additionalProperties: *ref_22
                retry:
                  type: object
                  properties: *ref_127
              required: &ref_312
                - path
                - script_path
                - is_flow
                - enabled
                - postgres_resource_path
      responses:
        '201':
          description: postgres trigger created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/postgres_triggers/update/{path}:
    post:
      summary: update postgres trigger
      operationId: updatePostgresTrigger
      tags:
        - postgres_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: updated trigger
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_313
                replication_slot_name:
                  type: string
                publication_name:
                  type: string
                path:
                  type: string
                script_path:
                  type: string
                is_flow:
                  type: boolean
                enabled:
                  type: boolean
                postgres_resource_path:
                  type: string
                publication:
                  type: object
                  properties: *ref_175
                  required: *ref_176
                error_handler_path:
                  type: string
                error_handler_args:
                  type: object
                  description: The arguments to pass to the script or flow
                  additionalProperties: *ref_22
                retry:
                  type: object
                  properties: *ref_127
              required: &ref_314
                - path
                - script_path
                - is_flow
                - enabled
                - postgres_resource_path
                - publication_name
                - replication_slot_name
      responses:
        '200':
          description: postgres trigger updated
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/postgres_triggers/delete/{path}:
    delete:
      summary: delete postgres trigger
      operationId: deletePostgresTrigger
      tags:
        - postgres_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: postgres trigger deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/postgres_triggers/get/{path}:
    get:
      summary: get postgres trigger
      operationId: getPostgresTrigger
      tags:
        - postgres_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: get postgres trigger
          content:
            application/json:
              schema:
                allOf: &ref_177
                  - type: object
                    properties: *ref_139
                    required: *ref_140
                type: object
                properties: &ref_178
                  enabled:
                    type: boolean
                  postgres_resource_path:
                    type: string
                  publication_name:
                    type: string
                  server_id:
                    type: string
                  replication_slot_name:
                    type: string
                  error:
                    type: string
                  last_server_ping:
                    type: string
                    format: date-time
                  error_handler_path:
                    type: string
                  error_handler_args:
                    type: object
                    description: The arguments to pass to the script or flow
                    additionalProperties: *ref_22
                  retry:
                    type: object
                    properties: *ref_127
                required: &ref_179
                  - enabled
                  - postgres_resource_path
                  - replication_slot_name
                  - publication_name
  /w/{workspace}/postgres_triggers/list:
    get:
      summary: list postgres triggers
      operationId: listPostgresTriggers
      tags:
        - postgres_trigger
      parameters:
        - required: true
          name: workspace
          in: path
          schema: *ref_0
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: path
          description: filter by path
          in: query
          schema:
            type: string
        - name: is_flow
          in: query
          schema:
            type: boolean
        - name: path_start
          in: query
          schema:
            type: string
      responses:
        '200':
          description: postgres trigger list
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf: *ref_177
                  type: object
                  properties: *ref_178
                  required: *ref_179
  /w/{workspace}/postgres_triggers/exists/{path}:
    get:
      summary: does postgres trigger exists
      operationId: existsPostgresTrigger
      tags:
        - postgres_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: postgres trigger exists
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/postgres_triggers/setenabled/{path}:
    post:
      summary: set enabled postgres trigger
      operationId: setPostgresTriggerEnabled
      tags:
        - postgres_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: updated postgres trigger enable
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                enabled:
                  type: boolean
              required:
                - enabled
      responses:
        '200':
          description: postgres trigger enabled set
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/postgres_triggers/test:
    post:
      summary: test postgres connection
      operationId: testPostgresConnection
      tags:
        - postgres_trigger
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: test postgres connection
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                database:
                  type: string
              required:
                - database
      responses:
        '200':
          description: successfuly connected to postgres
          content:
            text/plain:
              schema:
                type: string
  /groups/list:
    get:
      summary: list instance groups
      operationId: listInstanceGroups
      tags:
        - group
      responses:
        '200':
          description: instance group list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_181
                    name:
                      type: string
                    summary:
                      type: string
                    emails:
                      type: array
                      items:
                        type: string
                  required: &ref_182
                    - name
  /groups/get/{name}:
    get:
      summary: get instance group
      operationId: getInstanceGroup
      tags:
        - group
      parameters:
        - name: name
          in: path
          required: true
          schema: *ref_180
      responses:
        '200':
          description: instance group
          content:
            application/json:
              schema:
                type: object
                properties: *ref_181
                required: *ref_182
  /groups/create:
    post:
      summary: create instance group
      operationId: createInstanceGroup
      tags:
        - group
      requestBody:
        description: create instance group
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                summary:
                  type: string
              required:
                - name
      responses:
        '200':
          description: instance group created
          content:
            text/plain:
              schema:
                type: string
  /groups/update/{name}:
    post:
      summary: update instance group
      operationId: updateInstanceGroup
      tags:
        - group
      parameters:
        - name: name
          in: path
          required: true
          schema: *ref_180
      requestBody:
        description: update instance group
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                new_summary:
                  type: string
              required:
                - new_summary
      responses:
        '200':
          description: instance group updated
          content:
            text/plain:
              schema:
                type: string
  /groups/delete/{name}:
    delete:
      summary: delete instance group
      operationId: deleteInstanceGroup
      tags:
        - group
      parameters:
        - name: name
          in: path
          required: true
          schema: *ref_180
      responses:
        '200':
          description: instance group deleted
          content:
            text/plain:
              schema:
                type: string
  /groups/adduser/{name}:
    post:
      summary: add user to instance group
      operationId: addUserToInstanceGroup
      tags:
        - group
      parameters:
        - name: name
          in: path
          required: true
          schema: *ref_180
      requestBody:
        description: user to add to instance group
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
              required:
                - email
      responses:
        '200':
          description: user added to instance group
          content:
            text/plain:
              schema:
                type: string
  /groups/removeuser/{name}:
    post:
      summary: remove user from instance group
      operationId: removeUserFromInstanceGroup
      tags:
        - group
      parameters:
        - name: name
          in: path
          required: true
          schema: *ref_180
      requestBody:
        description: user to remove from instance group
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
              required:
                - email
      responses:
        '200':
          description: user removed from instance group
          content:
            text/plain:
              schema:
                type: string
  /groups/export:
    get:
      summary: export instance groups
      operationId: exportInstanceGroups
      tags:
        - group
      responses:
        '200':
          description: exported instance groups
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_183
                    name:
                      type: string
                    summary:
                      type: string
                    emails:
                      type: array
                      items:
                        type: string
                    id:
                      type: string
                    scim_display_name:
                      type: string
                    external_id:
                      type: string
                  required: &ref_184
                    - name
  /groups/overwrite:
    post:
      summary: overwrite instance groups
      operationId: overwriteInstanceGroups
      tags:
        - group
      requestBody:
        description: overwrite instance groups
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                properties: *ref_183
                required: *ref_184
      responses:
        '200':
          description: success message
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/groups/list:
    get:
      summary: list groups
      operationId: listGroups
      tags:
        - group
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
      responses:
        '200':
          description: group list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_185
                    name:
                      type: string
                    summary:
                      type: string
                    members:
                      type: array
                      items:
                        type: string
                    extra_perms:
                      type: object
                      additionalProperties:
                        type: boolean
                  required: &ref_186
                    - name
  /w/{workspace}/groups/listnames:
    get:
      summary: list group names
      operationId: listGroupNames
      tags:
        - group
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: only_member_of
          in: query
          description: only list the groups the user is member of (default false)
          schema:
            type: boolean
      responses:
        '200':
          description: group list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /w/{workspace}/groups/create:
    post:
      summary: create group
      operationId: createGroup
      tags:
        - group
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: create group
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                summary:
                  type: string
              required:
                - name
      responses:
        '200':
          description: group created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/groups/update/{name}:
    post:
      summary: update group
      operationId: updateGroup
      tags:
        - group
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: name
          in: path
          required: true
          schema: *ref_180
      requestBody:
        description: updated group
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                summary:
                  type: string
      responses:
        '200':
          description: group updated
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/groups/delete/{name}:
    delete:
      summary: delete group
      operationId: deleteGroup
      tags:
        - group
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: name
          in: path
          required: true
          schema: *ref_180
      responses:
        '200':
          description: group deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/groups/get/{name}:
    get:
      summary: get group
      operationId: getGroup
      tags:
        - group
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: name
          in: path
          required: true
          schema: *ref_180
      responses:
        '200':
          description: group
          content:
            application/json:
              schema:
                type: object
                properties: *ref_185
                required: *ref_186
  /w/{workspace}/groups/adduser/{name}:
    post:
      summary: add user to group
      operationId: addUserToGroup
      tags:
        - group
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: name
          in: path
          required: true
          schema: *ref_180
      requestBody:
        description: added user to group
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                username:
                  type: string
      responses:
        '200':
          description: user added to group
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/groups/removeuser/{name}:
    post:
      summary: remove user to group
      operationId: removeUserToGroup
      tags:
        - group
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: name
          in: path
          required: true
          schema: *ref_180
      requestBody:
        description: added user to group
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                username:
                  type: string
      responses:
        '200':
          description: user removed from group
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/folders/list:
    get:
      summary: list folders
      operationId: listFolders
      tags:
        - folder
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
      responses:
        '200':
          description: folder list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_187
                    name:
                      type: string
                    owners:
                      type: array
                      items:
                        type: string
                    extra_perms:
                      type: object
                      additionalProperties:
                        type: boolean
                    summary:
                      type: string
                    created_by:
                      type: string
                    edited_at:
                      type: string
                      format: date-time
                  required: &ref_188
                    - name
                    - owners
                    - extra_perms
  /w/{workspace}/folders/listnames:
    get:
      summary: list folder names
      operationId: listFolderNames
      tags:
        - folder
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: only_member_of
          in: query
          description: only list the folders the user is member of (default false)
          schema:
            type: boolean
      responses:
        '200':
          description: folder list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /w/{workspace}/folders/create:
    post:
      summary: create folder
      operationId: createFolder
      tags:
        - folder
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: create folder
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                summary:
                  type: string
                owners:
                  type: array
                  items:
                    type: string
                extra_perms:
                  additionalProperties:
                    type: boolean
              required:
                - name
      responses:
        '200':
          description: folder created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/folders/update/{name}:
    post:
      summary: update folder
      operationId: updateFolder
      tags:
        - folder
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: name
          in: path
          required: true
          schema: *ref_180
      requestBody:
        description: update folder
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                summary:
                  type: string
                owners:
                  type: array
                  items:
                    type: string
                extra_perms:
                  additionalProperties:
                    type: boolean
      responses:
        '200':
          description: folder updated
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/folders/delete/{name}:
    delete:
      summary: delete folder
      operationId: deleteFolder
      tags:
        - folder
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: name
          in: path
          required: true
          schema: *ref_180
      responses:
        '200':
          description: folder deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/folders/get/{name}:
    get:
      summary: get folder
      operationId: getFolder
      tags:
        - folder
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: name
          in: path
          required: true
          schema: *ref_180
      responses:
        '200':
          description: folder
          content:
            application/json:
              schema:
                type: object
                properties: *ref_187
                required: *ref_188
  /w/{workspace}/folders/exists/{name}:
    get:
      summary: exists folder
      operationId: existsFolder
      tags:
        - folder
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: name
          in: path
          required: true
          schema: *ref_180
      responses:
        '200':
          description: folder exists
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/folders/getusage/{name}:
    get:
      summary: get folder usage
      operationId: getFolderUsage
      tags:
        - folder
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: name
          in: path
          required: true
          schema: *ref_180
      responses:
        '200':
          description: folder
          content:
            application/json:
              schema:
                type: object
                properties:
                  scripts:
                    type: number
                  flows:
                    type: number
                  apps:
                    type: number
                  resources:
                    type: number
                  variables:
                    type: number
                  schedules:
                    type: number
                required:
                  - scripts
                  - flows
                  - apps
                  - resources
                  - variables
                  - schedules
  /w/{workspace}/folders/addowner/{name}:
    post:
      summary: add owner to folder
      operationId: addOwnerToFolder
      tags:
        - folder
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: name
          in: path
          required: true
          schema: *ref_180
      requestBody:
        description: owner user to folder
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                owner:
                  type: string
              required:
                - owner
      responses:
        '200':
          description: owner added to folder
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/folders/removeowner/{name}:
    post:
      summary: remove owner to folder
      operationId: removeOwnerToFolder
      tags:
        - folder
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: name
          in: path
          required: true
          schema: *ref_180
      requestBody:
        description: added owner to folder
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                owner:
                  type: string
                write:
                  type: boolean
              required:
                - owner
      responses:
        '200':
          description: owner removed from folder
          content:
            text/plain:
              schema:
                type: string
  /workers/list:
    get:
      summary: list workers
      operationId: listWorkers
      x-mcp-tool: true
      tags:
        - worker
      parameters:
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: ping_since
          in: query
          required: false
          description: >-
            number of seconds the worker must have had a last ping more recent
            of (default to 300)
          schema:
            type: integer
      responses:
        '200':
          description: a list of workers
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_323
                    worker:
                      type: string
                    worker_instance:
                      type: string
                    last_ping:
                      type: number
                    started_at:
                      type: string
                      format: date-time
                    ip:
                      type: string
                    jobs_executed:
                      type: integer
                    custom_tags:
                      type: array
                      items:
                        type: string
                    worker_group:
                      type: string
                    wm_version:
                      type: string
                    last_job_id:
                      type: string
                    last_job_workspace_id:
                      type: string
                    occupancy_rate:
                      type: number
                    occupancy_rate_15s:
                      type: number
                    occupancy_rate_5m:
                      type: number
                    occupancy_rate_30m:
                      type: number
                    memory:
                      type: number
                    vcpus:
                      type: number
                    memory_usage:
                      type: number
                    wm_memory_usage:
                      type: number
                  required: &ref_324
                    - worker
                    - worker_instance
                    - ping_at
                    - started_at
                    - ip
                    - jobs_executed
                    - worker_group
                    - wm_version
  /workers/exists_worker_with_tag:
    get:
      summary: exists worker with tag
      operationId: existsWorkerWithTag
      tags:
        - worker
      parameters:
        - name: tag
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: whether a worker with the tag exists
          content:
            application/json:
              schema:
                type: boolean
  /workers/queue_metrics:
    get:
      summary: get queue metrics
      operationId: getQueueMetrics
      tags:
        - worker
      responses:
        '200':
          description: metrics
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    values:
                      type: array
                      items:
                        type: object
                        properties:
                          created_at:
                            type: string
                          value:
                            type: number
                        required:
                          - created_at
                          - value
                  required:
                    - id
                    - values
  /workers/queue_counts:
    get:
      summary: get counts of jobs waiting for an executor per tag
      operationId: getCountsOfJobsWaitingPerTag
      tags:
        - worker
      responses:
        '200':
          description: queue counts
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: integer
  /configs/list_worker_groups:
    get:
      summary: list worker groups
      operationId: listWorkerGroups
      tags:
        - config
      responses:
        '200':
          description: a list of worker group configs
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                    config: {}
                  required:
                    - name
                    - config
  /configs/get/{name}:
    get:
      summary: get config
      operationId: get config
      tags:
        - config
      parameters:
        - name: name
          in: path
          required: true
          schema: *ref_180
      responses:
        '200':
          description: a config
          content:
            application/json:
              schema:
                type: object
                nullable: true
                properties: &ref_242
                  alerts:
                    type: array
                    items:
                      type: object
                      properties: &ref_240
                        name:
                          type: string
                        tags_to_monitor:
                          type: array
                          items:
                            type: string
                        jobs_num_threshold:
                          type: integer
                        alert_cooldown_seconds:
                          type: integer
                        alert_time_threshold_seconds:
                          type: integer
                      required: &ref_241
                        - name
                        - tags_to_monitor
                        - jobs_num_threshold
                        - alert_cooldown_seconds
                        - alert_time_threshold_seconds
  /configs/update/{name}:
    post:
      summary: Update config
      operationId: updateConfig
      tags:
        - config
      parameters:
        - name: name
          in: path
          required: true
          schema: *ref_180
      requestBody:
        description: worker group
        required: true
        content:
          application/json:
            schema: {}
      responses:
        '200':
          description: Update a worker group
          content:
            text/plain:
              schema:
                type: string
    delete:
      summary: Delete Config
      operationId: deleteConfig
      tags:
        - config
      parameters:
        - name: name
          in: path
          required: true
          schema: *ref_180
      responses:
        '200':
          description: Delete config
          content:
            text/plain:
              schema:
                type: string
  /configs/list:
    get:
      summary: list configs
      operationId: listConfigs
      tags:
        - config
      responses:
        '200':
          description: list of configs
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_365
                    name:
                      type: string
                    config:
                      type: object
                  required: &ref_366
                    - name
  /configs/list_autoscaling_events/{worker_group}:
    get:
      summary: List autoscaling events
      operationId: listAutoscalingEvents
      tags:
        - config
      parameters:
        - name: worker_group
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: List of autoscaling events
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_369
                    id:
                      type: integer
                      format: int64
                    worker_group:
                      type: string
                    event_type:
                      type: string
                    desired_workers:
                      type: integer
                    reason:
                      type: string
                    applied_at:
                      type: string
                      format: date-time
  /configs/list_available_python_versions:
    get:
      summary: Get currently available python versions provided by UV.
      operationId: listAvailablePythonVersions
      tags:
        - config
      responses:
        '200':
          description: List of python versions
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /agent_workers/create_agent_token:
    post:
      summary: create agent token
      operationId: createAgentToken
      tags:
        - agent_workers
      requestBody:
        description: agent token
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                worker_group:
                  type: string
                tags:
                  type: array
                  items:
                    type: string
                exp:
                  type: integer
              required:
                - worker_group
                - tags
                - exp
      responses:
        '200':
          description: agent token created
          content:
            application/json:
              schema:
                type: string
  /agent_workers/blacklist_token:
    post:
      summary: blacklist agent token (requires super admin)
      operationId: blacklistAgentToken
      tags:
        - agent_workers
      requestBody:
        description: token to blacklist
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                token:
                  type: string
                  description: The agent token to blacklist
                expires_at:
                  type: string
                  format: date-time
                  description: Optional expiration date for the blacklist entry
              required:
                - token
      responses:
        '200':
          description: token blacklisted successfully
  /agent_workers/remove_blacklist_token:
    post:
      summary: remove agent token from blacklist (requires super admin)
      operationId: removeBlacklistAgentToken
      tags:
        - agent_workers
      requestBody:
        description: token to remove from blacklist
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                token:
                  type: string
                  description: The agent token to remove from blacklist
              required:
                - token
      responses:
        '200':
          description: token removed from blacklist successfully
  /agent_workers/list_blacklisted_tokens:
    get:
      summary: list blacklisted agent tokens (requires super admin)
      operationId: listBlacklistedAgentTokens
      tags:
        - agent_workers
      parameters:
        - name: include_expired
          in: query
          description: Whether to include expired blacklisted tokens
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: list of blacklisted tokens
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    token:
                      type: string
                      description: The blacklisted token (without prefix)
                    expires_at:
                      type: string
                      format: date-time
                      description: When the blacklist entry expires
                    blacklisted_at:
                      type: string
                      format: date-time
                      description: When the token was blacklisted
                    blacklisted_by:
                      type: string
                      description: Email of the user who blacklisted the token
                  required:
                    - token
                    - expires_at
                    - blacklisted_at
                    - blacklisted_by
  /w/{workspace}/acls/get/{kind}/{path}:
    get:
      summary: get granular acls
      operationId: getGranularAcls
      tags:
        - granular_acl
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
        - name: kind
          in: path
          required: true
          schema:
            type: string
            enum:
              - script
              - group_
              - resource
              - schedule
              - variable
              - flow
              - folder
              - app
              - raw_app
              - http_trigger
              - websocket_trigger
              - kafka_trigger
              - nats_trigger
              - postgres_trigger
              - mqtt_trigger
              - gcp_trigger
              - sqs_trigger
      responses:
        '200':
          description: acls
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: boolean
  /w/{workspace}/acls/add/{kind}/{path}:
    post:
      summary: add granular acls
      operationId: addGranularAcls
      tags:
        - granular_acl
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
        - name: kind
          in: path
          required: true
          schema:
            type: string
            enum:
              - script
              - group_
              - resource
              - schedule
              - variable
              - flow
              - folder
              - app
              - raw_app
              - http_trigger
              - websocket_trigger
              - kafka_trigger
              - nats_trigger
              - postgres_trigger
              - mqtt_trigger
              - gcp_trigger
              - sqs_trigger
      requestBody:
        description: acl to add
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                owner:
                  type: string
                write:
                  type: boolean
              required:
                - owner
      responses:
        '200':
          description: granular acl added
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/acls/remove/{kind}/{path}:
    post:
      summary: remove granular acls
      operationId: removeGranularAcls
      tags:
        - granular_acl
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
        - name: kind
          in: path
          required: true
          schema:
            type: string
            enum:
              - script
              - group_
              - resource
              - schedule
              - variable
              - flow
              - folder
              - app
              - raw_app
              - http_trigger
              - websocket_trigger
              - kafka_trigger
              - nats_trigger
              - postgres_trigger
              - mqtt_trigger
              - gcp_trigger
              - sqs_trigger
      requestBody:
        description: acl to add
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                owner:
                  type: string
              required:
                - owner
      responses:
        '200':
          description: granular acl removed
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/capture/set_config:
    post:
      summary: set capture config
      operationId: setCaptureConfig
      tags:
        - capture
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: capture config
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                trigger_kind:
                  type: string
                  enum: &ref_189
                    - webhook
                    - http
                    - websocket
                    - kafka
                    - email
                    - nats
                    - postgres
                    - sqs
                    - mqtt
                    - gcp
                path:
                  type: string
                is_flow:
                  type: boolean
                trigger_config:
                  type: object
              required:
                - trigger_kind
                - path
                - is_flow
      responses:
        '200':
          description: capture config set
          content:
            application/json:
              schema:
                type: object
  /w/{workspace}/capture/ping_config/{trigger_kind}/{runnable_kind}/{path}:
    post:
      summary: ping capture config
      operationId: pingCaptureConfig
      tags:
        - capture
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: trigger_kind
          in: path
          required: true
          schema:
            type: string
            enum: *ref_189
        - name: runnable_kind
          in: path
          required: true
          schema: *ref_80
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: capture config pinged
  /w/{workspace}/capture/get_configs/{runnable_kind}/{path}:
    get:
      summary: get capture configs for a script or flow
      operationId: getCaptureConfigs
      tags:
        - capture
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: runnable_kind
          in: path
          required: true
          schema: *ref_80
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: capture configs for a script or flow
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_370
                    trigger_config: {}
                    trigger_kind:
                      type: string
                      enum: *ref_189
                    error:
                      type: string
                    last_server_ping:
                      type: string
                      format: date-time
                  required: &ref_371
                    - trigger_kind
  /w/{workspace}/capture/list/{runnable_kind}/{path}:
    get:
      summary: list captures for a script or flow
      operationId: listCaptures
      tags:
        - capture
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: runnable_kind
          in: path
          required: true
          schema: *ref_80
        - name: path
          in: path
          required: true
          schema: *ref_31
        - name: trigger_kind
          in: query
          schema:
            type: string
            enum: *ref_189
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
      responses:
        '200':
          description: list of captures for a script or flow
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_190
                    trigger_kind:
                      type: string
                      enum: *ref_189
                    main_args: {}
                    preprocessor_args: {}
                    id:
                      type: integer
                    created_at:
                      type: string
                      format: date-time
                  required: &ref_191
                    - trigger_kind
                    - main_args
                    - preprocessor_args
                    - id
                    - created_at
  /w/{workspace}/capture/move/{runnable_kind}/{path}:
    post:
      summary: move captures and configs for a script or flow
      operationId: moveCapturesAndConfigs
      tags:
        - capture
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: runnable_kind
          in: path
          required: true
          schema: *ref_80
        - name: path
          in: path
          required: true
          schema: *ref_31
      requestBody:
        description: move captures and configs to a new path
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                new_path:
                  type: string
      responses:
        '200':
          description: captures and configs moved
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/capture/{id}:
    get:
      summary: get a capture
      operationId: getCapture
      tags:
        - capture
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: capture
          content:
            application/json:
              schema:
                type: object
                properties: *ref_190
                required: *ref_191
    delete:
      summary: delete a capture
      operationId: deleteCapture
      tags:
        - capture
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: capture deleted
  /w/{workspace}/favorites/star:
    post:
      summary: star item
      operationId: star
      tags:
        - favorite
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                path:
                  type: string
                favorite_kind:
                  type: string
                  enum:
                    - flow
                    - app
                    - script
                    - raw_app
      responses:
        '200':
          description: star item
  /w/{workspace}/favorites/unstar:
    post:
      summary: unstar item
      operationId: unstar
      tags:
        - favorite
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                path:
                  type: string
                favorite_kind:
                  type: string
                  enum:
                    - flow
                    - app
                    - script
                    - raw_app
      responses:
        '200':
          description: unstar item
  /w/{workspace}/inputs/history:
    get:
      summary: List Inputs used in previously completed jobs
      operationId: getInputHistory
      tags:
        - input
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: runnable_id
          in: query
          schema: &ref_192
            type: string
        - name: runnable_type
          in: query
          schema: &ref_193
            type: string
            enum: &ref_248
              - ScriptHash
              - ScriptPath
              - FlowPath
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: args
          description: >-
            filter on jobs containing those args as a json subset (@> in
            postgres)
          in: query
          schema: *ref_105
        - name: include_preview
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: Input history for completed jobs
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_194
                    id:
                      type: string
                    name:
                      type: string
                    created_by:
                      type: string
                    created_at:
                      type: string
                      format: date-time
                    is_public:
                      type: boolean
                    success:
                      type: boolean
                  required: &ref_195
                    - id
                    - name
                    - args
                    - created_by
                    - created_at
                    - is_public
  /w/{workspace}/inputs/{jobOrInputId}/args:
    get:
      summary: Get args from history or saved input
      operationId: getArgsFromHistoryOrSavedInput
      tags:
        - input
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: jobOrInputId
          in: path
          required: true
          schema:
            type: string
        - name: input
          in: query
          schema:
            type: boolean
        - name: allow_large
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: args
          content:
            application/json:
              schema: {}
  /w/{workspace}/inputs/list:
    get:
      summary: List saved Inputs for a Runnable
      operationId: listInputs
      tags:
        - input
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: runnable_id
          in: query
          schema: *ref_192
        - name: runnable_type
          in: query
          schema: *ref_193
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
      responses:
        '200':
          description: Saved Inputs for a Runnable
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: *ref_194
                  required: *ref_195
  /w/{workspace}/inputs/create:
    post:
      summary: Create an Input for future use in a script or flow
      operationId: createInput
      tags:
        - input
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: runnable_id
          in: query
          schema: *ref_192
        - name: runnable_type
          in: query
          schema: *ref_193
      requestBody:
        description: Input
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_244
                name:
                  type: string
                args:
                  type: object
              required: &ref_245
                - name
                - args
                - created_by
      responses:
        '201':
          description: Input created
          content:
            text/plain:
              schema:
                type: string
                format: uuid
  /w/{workspace}/inputs/update:
    post:
      summary: Update an Input
      operationId: updateInput
      tags:
        - input
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: UpdateInput
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_246
                id:
                  type: string
                name:
                  type: string
                is_public:
                  type: boolean
              required: &ref_247
                - id
                - name
                - is_public
      responses:
        '201':
          description: Input updated
          content:
            text/plain:
              schema:
                type: string
                format: uuid
  /w/{workspace}/inputs/delete/{input}:
    post:
      summary: Delete a Saved Input
      operationId: deleteInput
      tags:
        - input
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: input
          in: path
          required: true
          schema: &ref_213
            type: string
      responses:
        '200':
          description: Input deleted
          content:
            text/plain:
              schema:
                type: string
                format: uuid
  /w/{workspace}/job_helpers/duckdb_connection_settings:
    post:
      summary: >-
        Converts an S3 resource to the set of instructions necessary to connect
        DuckDB to an S3 bucket
      operationId: duckdbConnectionSettings
      tags:
        - helpers
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: S3 resource to connect to
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                s3_resource:
                  type: object
                  properties: &ref_196
                    bucket:
                      type: string
                    region:
                      type: string
                    endPoint:
                      type: string
                    useSSL:
                      type: boolean
                    accessKey:
                      type: string
                    secretKey:
                      type: string
                    pathStyle:
                      type: boolean
                  required: &ref_197
                    - bucket
                    - region
                    - endPoint
                    - useSSL
                    - pathStyle
      responses:
        '200':
          description: Connection settings
          content:
            application/json:
              schema:
                type: object
                properties:
                  connection_settings_str:
                    type: string
  /w/{workspace}/job_helpers/v2/duckdb_connection_settings:
    post:
      summary: >-
        Converts an S3 resource to the set of instructions necessary to connect
        DuckDB to an S3 bucket
      operationId: duckdbConnectionSettingsV2
      tags:
        - helpers
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: >-
          S3 resource path to use to generate the connection settings. If empty,
          the S3 resource defined in the workspace settings will be used
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                s3_resource_path:
                  type: string
      responses:
        '200':
          description: Connection settings
          content:
            application/json:
              schema:
                type: object
                properties:
                  connection_settings_str:
                    type: string
                  azure_container_path:
                    type: string
                required:
                  - connection_settings_str
  /w/{workspace}/job_helpers/polars_connection_settings:
    post:
      summary: >-
        Converts an S3 resource to the set of arguments necessary to connect
        Polars to an S3 bucket
      operationId: polarsConnectionSettings
      tags:
        - helpers
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: S3 resource to connect to
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                s3_resource:
                  type: object
                  properties: *ref_196
                  required: *ref_197
      responses:
        '200':
          description: Connection settings
          content:
            application/json:
              schema:
                type: object
                properties:
                  endpoint_url:
                    type: string
                  key:
                    type: string
                  secret:
                    type: string
                  use_ssl:
                    type: boolean
                  cache_regions:
                    type: boolean
                  client_kwargs:
                    type: object
                    properties: &ref_198
                      region_name:
                        type: string
                    required: &ref_199
                      - region_name
                required:
                  - endpoint_url
                  - use_ssl
                  - cache_regions
                  - client_kwargs
  /w/{workspace}/job_helpers/v2/polars_connection_settings:
    post:
      summary: >-
        Converts an S3 resource to the set of arguments necessary to connect
        Polars to an S3 bucket
      operationId: polarsConnectionSettingsV2
      tags:
        - helpers
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: >-
          S3 resource path to use to generate the connection settings. If empty,
          the S3 resource defined in the workspace settings will be used
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                s3_resource_path:
                  type: string
      responses:
        '200':
          description: Connection settings
          content:
            application/json:
              schema:
                type: object
                properties:
                  s3fs_args:
                    type: object
                    properties:
                      endpoint_url:
                        type: string
                      key:
                        type: string
                      secret:
                        type: string
                      use_ssl:
                        type: boolean
                      cache_regions:
                        type: boolean
                      client_kwargs:
                        type: object
                        properties: *ref_198
                        required: *ref_199
                    required:
                      - endpoint_url
                      - use_ssl
                      - cache_regions
                      - client_kwargs
                  storage_options:
                    type: object
                    properties:
                      aws_endpoint_url:
                        type: string
                      aws_access_key_id:
                        type: string
                      aws_secret_access_key:
                        type: string
                      aws_region:
                        type: string
                      aws_allow_http:
                        type: string
                    required:
                      - aws_endpoint_url
                      - aws_region
                      - aws_allow_http
                required:
                  - s3fs_args
                  - storage_options
  /w/{workspace}/job_helpers/v2/s3_resource_info:
    post:
      summary: >-
        Returns the s3 resource associated to the provided path, or the
        workspace default S3 resource
      operationId: s3ResourceInfo
      tags:
        - helpers
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: >-
          S3 resource path to use. If empty, the S3 resource defined in the
          workspace settings will be used
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                s3_resource_path:
                  type: string
      responses:
        '200':
          description: Connection settings
          content:
            application/json:
              schema:
                type: object
                properties: *ref_196
                required: *ref_197
  /w/{workspace}/job_helpers/test_connection:
    get:
      summary: Test connection to the workspace object storage
      operationId: datasetStorageTestConnection
      tags:
        - helpers
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: storage
          in: query
          schema:
            type: string
      responses:
        '200':
          description: Connection settings
          content:
            application/json:
              schema: {}
  /w/{workspace}/job_helpers/list_stored_files:
    get:
      summary: List the file keys available in a workspace object storage
      operationId: listStoredFiles
      tags:
        - helpers
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: max_keys
          in: query
          required: true
          schema:
            type: integer
        - name: marker
          in: query
          schema:
            type: string
        - name: prefix
          in: query
          schema:
            type: string
        - name: storage
          in: query
          schema:
            type: string
      responses:
        '200':
          description: List of file keys
          content:
            application/json:
              schema:
                type: object
                properties:
                  next_marker:
                    type: string
                  windmill_large_files:
                    type: array
                    items:
                      type: object
                      properties: &ref_344
                        s3:
                          type: string
                      required: &ref_345
                        - s3
                  restricted_access:
                    type: boolean
                required:
                  - windmill_large_files
  /w/{workspace}/job_helpers/load_file_metadata:
    get:
      summary: Load metadata of the file
      operationId: loadFileMetadata
      tags:
        - helpers
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: file_key
          in: query
          required: true
          schema:
            type: string
        - name: storage
          in: query
          schema:
            type: string
      responses:
        '200':
          description: FileMetadata
          content:
            application/json:
              schema:
                type: object
                properties: &ref_346
                  mime_type:
                    type: string
                  size_in_bytes:
                    type: integer
                  last_modified:
                    type: string
                    format: date-time
                  expires:
                    type: string
                    format: date-time
                  version_id:
                    type: string
  /w/{workspace}/job_helpers/load_file_preview:
    get:
      summary: Load a preview of the file
      operationId: loadFilePreview
      tags:
        - helpers
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: file_key
          in: query
          required: true
          schema:
            type: string
        - name: file_size_in_bytes
          in: query
          schema:
            type: integer
        - name: file_mime_type
          in: query
          schema:
            type: string
        - name: csv_separator
          in: query
          schema:
            type: string
        - name: csv_has_header
          in: query
          schema:
            type: boolean
        - name: read_bytes_from
          in: query
          schema:
            type: integer
        - name: read_bytes_length
          in: query
          schema:
            type: integer
        - name: storage
          in: query
          schema:
            type: string
      responses:
        '200':
          description: FilePreview
          content:
            application/json:
              schema:
                type: object
                properties: &ref_347
                  msg:
                    type: string
                  content:
                    type: string
                  content_type:
                    type: string
                    enum:
                      - RawText
                      - Csv
                      - Parquet
                      - Unknown
                required: &ref_348
                  - content_type
  /w/{workspace}/job_helpers/load_parquet_preview/{path}:
    get:
      summary: Load a preview of a parquet file
      operationId: loadParquetPreview
      tags:
        - helpers
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
        - name: offset
          in: query
          schema:
            type: number
        - name: limit
          in: query
          schema:
            type: number
        - name: sort_col
          in: query
          schema:
            type: string
        - name: sort_desc
          in: query
          schema:
            type: boolean
        - name: search_col
          in: query
          schema:
            type: string
        - name: search_term
          in: query
          schema:
            type: string
        - name: storage
          in: query
          schema:
            type: string
      responses:
        '200':
          description: Parquet Preview
          content:
            application/json: {}
  /w/{workspace}/job_helpers/load_table_count/{path}:
    get:
      summary: Load the table row count
      operationId: loadTableRowCount
      tags:
        - helpers
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
        - name: search_col
          in: query
          schema:
            type: string
        - name: search_term
          in: query
          schema:
            type: string
        - name: storage
          in: query
          schema:
            type: string
      responses:
        '200':
          description: Table count
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: number
  /w/{workspace}/job_helpers/load_csv_preview/{path}:
    get:
      summary: Load a preview of a csv file
      operationId: loadCsvPreview
      tags:
        - helpers
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_31
        - name: offset
          in: query
          schema:
            type: number
        - name: limit
          in: query
          schema:
            type: number
        - name: sort_col
          in: query
          schema:
            type: string
        - name: sort_desc
          in: query
          schema:
            type: boolean
        - name: search_col
          in: query
          schema:
            type: string
        - name: search_term
          in: query
          schema:
            type: string
        - name: storage
          in: query
          schema:
            type: string
        - name: csv_separator
          in: query
          schema:
            type: string
      responses:
        '200':
          description: Csv Preview
          content:
            application/json: {}
  /w/{workspace}/job_helpers/delete_s3_file:
    delete:
      summary: Permanently delete file from S3
      operationId: deleteS3File
      tags:
        - helpers
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: file_key
          in: query
          required: true
          schema:
            type: string
        - name: storage
          in: query
          schema:
            type: string
      responses:
        '200':
          description: Confirmation
          content:
            application/json:
              schema: {}
  /w/{workspace}/job_helpers/move_s3_file:
    get:
      summary: Move a S3 file from one path to the other within the same bucket
      operationId: moveS3File
      tags:
        - helpers
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: src_file_key
          in: query
          required: true
          schema:
            type: string
        - name: dest_file_key
          in: query
          required: true
          schema:
            type: string
        - name: storage
          in: query
          schema:
            type: string
      responses:
        '200':
          description: Confirmation
          content:
            application/json:
              schema: {}
  /w/{workspace}/job_helpers/upload_s3_file:
    post:
      summary: Upload file to S3 bucket
      operationId: fileUpload
      tags:
        - helpers
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: file_key
          in: query
          required: false
          schema:
            type: string
        - name: file_extension
          in: query
          required: false
          schema:
            type: string
        - name: s3_resource_path
          in: query
          required: false
          schema:
            type: string
        - name: resource_type
          in: query
          required: false
          schema:
            type: string
        - name: storage
          in: query
          schema:
            type: string
        - name: content_type
          in: query
          schema:
            type: string
        - name: content_disposition
          in: query
          schema:
            type: string
      requestBody:
        description: File content
        required: true
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: File upload status
          content:
            application/json:
              schema:
                type: object
                properties:
                  file_key:
                    type: string
                required:
                  - file_key
  /w/{workspace}/job_helpers/download_s3_file:
    get:
      summary: Download file from S3 bucket
      operationId: fileDownload
      tags:
        - helpers
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: file_key
          in: query
          required: true
          schema:
            type: string
        - name: s3_resource_path
          in: query
          required: false
          schema:
            type: string
        - name: resource_type
          in: query
          required: false
          schema:
            type: string
        - name: storage
          in: query
          schema:
            type: string
      responses:
        '200':
          description: Chunk of the downloaded file
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
  /w/{workspace}/job_helpers/download_s3_parquet_file_as_csv:
    get:
      summary: Download file to S3 bucket
      operationId: fileDownloadParquetAsCsv
      tags:
        - helpers
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: file_key
          in: query
          required: true
          schema:
            type: string
        - name: s3_resource_path
          in: query
          required: false
          schema:
            type: string
        - name: resource_type
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: The downloaded file
          content:
            text/csv:
              schema:
                type: string
  /w/{workspace}/job_metrics/get/{id}:
    post:
      summary: get job metrics
      operationId: getJobMetrics
      tags:
        - metrics
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
      requestBody:
        description: parameters for statistics retrieval
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                timeseries_max_datapoints:
                  type: integer
                from_timestamp:
                  type: string
                  format: date-time
                to_timestamp:
                  type: string
                  format: date-time
      responses:
        '200':
          description: job details
          content:
            application/json:
              schema:
                type: object
                properties:
                  metrics_metadata:
                    type: array
                    items:
                      type: object
                      properties: &ref_349
                        id:
                          type: string
                        name:
                          type: string
                      required: &ref_350
                        - id
                  scalar_metrics:
                    type: array
                    items:
                      type: object
                      properties: &ref_351
                        metric_id:
                          type: string
                        value:
                          type: number
                      required: &ref_352
                        - id
                        - value
                  timeseries_metrics:
                    type: array
                    items:
                      type: object
                      properties: &ref_353
                        metric_id:
                          type: string
                        values:
                          type: array
                          items:
                            type: object
                            properties: &ref_355
                              timestamp:
                                type: string
                                format: date-time
                              value:
                                type: number
                            required: &ref_356
                              - timestamp
                              - value
                      required: &ref_354
                        - id
                        - values
  /w/{workspace}/job_metrics/set_progress/{id}:
    post:
      summary: set job metrics
      operationId: setJobProgress
      tags:
        - metrics
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
      requestBody:
        description: parameters for statistics retrieval
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                percent:
                  type: integer
                flow_job_id:
                  type: string
                  format: uuid
      responses:
        '200':
          description: Job progress updated
          content:
            application/json:
              schema: {}
  /w/{workspace}/job_metrics/get_progress/{id}:
    get:
      summary: get job progress
      operationId: getJobProgress
      tags:
        - metrics
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_123
      responses:
        '200':
          description: job progress between 0 and 99
          content:
            application/json:
              schema:
                type: integer
  /service_logs/list_files:
    get:
      summary: list log files ordered by timestamp
      operationId: listLogFiles
      tags:
        - service_logs
      parameters:
        - name: before
          description: filter on started before (inclusive) timestamp
          in: query
          schema: *ref_200
        - name: after
          description: filter on created after (exclusive) timestamp
          in: query
          schema: *ref_201
        - name: with_error
          in: query
          required: false
          schema:
            type: boolean
      responses:
        '200':
          description: time
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    hostname:
                      type: string
                    mode:
                      type: string
                    worker_group:
                      type: string
                    log_ts:
                      type: string
                      format: date-time
                    file_path:
                      type: string
                    ok_lines:
                      type: integer
                    err_lines:
                      type: integer
                    json_fmt:
                      type: boolean
                  required:
                    - hostname
                    - mode
                    - log_ts
                    - file_path
                    - json_fmt
  /service_logs/get_log_file/{path}:
    get:
      summary: get log file by path
      operationId: getLogFile
      tags:
        - service_logs
      parameters:
        - name: path
          in: path
          required: true
          schema: *ref_31
      responses:
        '200':
          description: log stream
          content:
            text/plain:
              schema:
                type: string
  /concurrency_groups/list:
    get:
      summary: List all concurrency groups
      operationId: listConcurrencyGroups
      tags:
        - concurrencyGroups
      responses:
        '200':
          description: all concurrency groups
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_359
                    concurrency_key:
                      type: string
                    total_running:
                      type: number
                  required: &ref_360
                    - concurrency_key
                    - total_running
  /concurrency_groups/prune/{concurrency_id}:
    delete:
      summary: Delete concurrency group
      operationId: deleteConcurrencyGroup
      tags:
        - concurrencyGroups
      parameters:
        - name: concurrency_id
          in: path
          required: true
          schema: &ref_215
            type: string
      responses:
        '200':
          description: concurrency group removed
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /concurrency_groups/{id}/key:
    get:
      summary: Get the concurrency key for a job that has concurrency limits enabled
      operationId: getConcurrencyKey
      tags:
        - concurrencyGroups
      parameters:
        - name: id
          in: path
          required: true
          schema: *ref_123
      responses:
        '200':
          description: concurrency key for given job
          content:
            application/json:
              schema:
                type: string
  /w/{workspace}/concurrency_groups/list_jobs:
    get:
      summary: Get intervals of job runtime concurrency
      operationId: listExtendedJobs
      tags:
        - concurrencyGroups
        - job
      parameters:
        - name: concurrency_key
          in: query
          required: false
          schema:
            type: string
        - name: row_limit
          in: query
          required: false
          schema:
            type: number
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: created_by
          description: mask to filter exact matching user creator
          in: query
          schema: *ref_67
        - name: label
          description: >-
            mask to filter exact matching job's label (job labels are completed
            jobs with as a result an object containing a string in the array at
            key 'wm_labels')
          in: query
          schema: *ref_110
        - name: parent_job
          description: >-
            The parent job that is at the origin and responsible for the
            execution of this script if any
          in: query
          schema: *ref_60
        - name: script_path_exact
          description: mask to filter exact matching path
          in: query
          schema: *ref_95
        - name: script_path_start
          description: mask to filter matching starting path
          in: query
          schema: *ref_96
        - name: schedule_path
          description: mask to filter by schedule path
          in: query
          schema: *ref_97
        - name: script_hash
          description: mask to filter exact matching path
          in: query
          schema: *ref_98
        - name: started_before
          description: filter on started before (inclusive) timestamp
          in: query
          schema: *ref_99
        - name: started_after
          description: filter on started after (exclusive) timestamp
          in: query
          schema: *ref_100
        - name: created_or_started_before
          description: >-
            filter on created_at for non non started job and started_at
            otherwise before (inclusive) timestamp
          in: query
          schema: *ref_116
        - name: running
          description: filter on running jobs
          in: query
          schema: *ref_101
        - name: scheduled_for_before_now
          description: filter on jobs scheduled_for before now (hence waitinf for a worker)
          in: query
          schema: *ref_102
        - name: created_or_started_after
          description: >-
            filter on created_at for non non started job and started_at
            otherwise after (exclusive) timestamp
          in: query
          schema: *ref_117
        - name: created_or_started_after_completed_jobs
          description: >-
            filter on created_at for non non started job and started_at
            otherwise after (exclusive) timestamp but only for the completed
            jobs
          in: query
          schema: *ref_118
        - name: job_kinds
          description: >-
            filter on job kind (values 'preview', 'script', 'dependencies',
            'flow') separated by,
          in: query
          schema: *ref_103
        - name: args
          description: >-
            filter on jobs containing those args as a json subset (@> in
            postgres)
          in: query
          schema: *ref_105
        - name: tag
          description: filter on jobs with a given tag/worker group
          in: query
          schema: *ref_106
        - name: result
          description: >-
            filter on jobs containing those result as a json subset (@> in
            postgres)
          in: query
          schema: *ref_107
        - name: allow_wildcards
          description: allow wildcards (*) in the filter of label, tag, worker
          in: query
          schema: *ref_109
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_5
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_6
        - name: is_skipped
          description: is the job skipped
          in: query
          schema:
            type: boolean
        - name: is_flow_step
          description: is the job a flow step
          in: query
          schema:
            type: boolean
        - name: has_null_parent
          description: has null parent
          in: query
          schema:
            type: boolean
        - name: success
          description: filter on successful jobs
          in: query
          schema:
            type: boolean
        - name: all_workspaces
          description: >-
            get jobs from all workspaces (only valid if request come from the
            `admins` workspace)
          in: query
          schema:
            type: boolean
        - name: is_not_schedule
          description: is not a scheduled job
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: time
          content:
            application/json:
              schema:
                type: object
                properties: &ref_361
                  jobs:
                    type: array
                    items:
                      oneOf: *ref_124
                      discriminator: *ref_125
                  obscured_jobs:
                    type: array
                    items:
                      type: object
                      properties: &ref_249
                        typ:
                          type: string
                        started_at:
                          type: string
                          format: date-time
                        duration_ms:
                          type: number
                  omitted_obscured_jobs:
                    description: >-
                      Obscured jobs omitted for security because of too specific
                      filtering
                    type: boolean
                required: &ref_362
                  - jobs
                  - obscured_jobs
  /srch/w/{workspace}/index/search/job:
    get:
      summary: Search through jobs with a string query
      operationId: searchJobsIndex
      tags:
        - indexSearch
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: search_query
          in: query
          required: true
          schema:
            type: string
        - name: pagination_offset
          in: query
          required: false
          schema:
            type: integer
      responses:
        '200':
          description: search results
          content:
            application/json:
              schema:
                type: object
                properties:
                  query_parse_errors:
                    description: >-
                      a list of the terms that couldn't be parsed (and thus
                      ignored)
                    type: array
                    items:
                      type: string
                  hits:
                    description: the jobs that matched the query
                    type: array
                    items:
                      type: object
                      properties: &ref_367
                        dancer:
                          type: string
                  hit_count:
                    description: how many jobs matched in total
                    type: number
                  index_metadata:
                    description: Metadata about the index current state
                    type: object
                    properties:
                      indexed_until:
                        description: Datetime of the most recently indexed job
                        type: string
                        format: date-time
                      lost_lock_ownership:
                        description: Is the current indexer service being replaced
                        type: boolean
  /srch/index/search/service_logs:
    get:
      summary: Search through service logs with a string query
      operationId: searchLogsIndex
      tags:
        - indexSearch
      parameters:
        - name: search_query
          in: query
          required: true
          schema:
            type: string
        - name: mode
          in: query
          required: true
          schema:
            type: string
        - name: worker_group
          in: query
          required: false
          schema:
            type: string
        - name: hostname
          in: query
          required: true
          schema:
            type: string
        - name: min_ts
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: max_ts
          in: query
          required: false
          schema:
            type: string
            format: date-time
      responses:
        '200':
          description: search results
          content:
            application/json:
              schema:
                type: object
                properties:
                  query_parse_errors:
                    description: >-
                      a list of the terms that couldn't be parsed (and thus
                      ignored)
                    type: array
                    items:
                      type: string
                  hits:
                    description: log files that matched the query
                    type: array
                    items:
                      type: object
                      properties: &ref_368
                        dancer:
                          type: string
  /srch/index/search/count_service_logs:
    get:
      summary: Search and count the log line hits on every provided host
      operationId: countSearchLogsIndex
      tags:
        - indexSearch
      parameters:
        - name: search_query
          in: query
          required: true
          schema:
            type: string
        - name: min_ts
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: max_ts
          in: query
          required: false
          schema:
            type: string
            format: date-time
      responses:
        '200':
          description: search results
          content:
            application/json:
              schema:
                type: object
                properties:
                  query_parse_errors:
                    description: >-
                      a list of the terms that couldn't be parsed (and thus
                      ignored)
                    type: array
                    items:
                      type: string
                  count_per_host:
                    description: count of log lines that matched the query per hostname
                    type: object
  /srch/index/delete/{idx_name}:
    delete:
      summary: Restart container and delete the index to recreate it.
      operationId: clearIndex
      tags:
        - indexSearch
      parameters:
        - name: idx_name
          in: path
          required: true
          schema:
            type: string
            enum:
              - JobIndex
              - ServiceLogIndex
      responses:
        '200':
          description: idx to be deleted and container restarting
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/assets/list:
    get:
      summary: List all assets in the workspace
      operationId: listAssets
      tags:
        - asset
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: all assets in the workspace
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  required:
                    - path
                    - kind
                    - usages
                  properties:
                    path:
                      type: string
                    kind:
                      type: string
                      enum: *ref_202
                    usages:
                      type: array
                      items:
                        type: object
                        required:
                          - path
                          - kind
                        properties:
                          path:
                            type: string
                          kind:
                            type: string
                            enum: &ref_203
                              - script
                              - flow
                          access_type:
                            type: string
                            enum: &ref_204
                              - r
                              - w
                              - rw
                    metadata:
                      type: object
                      properties:
                        resource_type:
                          type: string
  /w/{workspace}/assets/list_by_usages:
    post:
      summary: List all assets used by given usages paths
      operationId: listAssetsByUsage
      tags:
        - asset
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: list assets by usages
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - usages
              properties:
                usages:
                  type: array
                  items:
                    type: object
                    required:
                      - path
                      - kind
                    properties:
                      path:
                        type: string
                      kind:
                        type: string
                        enum: *ref_203
      responses:
        '200':
          description: all assets used by the given usage paths, in the same order
          content:
            application/json:
              schema:
                type: array
                items:
                  type: array
                  items:
                    type: object
                    required:
                      - path
                      - kind
                    properties:
                      path:
                        type: string
                      kind:
                        type: string
                        enum: *ref_202
                      access_type:
                        type: string
                        enum: *ref_204
  /mcp/w/{workspace}/list_tools:
    get:
      summary: list available MCP tools
      operationId: listMcpTools
      tags:
        - mcp
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: list of MCP tools available for the workspace
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  required: &ref_235
                    - name
                    - description
                    - instructions
                    - path
                    - method
                  properties: &ref_236
                    name:
                      type: string
                      description: The tool name/operation ID
                    description:
                      type: string
                      description: Short description of the tool
                    instructions:
                      type: string
                      description: Detailed instructions for using the tool
                    path:
                      type: string
                      description: API endpoint path
                    method:
                      type: string
                      description: HTTP method (GET, POST, etc.)
                    path_params_schema:
                      type: object
                      description: JSON schema for path parameters
                      nullable: true
                    query_params_schema:
                      type: object
                      description: JSON schema for query parameters
                      nullable: true
                    body_schema:
                      type: object
                      description: JSON schema for request body
                      nullable: true
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
    cookieAuth:
      type: apiKey
      in: cookie
      name: token
  parameters:
    Id:
      name: id
      in: path
      required: true
      schema: *ref_205
    Key:
      name: key
      in: path
      required: true
      schema: *ref_9
    WorkspaceId:
      name: workspace
      in: path
      required: true
      schema: *ref_0
    PublicationName:
      name: publication
      in: path
      required: true
      description: The name of the publication
      schema: *ref_174
    VersionId:
      name: version
      in: path
      required: true
      schema: *ref_206
    Token:
      name: token
      in: path
      required: true
      schema: *ref_207
    AccountId:
      name: id
      in: path
      required: true
      schema: *ref_38
    ClientName:
      name: client_name
      in: path
      required: true
      schema: *ref_35
    ScriptPath:
      name: path
      in: path
      required: true
      schema: *ref_48
    ScriptHash:
      name: hash
      in: path
      required: true
      schema: *ref_53
    JobId:
      name: id
      in: path
      required: true
      schema: *ref_123
    Path:
      name: path
      in: path
      required: true
      schema: *ref_31
    CustomPath:
      name: custom_path
      in: path
      required: true
      schema: *ref_81
    PathId:
      name: id
      in: path
      required: true
      schema: *ref_41
    PathVersion:
      name: version
      in: path
      required: true
      schema: *ref_208
    Name:
      name: name
      in: path
      required: true
      schema: *ref_180
    Page:
      name: page
      description: which page to return (start at 1, default 1)
      in: query
      schema: *ref_5
    PerPage:
      name: per_page
      description: number of items to return for a given page (default 30, max 100)
      in: query
      schema: *ref_6
    OrderDesc:
      name: order_desc
      description: order by desc order (default true)
      in: query
      schema: *ref_66
    CreatedBy:
      name: created_by
      description: mask to filter exact matching user creator
      in: query
      schema: *ref_67
    Label:
      name: label
      description: >-
        mask to filter exact matching job's label (job labels are completed jobs
        with as a result an object containing a string in the array at key
        'wm_labels')
      in: query
      schema: *ref_110
    Worker:
      name: worker
      description: worker this job was ran on
      in: query
      schema: *ref_94
    ParentJob:
      name: parent_job
      description: >-
        The parent job that is at the origin and responsible for the execution
        of this script if any
      in: query
      schema: *ref_60
    WorkerTag:
      name: tag
      description: Override the tag to use
      in: query
      schema: *ref_62
    CacheTtl:
      name: cache_ttl
      description: >-
        Override the cache time to live (in seconds). Can not be used to disable
        caching, only override with a new cache ttl
      in: query
      schema: *ref_63
    NewJobId:
      name: job_id
      description: >-
        The job id to assign to the created job. if missing, job is chosen
        randomly using the ULID scheme. If a job id already exists in the queue
        or as a completed job, the request to create one will fail (Bad Request)
      in: query
      schema: *ref_61
    IncludeHeader:
      name: include_header
      description: >
        List of headers's keys (separated with ',') whove value are added to the
        args

        Header's key lowercased and '-'' replaced to '_' such that
        'Content-Type' becomes the 'content_type' arg key
      in: query
      schema: *ref_64
    QueueLimit:
      name: queue_limit
      description: >
        The maximum size of the queue for which the request would get rejected
        if that job would push it above that limit
      in: query
      schema: *ref_65
    Payload:
      name: payload
      description: >
        The base64 encoded payload that has been encoded as a JSON. e.g how to
        encode such payload encodeURIComponent

        `encodeURIComponent(btoa(JSON.stringify({a: 2})))`
      in: query
      schema: *ref_126
    ScriptStartPath:
      name: script_path_start
      description: mask to filter matching starting path
      in: query
      schema: *ref_96
    SchedulePath:
      name: schedule_path
      description: mask to filter by schedule path
      in: query
      schema: *ref_97
    ScriptExactPath:
      name: script_path_exact
      description: mask to filter exact matching path
      in: query
      schema: *ref_95
    ScriptExactHash:
      name: script_hash
      description: mask to filter exact matching path
      in: query
      schema: *ref_98
    CreatedBefore:
      name: created_before
      description: filter on created before (inclusive) timestamp
      in: query
      schema: *ref_114
    CreatedAfter:
      name: created_after
      description: filter on created after (exclusive) timestamp
      in: query
      schema: *ref_115
    StartedBefore:
      name: started_before
      description: filter on started before (inclusive) timestamp
      in: query
      schema: *ref_99
    StartedAfter:
      name: started_after
      description: filter on started after (exclusive) timestamp
      in: query
      schema: *ref_100
    Before:
      name: before
      description: filter on started before (inclusive) timestamp
      in: query
      schema: *ref_200
    CreatedOrStartedAfter:
      name: created_or_started_after
      description: >-
        filter on created_at for non non started job and started_at otherwise
        after (exclusive) timestamp
      in: query
      schema: *ref_117
    CreatedOrStartedAfterCompletedJob:
      name: created_or_started_after_completed_jobs
      description: >-
        filter on created_at for non non started job and started_at otherwise
        after (exclusive) timestamp but only for the completed jobs
      in: query
      schema: *ref_118
    CreatedOrStartedBefore:
      name: created_or_started_before
      description: >-
        filter on created_at for non non started job and started_at otherwise
        before (inclusive) timestamp
      in: query
      schema: *ref_116
    Success:
      name: success
      description: filter on successful jobs
      in: query
      schema: *ref_108
    ScheduledForBeforeNow:
      name: scheduled_for_before_now
      description: filter on jobs scheduled_for before now (hence waitinf for a worker)
      in: query
      schema: *ref_102
    Suspended:
      name: suspended
      description: filter on suspended jobs
      in: query
      schema: *ref_104
    Running:
      name: running
      description: filter on running jobs
      in: query
      schema: *ref_101
    AllowWildcards:
      name: allow_wildcards
      description: allow wildcards (*) in the filter of label, tag, worker
      in: query
      schema: *ref_109
    ArgsFilter:
      name: args
      description: filter on jobs containing those args as a json subset (@> in postgres)
      in: query
      schema: *ref_105
    Tag:
      name: tag
      description: filter on jobs with a given tag/worker group
      in: query
      schema: *ref_106
    ResultFilter:
      name: result
      description: filter on jobs containing those result as a json subset (@> in postgres)
      in: query
      schema: *ref_107
    After:
      name: after
      description: filter on created after (exclusive) timestamp
      in: query
      schema: *ref_201
    Username:
      name: username
      description: filter on exact username of user
      in: query
      schema: *ref_209
    Operation:
      name: operation
      description: filter on exact or prefix name of operation
      in: query
      schema: *ref_210
    ResourceName:
      name: resource
      description: filter on exact or prefix name of resource
      in: query
      schema: *ref_211
    ActionKind:
      name: action_kind
      description: filter on type of operation
      in: query
      schema: *ref_212
    JobKinds:
      name: job_kinds
      description: >-
        filter on job kind (values 'preview', 'script', 'dependencies', 'flow')
        separated by,
      in: query
      schema: *ref_103
    RunnableId:
      name: runnable_id
      in: query
      schema: *ref_192
    RunnableTypeQuery:
      name: runnable_type
      in: query
      schema: *ref_193
    InputId:
      name: input
      in: path
      required: true
      schema: *ref_213
    GetStarted:
      name: get_started
      in: query
      schema: *ref_214
    ConcurrencyId:
      name: concurrency_id
      in: path
      required: true
      schema: *ref_215
    RunnableKind:
      name: runnable_kind
      in: path
      required: true
      schema: *ref_80
  schemas:
    OpenFlow:
      type: object
      properties: *ref_68
      required: *ref_69
    FlowValue:
      type: object
      properties: *ref_92
      required: *ref_93
    Retry:
      type: object
      properties: *ref_127
    StopAfterIf:
      type: object
      properties:
        skip_if_stopped:
          type: boolean
        expr:
          type: string
        error_message:
          type: string
      required:
        - expr
    FlowModule:
      type: object
      properties:
        id:
          type: string
        value:
          oneOf: *ref_216
          discriminator: *ref_217
        stop_after_if:
          type: object
          properties: *ref_46
          required: *ref_47
        stop_after_all_iters_if:
          type: object
          properties: *ref_46
          required: *ref_47
        skip_if:
          type: object
          properties:
            expr:
              type: string
          required:
            - expr
        sleep:
          oneOf: *ref_42
          discriminator: *ref_43
        cache_ttl:
          type: number
        timeout:
          type: number
        delete_after_use:
          type: boolean
        summary:
          type: string
        mock:
          type: object
          properties:
            enabled:
              type: boolean
            return_value: {}
        suspend:
          type: object
          properties:
            required_events:
              type: integer
            timeout:
              type: integer
            resume_form:
              type: object
              properties:
                schema:
                  type: object
            user_auth_required:
              type: boolean
            user_groups_required:
              oneOf: *ref_42
              discriminator: *ref_43
            self_approval_disabled:
              type: boolean
            hide_cancel:
              type: boolean
            continue_on_disapprove_timeout:
              type: boolean
        priority:
          type: number
        continue_on_error:
          type: boolean
        retry:
          type: object
          properties: *ref_218
      required:
        - value
        - id
    InputTransform:
      oneOf: *ref_88
      discriminator: *ref_89
    StaticTransform:
      type: object
      properties:
        value: {}
        type:
          type: string
          enum:
            - static
      required:
        - value
        - type
    JavascriptTransform:
      type: object
      properties:
        expr:
          type: string
        type:
          type: string
          enum:
            - javascript
      required:
        - expr
        - type
    FlowModuleValue:
      oneOf:
        - type: object
          properties: *ref_219
          required: *ref_220
        - type: object
          properties: *ref_221
          required: *ref_222
        - type: object
          properties: *ref_223
          required: *ref_224
        - type: object
          properties: *ref_225
          required: *ref_226
        - type: object
          properties: *ref_227
          required: *ref_228
        - type: object
          properties: *ref_229
          required: *ref_230
        - type: object
          properties: *ref_231
          required: *ref_232
        - type: object
          properties: *ref_233
          required: *ref_234
      discriminator:
        propertyName: type
        mapping:
          rawscript: '#/components/schemas/schemas-RawScript'
          script: '#/components/schemas/schemas-PathScript'
          flow: '#/components/schemas/schemas-PathFlow'
          forloopflow: '#/components/schemas/schemas-ForloopFlow'
          whileloopflow: '#/components/schemas/schemas-WhileloopFlow'
          branchone: '#/components/schemas/schemas-BranchOne'
          branchall: '#/components/schemas/schemas-BranchAll'
          identity: '#/components/schemas/schemas-Identity'
    RawScript:
      type: object
      properties:
        input_transforms:
          type: object
          additionalProperties:
            oneOf: *ref_42
            discriminator: *ref_43
        content:
          type: string
        language:
          type: string
          enum:
            - deno
            - bun
            - python3
            - go
            - bash
            - powershell
            - postgresql
            - mysql
            - bigquery
            - snowflake
            - mssql
            - oracledb
            - graphql
            - nativets
            - php
        path:
          type: string
        lock:
          type: string
        type:
          type: string
          enum:
            - rawscript
        tag:
          type: string
        concurrent_limit:
          type: number
        concurrency_time_window_s:
          type: number
        custom_concurrency_key:
          type: string
        is_trigger:
          type: boolean
        assets:
          type: array
          items:
            type: object
            required:
              - path
              - kind
            properties:
              path:
                type: string
              kind:
                type: string
                enum:
                  - s3object
                  - resource
                  - ducklake
              access_type:
                type: string
                enum:
                  - r
                  - w
                  - rw
              alt_access_type:
                type: string
                enum:
                  - r
                  - w
                  - rw
      required:
        - type
        - content
        - language
        - input_transforms
    PathScript:
      type: object
      properties:
        input_transforms:
          type: object
          additionalProperties:
            oneOf: *ref_42
            discriminator: *ref_43
        path:
          type: string
        hash:
          type: string
        type:
          type: string
          enum:
            - script
        tag_override:
          type: string
        is_trigger:
          type: boolean
      required:
        - type
        - path
        - input_transforms
    PathFlow:
      type: object
      properties:
        input_transforms:
          type: object
          additionalProperties:
            oneOf: *ref_42
            discriminator: *ref_43
        path:
          type: string
        type:
          type: string
          enum:
            - flow
      required:
        - type
        - path
        - input_transforms
    ForloopFlow:
      type: object
      properties:
        modules:
          type: array
          items:
            type: object
            properties: *ref_44
            required: *ref_45
        iterator:
          oneOf: *ref_42
          discriminator: *ref_43
        skip_failures:
          type: boolean
        type:
          type: string
          enum:
            - forloopflow
        parallel:
          type: boolean
        parallelism:
          type: integer
      required:
        - modules
        - iterator
        - skip_failures
        - type
    WhileloopFlow:
      type: object
      properties:
        modules:
          type: array
          items:
            type: object
            properties: *ref_44
            required: *ref_45
        skip_failures:
          type: boolean
        type:
          type: string
          enum:
            - whileloopflow
        parallel:
          type: boolean
        parallelism:
          type: integer
      required:
        - modules
        - skip_failures
        - type
    BranchOne:
      type: object
      properties:
        branches:
          type: array
          items:
            type: object
            properties:
              summary:
                type: string
              expr:
                type: string
              modules:
                type: array
                items:
                  type: object
                  properties: *ref_44
                  required: *ref_45
            required:
              - modules
              - expr
        default:
          type: array
          items:
            type: object
            properties: *ref_44
            required: *ref_45
          required:
            - modules
        type:
          type: string
          enum:
            - branchone
      required:
        - branches
        - default
        - type
    BranchAll:
      type: object
      properties:
        branches:
          type: array
          items:
            type: object
            properties:
              summary:
                type: string
              skip_failure:
                type: boolean
              modules:
                type: array
                items:
                  type: object
                  properties: *ref_44
                  required: *ref_45
            required:
              - modules
        type:
          type: string
          enum:
            - branchall
        parallel:
          type: boolean
      required:
        - branches
        - type
    Identity:
      type: object
      properties:
        type:
          type: string
          enum:
            - identity
        flow:
          type: boolean
      required:
        - type
    FlowStatus:
      type: object
      properties: *ref_111
      required: *ref_112
    FlowStatusModule:
      type: object
      properties:
        type:
          type: string
          enum:
            - WaitingForPriorSteps
            - WaitingForEvents
            - WaitingForExecutor
            - InProgress
            - Success
            - Failure
        id:
          type: string
        job:
          type: string
          format: uuid
        count:
          type: integer
        progress:
          type: integer
        iterator:
          type: object
          properties:
            index:
              type: integer
            itered:
              type: array
              items: {}
            args: {}
        flow_jobs:
          type: array
          items:
            type: string
        flow_jobs_success:
          type: array
          items:
            type: boolean
        branch_chosen:
          type: object
          properties:
            type:
              type: string
              enum:
                - branch
                - default
            branch:
              type: integer
          required:
            - type
        branchall:
          type: object
          properties:
            branch:
              type: integer
            len:
              type: integer
          required:
            - branch
            - len
        approvers:
          type: array
          items:
            type: object
            properties:
              resume_id:
                type: integer
              approver:
                type: string
            required:
              - resume_id
              - approver
        failed_retries:
          type: array
          items:
            type: string
            format: uuid
        skipped:
          type: boolean
      required:
        - type
    EndpointTool:
      type: object
      required: *ref_235
      properties: *ref_236
    AIProvider:
      type: string
      enum: *ref_237
    GitSyncObjectType:
      type: string
      enum: *ref_20
    AIProviderModel:
      type: object
      properties: *ref_18
      required: *ref_19
    AIProviderConfig:
      type: object
      properties: *ref_238
      required: *ref_239
    AIConfig:
      type: object
      properties: *ref_21
    Alert:
      type: object
      properties: *ref_240
      required: *ref_241
    Configs:
      type: object
      nullable: true
      properties: *ref_242
    Script:
      type: object
      properties: *ref_51
      required: *ref_52
    NewScript:
      type: object
      properties: *ref_56
      required: *ref_57
    NewScriptWithDraft:
      allOf: *ref_243
    ScriptHistory:
      type: object
      properties: *ref_58
      required: *ref_59
    ScriptArgs:
      type: object
      description: The arguments to pass to the script or flow
      additionalProperties: *ref_22
    Input:
      type: object
      properties: *ref_194
      required: *ref_195
    CreateInput:
      type: object
      properties: *ref_244
      required: *ref_245
    UpdateInput:
      type: object
      properties: *ref_246
      required: *ref_247
    RunnableType:
      type: string
      enum: *ref_248
    QueuedJob:
      type: object
      properties: *ref_121
      required: *ref_122
    CompletedJob:
      type: object
      properties: *ref_119
      required: *ref_120
    ObscuredJob:
      type: object
      properties: *ref_249
    Job:
      oneOf: *ref_124
      discriminator: *ref_125
    User:
      type: object
      properties: *ref_10
      required: *ref_11
    UserUsage:
      type: object
      properties: *ref_250
    Login:
      type: object
      properties: *ref_251
      required: *ref_252
    EditWorkspaceUser:
      type: object
      properties: *ref_253
    TruncatedToken:
      type: object
      properties: *ref_54
      required: *ref_55
    NewToken:
      type: object
      properties: *ref_254
    NewTokenImpersonate:
      type: object
      properties: *ref_255
      required: *ref_256
    ListableVariable:
      type: object
      properties: *ref_32
      required: *ref_33
    ContextualVariable:
      type: object
      properties: *ref_257
      required: *ref_258
    CreateVariable:
      type: object
      properties: *ref_259
      required: *ref_260
    EditVariable:
      type: object
      properties: *ref_261
    AuditLog:
      type: object
      properties: *ref_1
      required: *ref_2
    MainArgSignature:
      type: object
      properties:
        type:
          type: string
          enum:
            - Valid
            - Invalid
        error:
          type: string
        star_args:
          type: boolean
        star_kwargs:
          type: boolean
        args:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              typ:
                oneOf:
                  - type: string
                    enum:
                      - float
                      - int
                      - bool
                      - email
                      - unknown
                      - bytes
                      - dict
                      - datetime
                      - sql
                  - type: object
                    properties:
                      resource:
                        type: string
                        nullable: true
                    required:
                      - resource
                  - type: object
                    properties:
                      str:
                        type: array
                        items:
                          type: string
                        nullable: true
                    required:
                      - str
                  - type: object
                    properties:
                      object:
                        type: object
                        properties:
                          name:
                            type: string
                          props:
                            type: array
                            items:
                              type: object
                              properties:
                                key:
                                  type: string
                                typ:
                                  oneOf:
                                    - type: string
                                      enum:
                                        - float
                                        - int
                                        - bool
                                        - email
                                        - unknown
                                        - bytes
                                        - dict
                                        - datetime
                                        - sql
                                    - type: object
                                      properties:
                                        str: {}
                                      required:
                                        - str
                              required:
                                - key
                                - typ
                    required:
                      - object
                  - type: object
                    properties:
                      list:
                        oneOf:
                          - type: string
                            enum:
                              - float
                              - int
                              - bool
                              - email
                              - unknown
                              - bytes
                              - dict
                              - datetime
                              - sql
                          - type: object
                            properties:
                              str: {}
                            required:
                              - str
                        nullable: true
                    required:
                      - list
              has_default:
                type: boolean
              default: {}
            required:
              - name
              - typ
        no_main_func:
          type: boolean
          nullable: true
        has_preprocessor:
          type: boolean
          nullable: true
      required:
        - star_args
        - start_kwargs
        - args
        - type
        - error
        - no_main_func
        - has_preprocessor
    ScriptLang:
      type: string
      enum: *ref_50
    Preview:
      type: object
      properties: *ref_262
      required: *ref_263
    WorkflowTask:
      type: object
      properties: *ref_264
      required: *ref_265
    WorkflowStatusRecord:
      type: object
      additionalProperties:
        type: object
        properties: *ref_113
    WorkflowStatus:
      type: object
      properties: *ref_113
    CreateResource:
      type: object
      properties: *ref_266
      required: *ref_267
    EditResource:
      type: object
      properties: *ref_268
    Resource:
      type: object
      properties: *ref_269
      required: *ref_270
    ListableResource:
      type: object
      properties: *ref_271
      required: *ref_272
    ResourceType:
      type: object
      properties: *ref_39
      required: *ref_40
    EditResourceType:
      type: object
      properties: *ref_273
    Schedule:
      type: object
      properties: *ref_128
      required: *ref_129
    ScheduleWJobs:
      allOf: *ref_274
    ErrorHandler:
      type: string
      enum:
        - custom
        - slack
        - teams
        - email
    NewSchedule:
      type: object
      properties: *ref_275
      required: *ref_276
    EditSchedule:
      type: object
      properties: *ref_277
      required: *ref_278
    TriggerExtraProperty:
      type: object
      properties: *ref_139
      required: *ref_140
    AuthenticationMethod:
      type: string
      enum: *ref_134
    RunnableKind:
      type: string
      enum: *ref_279
    OpenapiSpecFormat:
      type: string
      enum: *ref_280
    OpenapiHttpRouteFilters:
      type: object
      properties: *ref_281
      required: *ref_282
    WebhookFilters:
      type: object
      properties: *ref_283
      required: *ref_284
    OpenapiV3Info:
      type: object
      properties: *ref_285
      required: *ref_286
    GenerateOpenapiSpec:
      type: object
      properties: *ref_130
    HttpMethod:
      type: string
      enum: *ref_133
    HttpTrigger:
      allOf: *ref_135
      type: object
      properties: *ref_136
      required: *ref_137
    NewHttpTrigger:
      type: object
      properties: *ref_131
      required: *ref_132
    EditHttpTrigger:
      type: object
      properties: *ref_287
      required: *ref_288
    TriggersCount:
      type: object
      properties: *ref_73
    WebsocketTrigger:
      allOf: *ref_141
      type: object
      properties: *ref_142
      required: *ref_143
    NewWebsocketTrigger:
      type: object
      properties: *ref_289
      required: *ref_290
    EditWebsocketTrigger:
      type: object
      properties: *ref_291
      required: *ref_292
    WebsocketTriggerInitialMessage:
      anyOf: *ref_138
    MqttQoS:
      type: string
      enum: *ref_293
    MqttV3Config:
      type: object
      properties: *ref_156
    MqttV5Config:
      type: object
      properties: *ref_157
    MqttSubscribeTopic:
      type: object
      properties: *ref_154
      required: *ref_155
    MqttClientVersion:
      type: string
      enum: *ref_158
    MqttTrigger:
      allOf: *ref_159
      type: object
      properties: *ref_160
      required: *ref_161
    NewMqttTrigger:
      type: object
      properties: *ref_294
      required: *ref_295
    EditMqttTrigger:
      type: object
      properties: *ref_296
      required: *ref_297
    DeliveryType:
      type: string
      enum: *ref_164
    PushConfig:
      type: object
      properties: *ref_165
      required: *ref_166
    GcpTrigger:
      allOf: *ref_168
      type: object
      properties: *ref_169
      required: *ref_170
    SubscriptionMode:
      type: string
      enum: *ref_167
      description: >-
        The mode of subscription. 'existing' means using an existing GCP
        subscription, while 'create_update' involves creating or updating a new
        subscription.
    GcpTriggerData:
      type: object
      properties: *ref_162
      required: *ref_163
    GetAllTopicSubscription:
      type: object
      properties: *ref_298
      required: *ref_299
    DeleteGcpSubscription:
      type: object
      properties: *ref_300
      required: *ref_301
    AwsAuthResourceType:
      type: string
      enum: *ref_150
    SqsTrigger:
      allOf: *ref_151
      type: object
      properties: *ref_152
      required: *ref_153
    NewSqsTrigger:
      type: object
      properties: *ref_302
      required: *ref_303
    EditSqsTrigger:
      type: object
      properties: *ref_304
      required: *ref_305
    Slot:
      type: object
      properties: *ref_171
    SlotList:
      type: object
      properties: *ref_306
    PublicationData:
      type: object
      properties: *ref_175
      required: *ref_176
    TableToTrack:
      type: array
      items: *ref_307
    Relations:
      type: object
      properties: *ref_172
      required: *ref_173
    Language:
      type: string
      enum: *ref_308
    TemplateScript:
      type: object
      properties: *ref_309
      required: *ref_310
    PostgresTrigger:
      allOf: *ref_177
      type: object
      properties: *ref_178
      required: *ref_179
    NewPostgresTrigger:
      type: object
      properties: *ref_311
      required: *ref_312
    EditPostgresTrigger:
      type: object
      properties: *ref_313
      required: *ref_314
    KafkaTrigger:
      allOf: *ref_144
      type: object
      properties: *ref_145
      required: *ref_146
    NewKafkaTrigger:
      type: object
      properties: *ref_315
      required: *ref_316
    EditKafkaTrigger:
      type: object
      properties: *ref_317
      required: *ref_318
    NatsTrigger:
      allOf: *ref_147
      type: object
      properties: *ref_148
      required: *ref_149
    NewNatsTrigger:
      type: object
      properties: *ref_319
      required: *ref_320
    EditNatsTrigger:
      type: object
      properties: *ref_321
      required: *ref_322
    Group:
      type: object
      properties: *ref_185
      required: *ref_186
    InstanceGroup:
      type: object
      properties: *ref_181
      required: *ref_182
    Folder:
      type: object
      properties: *ref_187
      required: *ref_188
    WorkerPing:
      type: object
      properties: *ref_323
      required: *ref_324
    UserWorkspaceList:
      type: object
      properties: *ref_325
      required: *ref_326
    CreateWorkspace:
      type: object
      properties: *ref_327
      required: *ref_328
    Workspace:
      type: object
      properties: *ref_7
      required: *ref_8
    WorkspaceInvite:
      type: object
      properties: *ref_16
      required: *ref_17
    GlobalUserInfo:
      type: object
      properties: *ref_14
      required: *ref_15
    Flow:
      allOf: *ref_72
    ExtraPerms:
      type: object
      additionalProperties: *ref_329
    FlowMetadata:
      type: object
      properties: *ref_330
      required: *ref_331
    OpenFlowWPath:
      allOf: *ref_74
    FlowPreview:
      type: object
      properties: *ref_332
      required: *ref_333
    RestartedFrom:
      type: object
      properties: *ref_334
    Policy:
      type: object
      properties: *ref_75
    ListableApp:
      type: object
      properties: *ref_335
      required: *ref_336
    ScopeDefinition:
      type: object
      properties: *ref_337
      required: *ref_338
    ScopeDomain:
      type: object
      properties: *ref_339
      required: *ref_340
    ListableRawApp:
      type: object
      properties: *ref_341
      required: *ref_342
    AppWithLastVersion:
      type: object
      properties: *ref_76
      required: *ref_77
    AppWithLastVersionWDraft:
      allOf: *ref_343
    AppHistory:
      type: object
      properties: *ref_78
      required: *ref_79
    FlowVersion:
      type: object
      properties: *ref_70
      required: *ref_71
    SlackToken:
      type: object
      properties:
        access_token:
          type: string
        team_id:
          type: string
        team_name:
          type: string
        bot:
          type: object
          properties:
            bot_access_token:
              type: string
      required:
        - access_token
        - team_id
        - team_name
        - bot
    TokenResponse:
      type: object
      properties: *ref_36
      required: *ref_37
    HubScriptKind:
      type: string
      enum: *ref_49
    PolarsClientKwargs:
      type: object
      properties: *ref_198
      required: *ref_199
    LargeFileStorage:
      type: object
      properties: *ref_23
    DucklakeSettings:
      type: object
      required: *ref_24
      properties: *ref_25
    WindmillLargeFile:
      type: object
      properties: *ref_344
      required: *ref_345
    WindmillFileMetadata:
      type: object
      properties: *ref_346
    WindmillFilePreview:
      type: object
      properties: *ref_347
      required: *ref_348
    S3Resource:
      type: object
      properties: *ref_196
      required: *ref_197
    WorkspaceGitSyncSettings:
      type: object
      properties: *ref_26
    WorkspaceDeployUISettings:
      type: object
      properties: *ref_29
    WorkspaceDefaultScripts:
      type: object
      properties: *ref_30
    GitRepositorySettings:
      type: object
      properties: *ref_27
      required: *ref_28
    UploadFilePart:
      type: object
      properties:
        part_number:
          type: integer
        tag:
          type: string
      required:
        - part_number
        - tag
    MetricMetadata:
      type: object
      properties: *ref_349
      required: *ref_350
    ScalarMetric:
      type: object
      properties: *ref_351
      required: *ref_352
    TimeseriesMetric:
      type: object
      properties: *ref_353
      required: *ref_354
    MetricDataPoint:
      type: object
      properties: *ref_355
      required: *ref_356
    RawScriptForDependencies:
      type: object
      properties: *ref_357
      required: *ref_358
    ConcurrencyGroup:
      type: object
      properties: *ref_359
      required: *ref_360
    ExtendedJobs:
      type: object
      properties: *ref_361
      required: *ref_362
    ExportedUser:
      type: object
      properties: *ref_3
      required: *ref_4
    GlobalSetting:
      type: object
      properties: *ref_363
      required: *ref_364
    Config:
      type: object
      properties: *ref_365
      required: *ref_366
    ExportedInstanceGroup:
      type: object
      properties: *ref_183
      required: *ref_184
    JobSearchHit:
      type: object
      properties: *ref_367
    LogSearchHit:
      type: object
      properties: *ref_368
    AutoscalingEvent:
      type: object
      properties: *ref_369
    CriticalAlert:
      type: object
      properties: *ref_34
    CaptureTriggerKind:
      type: string
      enum: *ref_189
    Capture:
      type: object
      properties: *ref_190
      required: *ref_191
    CaptureConfig:
      type: object
      properties: *ref_370
      required: *ref_371
    OperatorSettings:
      nullable: true
      type: object
      required: *ref_12
      properties: *ref_13
    TeamInfo:
      type: object
      required: *ref_372
      properties: *ref_373
    ChannelInfo:
      type: object
      required: *ref_374
      properties: *ref_375
    GithubInstallations:
      type: array
      items: *ref_376
    WorkspaceGithubInstallation:
      type: object
      properties:
        account_id:
          type: string
        installation_id:
          type: number
      required:
        - account_id
        - installation_id
    S3Object:
      type: object
      properties: *ref_82
      required: *ref_83
    TeamsChannel:
      type: object
      required:
        - team_id
        - team_name
        - channel_id
        - channel_name
      properties:
        team_id:
          type: string
          description: Microsoft Teams team ID
          minLength: 1
        team_name:
          type: string
          description: Microsoft Teams team name
          minLength: 1
        channel_id:
          type: string
          description: Microsoft Teams channel ID
          minLength: 1
        channel_name:
          type: string
          description: Microsoft Teams channel name
          minLength: 1
    AssetUsageKind:
      type: string
      enum: *ref_203
    AssetUsageAccessType:
      type: string
      enum: *ref_204
    AssetKind:
      type: string
      enum: *ref_202
    Asset:
      type: object
      properties:
        path:
          type: string
        kind:
          type: string
          enum: *ref_202
      required:
        - path
        - kind
    schemas-StaticTransform:
      type: object
      properties: *ref_84
      required: *ref_85
    schemas-JavascriptTransform:
      type: object
      properties: *ref_86
      required: *ref_87
    schemas-InputTransform:
      oneOf: *ref_42
      discriminator: *ref_43
    schemas-RawScript:
      type: object
      properties: *ref_219
      required: *ref_220
    schemas-PathScript:
      type: object
      properties: *ref_221
      required: *ref_222
    schemas-PathFlow:
      type: object
      properties: *ref_223
      required: *ref_224
    schemas-FlowModule:
      type: object
      properties: *ref_44
      required: *ref_45
    schemas-ForloopFlow:
      type: object
      properties: *ref_225
      required: *ref_226
    schemas-WhileloopFlow:
      type: object
      properties: *ref_227
      required: *ref_228
    schemas-BranchOne:
      type: object
      properties: *ref_229
      required: *ref_230
    schemas-BranchAll:
      type: object
      properties: *ref_231
      required: *ref_232
    schemas-Identity:
      type: object
      properties: *ref_233
      required: *ref_234
    schemas-FlowModuleValue:
      oneOf: *ref_216
      discriminator: *ref_217
    schemas-StopAfterIf:
      type: object
      properties: *ref_46
      required: *ref_47
    schemas-Retry:
      type: object
      properties: *ref_218
    schemas-FlowValue:
      type: object
      properties: *ref_377
      required: *ref_378
    schemas-FlowStatusModule:
      type: object
      properties: *ref_90
      required: *ref_91
