openapi: 3.0.3
info:
  version: 1.269.0
  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_24
            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
                      - openai.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.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.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
                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_3
            type: integer
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: &ref_4
            type: integer
        - name: before
          description: filter on created before (exclusive) timestamp
          in: query
          schema: &ref_102
            type: string
            format: date-time
        - name: after
          description: filter on created after (exclusive) timestamp
          in: query
          schema: &ref_101
            type: string
            format: date-time
        - name: username
          description: filter on exact username of user
          in: query
          schema: &ref_103
            type: string
        - name: operation
          description: filter on exact or prefix name of operation
          in: query
          schema: &ref_104
            type: string
        - name: resource
          description: filter on exact or prefix name of resource
          in: query
          schema: &ref_105
            type: string
        - name: action_kind
          description: filter on type of operation
          in: query
          schema: &ref_106
            type: string
            enum:
              - Create
              - Update
              - Delete
              - Execute
      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_119
                email:
                  type: string
                password:
                  type: string
              required: &ref_120
                - 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/add:
    post:
      summary: create user (require admin privilege)
      operationId: createUser
      tags:
        - user
        - admin
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      requestBody:
        description: new user
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_121
                email:
                  type: string
                username:
                  type: string
                is_admin:
                  type: boolean
              required: &ref_122
                - email
                - username
                - is_admin
      responses:
        '201':
          description: user created
          content:
            text/plain:
              schema:
                type: string
  /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_123
                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_17
            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/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
              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
      responses:
        '200':
          description: user updated
          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
  /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
  /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_5
                    id:
                      type: string
                    name:
                      type: string
                    owner:
                      type: string
                    domain:
                      type: string
                  required: &ref_6
                    - 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_151
                  email:
                    type: string
                  workspaces:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        username:
                          type: string
                      required:
                        - id
                        - name
                        - username
                required: &ref_152
                  - 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_3
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_4
      responses:
        '200':
          description: workspaces
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: *ref_5
                  required: *ref_6
  /workspaces/create:
    post:
      summary: create workspace
      operationId: createWorkspace
      tags:
        - workspace
      requestBody:
        description: new token
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_153
                id:
                  type: string
                name:
                  type: string
                username:
                  type: string
              required: &ref_154
                - id
                - name
                - username
      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/global/{key}:
    get:
      summary: get global settings
      operationId: getGlobal
      tags:
        - setting
      parameters:
        - name: key
          in: path
          required: true
          schema: &ref_7
            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_7
      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
                  required:
                    - host
                    - username
                    - password
                    - port
                    - from
                    - tls_implicit
              required:
                - to
                - smtp
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /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/send_stats:
    post:
      summary: send stats
      operationId: sendStats
      tags:
        - setting
      responses:
        '200':
          description: status
          content:
            text/plain:
              schema:
                type: string
  /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
      responses:
        '200':
          description: free usage
          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_10
                  email:
                    type: string
                  login_type:
                    type: string
                    enum:
                      - password
                      - github
                  super_admin:
                    type: boolean
                  verified:
                    type: boolean
                  name:
                    type: string
                  company:
                    type: string
                required: &ref_11
                  - 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_12
                    workspace_id:
                      type: string
                    email:
                      type: string
                    is_admin:
                      type: boolean
                    operator:
                      type: boolean
                  required: &ref_13
                    - 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_8
                  email:
                    type: string
                  username:
                    type: string
                  is_admin:
                    type: boolean
                  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
                  usage:
                    type: object
                    properties: &ref_118
                      executions:
                        type: number
                required: &ref_9
                  - email
                  - username
                  - is_admin
                  - is_super_admin
                  - created_at
                  - operator
                  - disabled
                  - folders
                  - folders_owners
  /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
                - username
      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
                - username
      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}/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_8
                required: *ref_9
  /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_3
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_4
      responses:
        '200':
          description: user
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: *ref_10
                  required: *ref_11
  /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_12
                  required: *ref_13
  /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
                  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
                  openai_resource_path:
                    type: string
                  code_completion_enabled:
                    type: boolean
                  error_handler:
                    type: string
                  error_handler_extra_args:
                    type: object
                    additionalProperties: &ref_14 {}
                  error_handler_muted_on_cancel:
                    type: boolean
                  large_file_storage:
                    type: object
                    properties: &ref_15
                      type:
                        type: string
                        enum:
                          - S3Storage
                          - AzureBlobStorage
                      s3_resource_path:
                        type: string
                      azure_blob_resource_path:
                        type: string
                      public_resource:
                        type: boolean
                  git_sync:
                    type: object
                    properties: &ref_16
                      include_path:
                        type: array
                        items:
                          type: string
                      include_type:
                        type: array
                        items:
                          type: string
                          enum:
                            - script
                            - flow
                            - app
                            - folder
                            - resource
                            - variable
                            - secret
                            - resourcetype
                            - schedule
                      repositories:
                        type: array
                        items:
                          type: object
                          properties: &ref_174
                            script_path:
                              type: string
                            git_repo_resource_path:
                              type: string
                            use_individual_branch:
                              type: boolean
                          required: &ref_175
                            - script_path
                            - git_repo_resource_path
                  default_app:
                    type: string
                required:
                  - code_completion_enabled
  /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
                  seats:
                    type: number
                required:
                  - premium
  /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/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/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
              required:
                - code_completion_enabled
              properties:
                openai_resource_path:
                  type: string
                code_completion_enabled:
                  type: boolean
      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:
            text/plain:
              schema:
                type: object
                properties:
                  exists_openai_resource_path:
                    type: boolean
                  code_completion_enabled:
                    type: boolean
                required:
                  - exists_openai_resource_path
                  - code_completion_enabled
  /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
                  additionalProperties: *ref_14
                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_15
      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_16
      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/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
              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_15
  /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_8
                  required: *ref_9
  /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
  /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_126
                label:
                  type: string
                expiration:
                  type: string
                  format: date-time
                scopes:
                  type: array
                  items:
                    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_127
                label:
                  type: string
                expiration:
                  type: string
                  format: date-time
                impersonate_email:
                  type: string
              required: &ref_128
                - 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
      responses:
        '200':
          description: truncated token
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_124
                    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
                  required: &ref_125
                    - 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
      tags:
        - variable
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: already_encrypted
          in: query
          schema:
            type: boolean
      requestBody:
        description: new variable
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_131
                path:
                  type: string
                value:
                  type: string
                is_secret:
                  type: boolean
                description:
                  type: string
                account:
                  type: integer
                is_oauth:
                  type: boolean
              required: &ref_132
                - 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
      tags:
        - variable
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_17
      responses:
        '200':
          description: variable deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/variables/update/{path}:
    post:
      summary: update variable
      operationId: updateVariable
      tags:
        - variable
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_17
        - name: already_encrypted
          in: query
          schema:
            type: boolean
      requestBody:
        description: updated variable
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_133
                path:
                  type: string
                value:
                  type: string
                is_secret:
                  type: boolean
                description:
                  type: string
      responses:
        '200':
          description: variable updated
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/variables/get/{path}:
    get:
      summary: get variable
      operationId: getVariable
      tags:
        - variable
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_17
        - 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_18
                  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
                required: &ref_19
                  - 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_17
      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_17
      responses:
        '200':
          description: variable
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/variables/list:
    get:
      summary: list variables
      operationId: listVariable
      tags:
        - variable
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: variable list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: *ref_18
                  required: *ref_19
  /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_129
                    name:
                      type: string
                    value:
                      type: string
                    description:
                      type: string
                  required: &ref_130
                    - name
                    - value
                    - description
  /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_20
            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_callback/{client_name}:
    post:
      summary: connect callback
      operationId: connectCallback
      tags:
        - oauth
      parameters:
        - name: client_name
          in: path
          required: true
          schema: *ref_20
      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_167
                  access_token:
                    type: string
                  expires_in:
                    type: integer
                  refresh_token:
                    type: string
                  scope:
                    type: array
                    items:
                      type: string
                required: &ref_168
                  - 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
              required:
                - expires_in
                - client
      responses:
        '200':
          description: account set
          content:
            text/plain:
              schema:
                type: string
  /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_21
            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_21
      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
  /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: string
                  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:
                additionalProperties:
                  type: object
                  properties:
                    extra_params:
                      additionalProperties:
                        type: string
                    scopes:
                      type: array
                      items:
                        type: string
  /w/{workspace}/resources/create:
    post:
      summary: create resource
      operationId: createResource
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: update_if_exists
          in: query
          schema:
            type: boolean
      requestBody:
        description: new resource
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_136
                path:
                  type: string
                value: {}
                description:
                  type: string
                resource_type:
                  type: string
              required: &ref_137
                - 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
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_17
      responses:
        '200':
          description: resource deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/resources/update/{path}:
    post:
      summary: update resource
      operationId: updateResource
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_17
      requestBody:
        description: updated resource
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_138
                path:
                  type: string
                description:
                  type: string
                value: {}
      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_17
      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
      tags:
        - resource
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_17
      responses:
        '200':
          description: resource
          content:
            application/json:
              schema:
                type: object
                properties: &ref_139
                  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
                required: &ref_140
                  - 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_17
        - 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_17
      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_17
      responses:
        '200':
          description: does resource exists
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/resources/list:
    get:
      summary: list resources
      operationId: listResource
      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_3
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_4
        - 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
      responses:
        '200':
          description: resource list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_141
                    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
                  required: &ref_142
                    - 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_80
            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_22
                workspace_id:
                  type: string
                name:
                  type: string
                schema: {}
                description:
                  type: string
              required: &ref_23
                - name
      responses:
        '201':
          description: resource_type created
          content:
            text/plain:
              schema:
                type: string
  /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_17
      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_17
      requestBody:
        description: updated resource_type
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_143
                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_17
      responses:
        '200':
          description: resource_type deleted
          content:
            application/json:
              schema:
                type: object
                properties: *ref_22
                required: *ref_23
  /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_17
      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
      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_22
                  required: *ref_23
  /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_24
      responses:
        '200':
          description: flow
          content:
            application/json:
              schema:
                type: object
                properties:
                  flow:
                    type: object
                    properties: &ref_43
                      summary:
                        type: string
                      description:
                        type: string
                      value:
                        type: object
                        properties: &ref_50
                          modules:
                            type: array
                            items:
                              type: object
                              properties: &ref_27
                                id:
                                  type: string
                                value:
                                  oneOf: &ref_206
                                    - type: object
                                      properties: &ref_192
                                        input_transforms:
                                          type: object
                                          additionalProperties:
                                            oneOf: &ref_25
                                              - type: object
                                                properties: &ref_188
                                                  value: {}
                                                  type:
                                                    type: string
                                                    enum:
                                                      - javascript
                                                required: &ref_189
                                                  - expr
                                                  - type
                                              - type: object
                                                properties: &ref_190
                                                  expr:
                                                    type: string
                                                  type:
                                                    type: string
                                                    enum:
                                                      - javascript
                                                required: &ref_191
                                                  - expr
                                                  - type
                                            discriminator: &ref_26
                                              propertyName: type
                                              mapping:
                                                static: '#/components/schemas/StaticTransform'
                                                javascript: '#/components/schemas/JavascriptTransform'
                                        content:
                                          type: string
                                        language:
                                          type: string
                                          enum:
                                            - deno
                                            - bun
                                            - python3
                                            - go
                                            - bash
                                            - powershell
                                            - postgresql
                                            - mysql
                                            - bigquery
                                            - snowflake
                                            - mssql
                                            - graphql
                                            - nativets
                                        path:
                                          type: string
                                        lock:
                                          type: string
                                        type:
                                          type: string
                                          enum:
                                            - rawscript
                                        tag:
                                          type: string
                                        concurrent_limit:
                                          type: number
                                        concurrency_time_window_s:
                                          type: number
                                      required: &ref_193
                                        - type
                                        - content
                                        - language
                                        - input_transforms
                                    - type: object
                                      properties: &ref_194
                                        input_transforms:
                                          type: object
                                          additionalProperties:
                                            oneOf: *ref_25
                                            discriminator: *ref_26
                                        path:
                                          type: string
                                        hash:
                                          type: string
                                        type:
                                          type: string
                                          enum:
                                            - script
                                      required: &ref_195
                                        - type
                                        - path
                                        - input_transforms
                                    - type: object
                                      properties: &ref_196
                                        input_transforms:
                                          type: object
                                          additionalProperties:
                                            oneOf: *ref_25
                                            discriminator: *ref_26
                                        path:
                                          type: string
                                        type:
                                          type: string
                                          enum:
                                            - flow
                                      required: &ref_197
                                        - type
                                        - path
                                        - input_transforms
                                    - type: object
                                      properties: &ref_198
                                        modules:
                                          type: array
                                          items:
                                            type: object
                                            properties: *ref_27
                                            required: &ref_28
                                              - value
                                              - id
                                        iterator:
                                          oneOf: *ref_25
                                          discriminator: *ref_26
                                        skip_failures:
                                          type: boolean
                                        type:
                                          type: string
                                          enum:
                                            - forloopflow
                                        parallel:
                                          type: boolean
                                        parallelism:
                                          type: integer
                                      required: &ref_199
                                        - modules
                                        - iterator
                                        - skip_failures
                                        - type
                                    - type: object
                                      properties: &ref_200
                                        branches:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              summary:
                                                type: string
                                              expr:
                                                type: string
                                              modules:
                                                type: array
                                                items:
                                                  type: object
                                                  properties: *ref_27
                                                  required: *ref_28
                                            required:
                                              - modules
                                              - expr
                                        default:
                                          type: array
                                          items:
                                            type: object
                                            properties: *ref_27
                                            required: *ref_28
                                          required:
                                            - modules
                                        type:
                                          type: string
                                          enum:
                                            - branchone
                                      required: &ref_201
                                        - branches
                                        - default
                                        - type
                                    - type: object
                                      properties: &ref_202
                                        branches:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              summary:
                                                type: string
                                              skip_failure:
                                                type: boolean
                                              modules:
                                                type: array
                                                items:
                                                  type: object
                                                  properties: *ref_27
                                                  required: *ref_28
                                            required:
                                              - modules
                                              - expr
                                        type:
                                          type: string
                                          enum:
                                            - branchall
                                        parallel:
                                          type: boolean
                                      required: &ref_203
                                        - branches
                                        - type
                                    - type: object
                                      properties: &ref_204
                                        type:
                                          type: string
                                          enum:
                                            - identity
                                        flow:
                                          type: boolean
                                      required: &ref_205
                                        - type
                                  discriminator: &ref_207
                                    propertyName: type
                                    mapping:
                                      rawscript: '#/components/schemas/RawScript'
                                      script: '#/components/schemas/PathScript'
                                      flow: '#/components/schemas/PathFlow'
                                      forloopflow: '#/components/schemas/ForloopFlow'
                                      branchone: '#/components/schemas/BranchOne'
                                      branchall: '#/components/schemas/BranchAll'
                                      identity: '#/components/schemas/Identity'
                                stop_after_if:
                                  type: object
                                  properties:
                                    skip_if_stopped:
                                      type: boolean
                                    expr:
                                      type: string
                                  required:
                                    - expr
                                sleep:
                                  oneOf: *ref_25
                                  discriminator: *ref_26
                                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_25
                                      discriminator: *ref_26
                                    self_approval_disabled:
                                      type: boolean
                                priority:
                                  type: number
                                retry:
                                  type: object
                                  properties: &ref_77
                                    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_28
                          failure_module:
                            type: object
                            properties: *ref_27
                            required: *ref_28
                          same_worker:
                            type: boolean
                          concurrent_limit:
                            type: number
                          concurrency_time_window_s:
                            type: number
                          skip_expr:
                            type: string
                          cache_ttl:
                            type: number
                          priority:
                            type: number
                          early_return:
                            type: string
                        required: &ref_51
                          - modules
                      schema:
                        type: object
                    required: &ref_44
                      - 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_24
      responses:
        '200':
          description: app
          content:
            application/json:
              schema:
                type: object
                properties:
                  app:
                    type: object
                    properties:
                      summary:
                        type: string
                      value: {}
                    required:
                      - summary
                      - value
                required:
                  - app
  /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_29
            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_29
      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:
                          name: kind
                          schema: &ref_30
                            type: string
                            enum:
                              - 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:
                      name: kind
                      schema: *ref_30
                    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
      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_3
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_4
        - name: order_desc
          description: order by desc order (default true)
          in: query
          schema: &ref_41
            type: boolean
        - name: created_by
          description: mask to filter exact matching user creator
          in: query
          schema: &ref_42
            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 also 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: 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
      responses:
        '200':
          description: All scripts
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_31
                    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:
                        - python3
                        - deno
                        - go
                        - bash
                        - powershell
                        - postgresql
                        - mysql
                        - bigquery
                        - snowflake
                        - mssql
                        - graphql
                        - nativets
                        - bun
                    kind:
                      type: string
                      enum:
                        - script
                        - failure
                        - trigger
                        - command
                        - approval
                    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
                    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
                  required: &ref_32
                    - hash
                    - path
                    - summary
                    - description
                    - content
                    - created_by
                    - created_at
                    - archived
                    - deleted
                    - is_template
                    - extra_perms
                    - language
                    - kind
                    - starred
  /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_29
      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_34
                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:
                    - python3
                    - deno
                    - go
                    - bash
                    - powershell
                    - postgresql
                    - mysql
                    - bigquery
                    - snowflake
                    - mssql
                    - graphql
                    - nativets
                    - bun
                kind:
                  type: string
                  enum:
                    - script
                    - failure
                    - trigger
                    - command
                    - approval
                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
              required: &ref_35
                - 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_29
      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
      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_29
      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_33
            type: string
      responses:
        '200':
          description: script details
          content:
            application/json:
              schema:
                type: object
                properties: *ref_31
                required: *ref_32
  /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_33
      responses:
        '200':
          description: script details
          content:
            application/json:
              schema:
                type: object
                properties: *ref_31
                required: *ref_32
  /w/{workspace}/scripts/delete/p/{path}:
    post:
      summary: delete all scripts 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_29
      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
      tags:
        - script
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_29
      responses:
        '200':
          description: script details
          content:
            application/json:
              schema:
                type: object
                properties: *ref_31
                required: *ref_32
  /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_29
      responses:
        '200':
          description: script details
          content:
            application/json:
              schema:
                allOf: &ref_110
                  - type: object
                    properties: *ref_34
                    required: *ref_35
                  - type: object
                    properties:
                      draft:
                        type: object
                        properties: *ref_34
                        required: *ref_35
                      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_29
      responses:
        '200':
          description: script history
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_111
                    script_hash:
                      type: string
                    deployment_msg:
                      type: string
                  required: &ref_112
                    - script_hash
  /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_33
        - name: path
          in: path
          required: true
          schema: *ref_29
      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_29
      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_96
            type: string
        - name: path
          in: path
          required: true
          schema: *ref_29
      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_29
      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_33
      responses:
        '200':
          description: script details
          content:
            application/json:
              schema:
                type: object
                properties: *ref_31
                required: *ref_32
  /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_29
      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_33
      responses:
        '200':
          description: script details
          content:
            application/json:
              schema:
                type: object
                properties:
                  lock:
                    type: string
                  lock_error_logs:
                    type: string
  /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_29
        - 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_36
            type: string
            format: uuid
        - name: tag
          description: Override the tag to use
          in: query
          schema: &ref_38
            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_37
            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
              additionalProperties: *ref_14
      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_29
        - 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_36
        - 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_37
        - 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_39
            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_40
            type: string
      requestBody:
        description: script args
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: *ref_14
      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_29
        - 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_36
        - name: tag
          description: Override the tag to use
          in: query
          schema: *ref_38
        - 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_37
        - 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_39
        - 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_40
      requestBody:
        description: script args
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: *ref_14
      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_29
        - 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_36
        - name: tag
          description: Override the tag to use
          in: query
          schema: *ref_38
        - 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_37
        - 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_39
        - 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_40
        - 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_76
            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_29
        - 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_39
        - 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_40
        - 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_37
      requestBody:
        description: script args
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: *ref_14
      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_29
        - 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_39
        - 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_40
        - 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_37
      requestBody:
        description: script args
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: *ref_14
      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
      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_3
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_4
        - name: order_desc
          description: order by desc order (default true)
          in: query
          schema: *ref_41
        - name: created_by
          description: mask to filter exact matching user creator
          in: query
          schema: *ref_42
        - 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 also 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
      responses:
        '200':
          description: All flow
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf:
                    - allOf: &ref_45
                        - type: object
                          properties: *ref_43
                          required: *ref_44
                        - type: object
                          properties: &ref_155
                            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:
                              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
                          required: &ref_156
                            - path
                            - edited_by
                            - edited_at
                            - archived
                            - extra_perms
                    - type: object
                      properties:
                        has_draft:
                          type: boolean
                        draft_only:
                          type: boolean
  /w/{workspace}/flows/get/{path}:
    get:
      summary: get flow by path
      operationId: getFlowByPath
      tags:
        - flow
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_29
      responses:
        '200':
          description: flow details
          content:
            application/json:
              schema:
                allOf: *ref_45
  /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_29
      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_29
      responses:
        '200':
          description: flow details with draft
          content:
            application/json:
              schema:
                allOf:
                  - allOf: *ref_45
                  - type: object
                    properties:
                      draft:
                        allOf: *ref_45
  /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_29
      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_46
                    - type: object
                      properties: *ref_43
                      required: *ref_44
                    - 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
                      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_29
      requestBody:
        description: Partially filled flow
        required: true
        content:
          application/json:
            schema:
              allOf:
                - allOf: *ref_46
                - 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_29
      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_29
      responses:
        '200':
          description: flow delete
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/flows/input_history/p/{path}:
    get:
      summary: list inputs for previous completed flow jobs
      operationId: getFlowInputHistoryByPath
      tags:
        - flow
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_29
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_3
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_4
      responses:
        '200':
          description: input history for completed jobs with this flow path
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_87
                    id:
                      type: string
                    name:
                      type: string
                    args:
                      type: object
                    created_by:
                      type: string
                    created_at:
                      type: string
                      format: date-time
                    is_public:
                      type: boolean
                    success:
                      type: boolean
                  required: &ref_88
                    - id
                    - name
                    - args
                    - created_by
                    - created_at
                    - is_public
  /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_3
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_4
        - name: order_desc
          description: order by desc order (default true)
          in: query
          schema: *ref_41
        - name: created_by
          description: mask to filter exact matching user creator
          in: query
          schema: *ref_42
        - 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_162
                    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_163
                    - 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_17
      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_95
            type: number
        - name: path
          in: path
          required: true
          schema: *ref_29
      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_3
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_4
        - name: order_desc
          description: order by desc order (default true)
          in: query
          schema: *ref_41
        - name: created_by
          description: mask to filter exact matching user creator
          in: query
          schema: *ref_42
        - 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 apps
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_160
                    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
                  required: &ref_161
                    - 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_47
                    triggerables:
                      type: object
                      additionalProperties:
                        type: object
                    execution_mode:
                      type: string
                      enum:
                        - viewer
                        - publisher
                        - anonymous
                    on_behalf_of:
                      type: string
                    on_behalf_of_email:
                      type: string
                draft_only:
                  type: boolean
                deployment_message:
                  type: string
              required:
                - path
                - value
                - summary
                - policy
      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_17
      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_29
      responses:
        '200':
          description: app details
          content:
            application/json:
              schema:
                type: object
                properties: &ref_48
                  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: {}
                  policy:
                    type: object
                    properties: *ref_47
                  execution_mode:
                    type: string
                    enum:
                      - viewer
                      - publisher
                      - anonymous
                  extra_perms:
                    type: object
                    additionalProperties:
                      type: boolean
                required: &ref_49
                  - id
                  - workspace_id
                  - path
                  - summary
                  - versions
                  - created_by
                  - created_at
                  - value
                  - policy
                  - execution_mode
                  - extra_perms
  /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_29
      responses:
        '200':
          description: app details with draft
          content:
            application/json:
              schema:
                allOf: &ref_164
                  - type: object
                    properties: *ref_48
                    required: *ref_49
                  - 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_29
      responses:
        '200':
          description: app history
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_165
                    version:
                      type: integer
                    deployment_msg:
                      type: string
                  required: &ref_166
                    - version
  /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_24
        - name: version
          in: path
          required: true
          schema: &ref_97
            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_17
      responses:
        '200':
          description: app details
          content:
            application/json:
              schema:
                type: object
                properties: *ref_48
                required: *ref_49
  /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_17
      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_17
      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_24
      responses:
        '200':
          description: app details
          content:
            application/json:
              schema:
                type: object
                properties: *ref_48
                required: *ref_49
  /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_29
      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_17
      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_17
      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_29
      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_47
                deployment_message:
                  type: string
      responses:
        '200':
          description: app updated
          content:
            text/plain:
              schema:
                type: string
  /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_29
      requestBody:
        description: update app
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                component:
                  type: string
                path:
                  type: string
                args: {}
                raw_code:
                  type: object
                  properties:
                    content:
                      type: string
                    language:
                      type: string
                    path:
                      type: string
                    cache_ttl:
                      type: integer
                  required:
                    - content
                    - language
                force_viewer_static_fields:
                  type: object
              required:
                - args
                - component
      responses:
        '200':
          description: job uuid
          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_29
        - 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_36
        - name: tag
          description: Override the tag to use
          in: query
          schema: *ref_38
        - 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_37
        - 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_39
        - 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
              additionalProperties: *ref_14
      responses:
        '201':
          description: job created
          content:
            text/plain:
              schema:
                type: string
                format: uuid
  /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_73
            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_36
        - name: tag
          description: Override the tag to use
          in: query
          schema: *ref_38
        - 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_37
        - 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_39
        - 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
              additionalProperties: *ref_14
      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_33
        - 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_36
        - name: tag
          description: Override the tag to use
          in: query
          schema: *ref_38
        - 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_37
        - 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_39
        - 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_39
        - 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_37
      requestBody:
        description: preview
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_134
                content:
                  type: string
                path:
                  type: string
                args:
                  type: object
                  additionalProperties: *ref_14
                language:
                  type: string
                  enum:
                    - python3
                    - deno
                    - go
                    - bash
                    - powershell
                    - postgresql
                    - mysql
                    - bigquery
                    - snowflake
                    - mssql
                    - graphql
                    - nativets
                    - bun
                tag:
                  type: string
                kind:
                  type: string
                  enum:
                    - code
                    - identity
                    - http
                dedicated_worker:
                  type: boolean
                lock:
                  type: string
              required: &ref_135
                - 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_184
                      raw_code:
                        type: string
                      path:
                        type: string
                      language:
                        type: string
                        enum:
                          - python3
                          - deno
                          - go
                          - bash
                          - powershell
                          - postgresql
                          - mysql
                          - bigquery
                          - snowflake
                          - mssql
                          - graphql
                          - nativets
                          - bun
                    required: &ref_185
                      - 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_39
        - 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_37
      requestBody:
        description: preview
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_157
                value:
                  type: object
                  properties: *ref_50
                  required: *ref_51
                path:
                  type: string
                args:
                  type: object
                  additionalProperties: *ref_14
                tag:
                  type: string
                restarted_from:
                  type: object
                  properties: &ref_159
                    flow_job_id:
                      type: string
                      format: uuid
                    step_id:
                      type: string
                    branch_or_iteration_n:
                      type: integer
              required: &ref_158
                - 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
      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_41
        - name: created_by
          description: mask to filter exact matching user creator
          in: query
          schema: *ref_42
        - 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_36
        - name: script_path_exact
          description: mask to filter exact matching path
          in: query
          schema: &ref_54
            type: string
        - name: script_path_start
          description: mask to filter matching starting path
          in: query
          schema: &ref_55
            type: string
        - name: schedule_path
          description: mask to filter by schedule path
          in: query
          schema: &ref_56
            type: string
        - name: script_hash
          description: mask to filter exact matching path
          in: query
          schema: &ref_57
            type: string
        - name: started_before
          description: filter on started before (inclusive) timestamp
          in: query
          schema: &ref_58
            type: string
            format: date-time
        - name: started_after
          description: filter on started after (exclusive) timestamp
          in: query
          schema: &ref_59
            type: string
            format: date-time
        - name: success
          description: filter on successful jobs
          in: query
          schema: &ref_60
            type: boolean
        - name: scheduled_for_before_now
          description: filter on jobs scheduled_for before now (hence waitinf for a worker)
          in: query
          schema: &ref_68
            type: boolean
        - name: job_kinds
          description: >-
            filter on job kind (values 'preview', 'script', 'dependencies',
            'flow') separated by,
          in: query
          schema: &ref_61
            type: string
        - name: suspended
          description: filter on suspended jobs
          in: query
          schema: &ref_100
            type: boolean
        - name: running
          description: filter on running jobs
          in: query
          schema: &ref_67
            type: boolean
        - name: args
          description: >-
            filter on jobs containing those args as a json subset (@> in
            postgres)
          in: query
          schema: &ref_62
            type: string
        - name: result
          description: >-
            filter on jobs containing those result as a json subset (@> in
            postgres)
          in: query
          schema: &ref_63
            type: string
        - name: tag
          description: filter on jobs with a given tag/worker group
          in: query
          schema: &ref_64
            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
      responses:
        '200':
          description: All queued jobs
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_71
                    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
                      additionalProperties: *ref_14
                    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
                    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_65
                        step:
                          type: integer
                        modules:
                          type: array
                          items:
                            type: object
                            properties: &ref_52
                              type:
                                type: string
                                enum:
                                  - WaitingForPriorSteps
                                  - WaitingForEvents
                                  - WaitingForExecutor
                                  - InProgress
                                  - Success
                                  - Failure
                              id:
                                type: string
                              job:
                                type: string
                                format: uuid
                              count:
                                type: integer
                              iterator:
                                type: object
                                properties:
                                  index:
                                    type: integer
                                  itered:
                                    type: array
                                    items: {}
                                  args: {}
                              flow_jobs:
                                type: array
                                items:
                                  type: string
                              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
                            required: &ref_53
                              - type
                        failure_module:
                          allOf:
                            - type: object
                              properties: *ref_52
                              required: *ref_53
                            - 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_66
                        - step
                        - modules
                        - failure_module
                    raw_flow:
                      type: object
                      properties: *ref_50
                      required: *ref_51
                    is_flow_step:
                      type: boolean
                    language:
                      type: string
                      enum:
                        - python3
                        - deno
                        - go
                        - bash
                        - powershell
                        - postgresql
                        - mysql
                        - bigquery
                        - snowflake
                        - mssql
                        - graphql
                        - nativets
                        - bun
                    email:
                      type: string
                    visible_to_owner:
                      type: boolean
                    mem_peak:
                      type: integer
                    tag:
                      type: string
                    priority:
                      type: integer
                  required: &ref_72
                    - 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
                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/queue/cancel_all:
    post:
      summary: cancel all jobs
      operationId: cancelAll
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      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_41
        - name: created_by
          description: mask to filter exact matching user creator
          in: query
          schema: *ref_42
        - 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_36
        - name: script_path_exact
          description: mask to filter exact matching path
          in: query
          schema: *ref_54
        - name: script_path_start
          description: mask to filter matching starting path
          in: query
          schema: *ref_55
        - name: schedule_path
          description: mask to filter by schedule path
          in: query
          schema: *ref_56
        - name: script_hash
          description: mask to filter exact matching path
          in: query
          schema: *ref_57
        - name: started_before
          description: filter on started before (inclusive) timestamp
          in: query
          schema: *ref_58
        - name: started_after
          description: filter on started after (exclusive) timestamp
          in: query
          schema: *ref_59
        - name: success
          description: filter on successful jobs
          in: query
          schema: *ref_60
        - name: job_kinds
          description: >-
            filter on job kind (values 'preview', 'script', 'dependencies',
            'flow') separated by,
          in: query
          schema: *ref_61
        - name: args
          description: >-
            filter on jobs containing those args as a json subset (@> in
            postgres)
          in: query
          schema: *ref_62
        - name: result
          description: >-
            filter on jobs containing those result as a json subset (@> in
            postgres)
          in: query
          schema: *ref_63
        - name: tag
          description: filter on jobs with a given tag/worker group
          in: query
          schema: *ref_64
        - 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
      responses:
        '200':
          description: All completed jobs
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_69
                    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
                      additionalProperties: *ref_14
                    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
                    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_65
                      required: *ref_66
                    raw_flow:
                      type: object
                      properties: *ref_50
                      required: *ref_51
                    is_flow_step:
                      type: boolean
                    language:
                      type: string
                      enum:
                        - python3
                        - deno
                        - go
                        - bash
                        - powershell
                        - postgresql
                        - mysql
                        - bigquery
                        - snowflake
                        - mssql
                        - graphql
                        - nativets
                        - bun
                    is_skipped:
                      type: boolean
                    email:
                      type: string
                    visible_to_owner:
                      type: boolean
                    mem_peak:
                      type: integer
                    tag:
                      type: string
                    priority:
                      type: integer
                  required: &ref_70
                    - 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
      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_42
        - 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_36
        - name: script_path_exact
          description: mask to filter exact matching path
          in: query
          schema: *ref_54
        - name: script_path_start
          description: mask to filter matching starting path
          in: query
          schema: *ref_55
        - name: schedule_path
          description: mask to filter by schedule path
          in: query
          schema: *ref_56
        - name: script_hash
          description: mask to filter exact matching path
          in: query
          schema: *ref_57
        - name: started_before
          description: filter on started before (inclusive) timestamp
          in: query
          schema: *ref_58
        - name: started_after
          description: filter on started after (exclusive) timestamp
          in: query
          schema: *ref_59
        - 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_99
            type: string
            format: date-time
        - name: running
          description: filter on running jobs
          in: query
          schema: *ref_67
        - name: scheduled_for_before_now
          description: filter on jobs scheduled_for before now (hence waitinf for a worker)
          in: query
          schema: *ref_68
        - 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_98
            type: string
            format: date-time
        - name: job_kinds
          description: >-
            filter on job kind (values 'preview', 'script', 'dependencies',
            'flow') separated by,
          in: query
          schema: *ref_61
        - name: args
          description: >-
            filter on jobs containing those args as a json subset (@> in
            postgres)
          in: query
          schema: *ref_62
        - name: tag
          description: filter on jobs with a given tag/worker group
          in: query
          schema: *ref_64
        - name: result
          description: >-
            filter on jobs containing those result as a json subset (@> in
            postgres)
          in: query
          schema: *ref_63
        - 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: 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
      responses:
        '200':
          description: All jobs
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf: &ref_74
                    - oneOf:
                        - type: object
                          properties: *ref_69
                          required: *ref_70
                        - type: object
                          properties: *ref_71
                          required: *ref_72
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - CompletedJob
                            - QueuedJob
                  discriminator: &ref_75
                    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
  /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_73
      responses:
        '200':
          description: job details
          content:
            application/json:
              schema:
                allOf: *ref_74
                discriminator: *ref_75
  /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_73
      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_73
      responses:
        '200':
          description: job details
          content:
            text/plain:
              schema:
                type: string
  /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_73
        - name: running
          in: query
          schema:
            type: boolean
        - name: log_offset
          in: query
          schema:
            type: integer
      responses:
        '200':
          description: job details
          content:
            application/json:
              schema:
                type: object
                properties:
                  running:
                    type: boolean
                  completed:
                    type: boolean
                  new_logs:
                    type: string
                  mem_peak:
                    type: integer
  /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_73
      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_73
      responses:
        '200':
          description: job details
          content:
            application/json:
              schema:
                type: object
                properties: *ref_69
                required: *ref_70
  /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_73
      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_73
        - name: get_started
          in: query
          schema: &ref_108
            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_73
      responses:
        '200':
          description: job details
          content:
            application/json:
              schema:
                type: object
                properties: *ref_69
                required: *ref_70
  /w/{workspace}/jobs_u/queue/cancel/{id}:
    post:
      summary: cancel queued job
      operationId: cancelQueuedJob
      tags:
        - job
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: id
          in: path
          required: true
          schema: *ref_73
      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_17
      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_73
      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_73
        - 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_73
        - 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_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_73
        - 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_76
        - 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_73
        - 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/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_73
      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_73
        - 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_73
        - 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_73
        - 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:
                    allOf: *ref_74
                    discriminator: *ref_75
                  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
              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
      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_145
                path:
                  type: string
                schedule:
                  type: string
                timezone:
                  type: string
                script_path:
                  type: string
                is_flow:
                  type: boolean
                args:
                  type: object
                  additionalProperties: *ref_14
                enabled:
                  type: boolean
                on_failure:
                  type: string
                on_failure_times:
                  type: number
                on_failure_exact:
                  type: boolean
                on_failure_extra_args:
                  type: object
                  additionalProperties: *ref_14
                on_recovery:
                  type: string
                on_recovery_times:
                  type: number
                on_recovery_extra_args:
                  type: object
                  additionalProperties: *ref_14
                ws_error_handler_muted:
                  type: boolean
                retry:
                  type: object
                  properties: *ref_77
                no_flow_overlap:
                  type: boolean
                summary:
                  type: string
                tag:
                  type: string
              required: &ref_146
                - 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
      tags:
        - schedule
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_17
      requestBody:
        description: updated schedule
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_147
                schedule:
                  type: string
                timezone:
                  type: string
                args:
                  type: object
                  additionalProperties: *ref_14
                on_failure:
                  type: string
                on_failure_times:
                  type: number
                on_failure_exact:
                  type: boolean
                on_failure_extra_args:
                  type: object
                  additionalProperties: *ref_14
                on_recovery:
                  type: string
                on_recovery_times:
                  type: number
                on_recovery_extra_args:
                  type: object
                  additionalProperties: *ref_14
                ws_error_handler_muted:
                  type: boolean
                retry:
                  type: object
                  properties: *ref_77
                no_flow_overlap:
                  type: boolean
                summary:
                  type: string
                tag:
                  type: string
              required: &ref_148
                - schedule
                - timezone
                - script_path
                - is_flow
                - 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_17
      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
      tags:
        - schedule
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_17
      responses:
        '200':
          description: schedule deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/schedules/get/{path}:
    get:
      summary: get schedule
      operationId: getSchedule
      tags:
        - schedule
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_17
      responses:
        '200':
          description: schedule deleted
          content:
            application/json:
              schema:
                type: object
                properties: &ref_78
                  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
                    additionalProperties: *ref_14
                  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
                    additionalProperties: *ref_14
                  on_recovery:
                    type: string
                  on_recovery_times:
                    type: number
                  on_recovery_extra_args:
                    type: object
                    additionalProperties: *ref_14
                  ws_error_handler_muted:
                    type: boolean
                  retry:
                    type: object
                    properties: *ref_77
                  summary:
                    type: string
                  no_flow_overlap:
                    type: boolean
                  tag:
                    type: string
                required: &ref_79
                  - 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_17
      responses:
        '200':
          description: schedule exists
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/schedules/list:
    get:
      summary: list schedules
      operationId: listSchedules
      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_3
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_4
        - name: path
          description: filter by path
          in: query
          schema:
            type: string
        - name: is_flow
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: schedule list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: *ref_78
                  required: *ref_79
  /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_3
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_4
      responses:
        '200':
          description: schedule list
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf: &ref_144
                    - type: object
                      properties: *ref_78
                      required: *ref_79
                    - 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
                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
  /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_81
                    name:
                      type: string
                    summary:
                      type: string
                    emails:
                      type: array
                      items:
                        type: string
                  required: &ref_82
                    - name
  /groups/get/{name}:
    get:
      summary: get instance group
      operationId: getInstanceGroup
      tags:
        - group
      parameters:
        - name: name
          in: path
          required: true
          schema: *ref_80
      responses:
        '200':
          description: instance group
          content:
            application/json:
              schema:
                type: object
                properties: *ref_81
                required: *ref_82
  /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_80
      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_80
      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_80
      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_80
      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
  /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_3
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_4
      responses:
        '200':
          description: group list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_83
                    name:
                      type: string
                    summary:
                      type: string
                    members:
                      type: array
                      items:
                        type: string
                    extra_perms:
                      type: object
                      additionalProperties:
                        type: boolean
                  required: &ref_84
                    - 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_80
      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_80
      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_80
      responses:
        '200':
          description: group
          content:
            application/json:
              schema:
                type: object
                properties: *ref_83
                required: *ref_84
  /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_80
      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_80
      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_3
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_4
      responses:
        '200':
          description: folder list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: &ref_85
                    name:
                      type: string
                    owners:
                      type: array
                      items:
                        type: string
                    extra_perms:
                      type: object
                      additionalProperties:
                        type: boolean
                  required: &ref_86
                    - 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
                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_80
      requestBody:
        description: update folder
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                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_80
      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_80
      responses:
        '200':
          description: folder
          content:
            application/json:
              schema:
                type: object
                properties: *ref_85
                required: *ref_86
  /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_80
      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_80
      requestBody:
        description: owner user to folder
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                owner:
                  type: string
      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_80
      requestBody:
        description: added owner to folder
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                owner:
                  type: string
      responses:
        '200':
          description: owner removed from folder
          content:
            text/plain:
              schema:
                type: string
  /workers/list:
    get:
      summary: list workers
      operationId: listWorkers
      tags:
        - worker
      parameters:
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_3
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_4
        - 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_149
                    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
                  required: &ref_150
                    - 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
  /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_80
      responses:
        '200':
          description: a config
          content:
            application/json:
              schema: {}
  /configs/update/{name}:
    post:
      summary: Update config
      operationId: updateConfig
      tags:
        - config
      parameters:
        - name: name
          in: path
          required: true
          schema: *ref_80
      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_80
      responses:
        '200':
          description: Delete config
          content:
            text/plain:
              schema:
                type: string
  /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_17
        - name: kind
          in: path
          required: true
          schema:
            type: string
            enum:
              - script
              - group_
              - resource
              - schedule
              - variable
              - flow
              - folder
              - app
              - raw_app
      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_17
        - name: kind
          in: path
          required: true
          schema:
            type: string
            enum:
              - script
              - group_
              - resource
              - schedule
              - variable
              - flow
              - folder
              - app
              - raw_app
      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_17
        - name: kind
          in: path
          required: true
          schema:
            type: string
            enum:
              - script
              - group_
              - resource
              - schedule
              - variable
              - flow
              - folder
              - app
              - raw_app
      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_u/{path}:
    post:
      summary: update flow preview capture
      operationId: updateCapture
      tags:
        - capture
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_17
      responses:
        '204':
          description: flow preview captured
  /w/{workspace}/capture/{path}:
    put:
      summary: create flow preview capture
      operationId: createCapture
      tags:
        - capture
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_17
      responses:
        '201':
          description: flow preview capture created
    get:
      summary: get flow preview capture
      operationId: getCapture
      tags:
        - capture
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
        - name: path
          in: path
          required: true
          schema: *ref_17
      responses:
        '200':
          description: captured flow preview
          content:
            application/json:
              schema: {}
        '404':
          description: capture does not exist for this flow
  /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_89
            type: string
        - name: runnable_type
          in: query
          schema: &ref_90
            type: string
            enum: &ref_117
              - ScriptHash
              - ScriptPath
              - FlowPath
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_3
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_4
      responses:
        '200':
          description: Input history for completed jobs
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: *ref_87
                  required: *ref_88
  /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_89
        - name: runnable_type
          in: query
          schema: *ref_90
        - name: page
          description: which page to return (start at 1, default 1)
          in: query
          schema: *ref_3
        - name: per_page
          description: number of items to return for a given page (default 30, max 100)
          in: query
          schema: *ref_4
      responses:
        '200':
          description: Saved Inputs for a Runnable
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties: *ref_87
                  required: *ref_88
  /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_89
        - name: runnable_type
          in: query
          schema: *ref_90
      requestBody:
        description: Input
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: &ref_113
                name:
                  type: string
                args:
                  type: object
              required: &ref_114
                - 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_115
                id:
                  type: string
                name:
                  type: string
                is_public:
                  type: boolean
              required: &ref_116
                - 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_107
            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_91
                    bucket:
                      type: string
                    region:
                      type: string
                    endPoint:
                      type: string
                    useSSL:
                      type: boolean
                    accessKey:
                      type: string
                    secretKey:
                      type: string
                    pathStyle:
                      type: boolean
                  required: &ref_92
                    - 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
                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_91
                  required: *ref_92
      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_93
                      region_name:
                        type: string
                    required: &ref_94
                      - 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_93
                        required: *ref_94
                    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_91
                required: *ref_92
  /w/{workspace}/job_helpers/test_connection:
    get:
      summary: Test connection to the workspace datasets storage
      operationId: datasetStorageTestConnection
      tags:
        - helpers
      parameters:
        - name: workspace
          in: path
          required: true
          schema: *ref_0
      responses:
        '200':
          description: Connection settings
          content:
            application/json:
              schema: {}
  /w/{workspace}/job_helpers/list_stored_files:
    get:
      summary: List the file keys available in the workspace files storage (S3)
      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
      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_169
                        s3:
                          type: string
                      required: &ref_170
                        - 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
      responses:
        '200':
          description: FileMetadata
          content:
            application/json:
              schema:
                type: object
                properties: &ref_171
                  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
      responses:
        '200':
          description: FilePreview
          content:
            application/json:
              schema:
                type: object
                properties: &ref_172
                  msg:
                    type: string
                  content:
                    type: string
                  content_type:
                    type: string
                    enum:
                      - RawText
                      - Csv
                      - Parquet
                      - Unknown
                required: &ref_173
                  - 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_17
        - 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
      responses:
        '200':
          description: Parquet Preview
          content:
            application/json:
              schema: {}
  /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
      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
      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
      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 to 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
      responses:
        '200':
          description: Chunk of the downloaded file
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
  /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_73
      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_176
                        id:
                          type: string
                        name:
                          type: string
                      required: &ref_177
                        - id
                  scalar_metrics:
                    type: array
                    items:
                      type: object
                      properties: &ref_178
                        metric_id:
                          type: string
                        value:
                          type: number
                      required: &ref_179
                        - id
                        - value
                  timeseries_metrics:
                    type: array
                    items:
                      type: object
                      properties: &ref_180
                        metric_id:
                          type: string
                        values:
                          type: array
                          items:
                            type: object
                            properties: &ref_182
                              timestamp:
                                type: string
                                format: date-time
                              value:
                                type: number
                            required: &ref_183
                              - timestamp
                              - value
                      required: &ref_181
                        - id
                        - values
  /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_186
                    concurrency_id:
                      type: string
                    job_uuids:
                      type: array
                      items:
                        type: string
                  required: &ref_187
                    - concurrency_id
                    - job_uuids
  /concurrency_groups/{concurrency_id}:
    delete:
      summary: Delete concurrency group
      operationId: deleteConcurrencyGroup
      tags:
        - concurrencyGroups
      parameters:
        - name: concurrency_id
          in: path
          required: true
          schema: &ref_109
            type: string
      responses:
        '200':
          description: concurrency group removed
          content:
            application/json:
              schema:
                type: object
                properties: {}
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
    cookieAuth:
      type: apiKey
      in: cookie
      name: token
  parameters:
    Key:
      name: key
      in: path
      required: true
      schema: *ref_7
    WorkspaceId:
      name: workspace
      in: path
      required: true
      schema: *ref_0
    VersionId:
      name: version
      in: path
      required: true
      schema: *ref_95
    Token:
      name: token
      in: path
      required: true
      schema: *ref_96
    AccountId:
      name: id
      in: path
      required: true
      schema: *ref_21
    ClientName:
      name: client_name
      in: path
      required: true
      schema: *ref_20
    ScriptPath:
      name: path
      in: path
      required: true
      schema: *ref_29
    ScriptHash:
      name: hash
      in: path
      required: true
      schema: *ref_33
    JobId:
      name: id
      in: path
      required: true
      schema: *ref_73
    Path:
      name: path
      in: path
      required: true
      schema: *ref_17
    PathId:
      name: id
      in: path
      required: true
      schema: *ref_24
    PathVersion:
      name: version
      in: path
      required: true
      schema: *ref_97
    Name:
      name: name
      in: path
      required: true
      schema: *ref_80
    Page:
      name: page
      description: which page to return (start at 1, default 1)
      in: query
      schema: *ref_3
    PerPage:
      name: per_page
      description: number of items to return for a given page (default 30, max 100)
      in: query
      schema: *ref_4
    OrderDesc:
      name: order_desc
      description: order by desc order (default true)
      in: query
      schema: *ref_41
    CreatedBy:
      name: created_by
      description: mask to filter exact matching user creator
      in: query
      schema: *ref_42
    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_36
    WorkerTag:
      name: tag
      description: Override the tag to use
      in: query
      schema: *ref_38
    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_37
    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_39
    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_40
    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_76
    ScriptStartPath:
      name: script_path_start
      description: mask to filter matching starting path
      in: query
      schema: *ref_55
    SchedulePath:
      name: schedule_path
      description: mask to filter by schedule path
      in: query
      schema: *ref_56
    ScriptExactPath:
      name: script_path_exact
      description: mask to filter exact matching path
      in: query
      schema: *ref_54
    ScriptExactHash:
      name: script_hash
      description: mask to filter exact matching path
      in: query
      schema: *ref_57
    StartedBefore:
      name: started_before
      description: filter on started before (inclusive) timestamp
      in: query
      schema: *ref_58
    StartedAfter:
      name: started_after
      description: filter on started after (exclusive) timestamp
      in: query
      schema: *ref_59
    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_98
    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_99
    Success:
      name: success
      description: filter on successful jobs
      in: query
      schema: *ref_60
    ScheduledForBeforeNow:
      name: scheduled_for_before_now
      description: filter on jobs scheduled_for before now (hence waitinf for a worker)
      in: query
      schema: *ref_68
    Suspended:
      name: suspended
      description: filter on suspended jobs
      in: query
      schema: *ref_100
    Running:
      name: running
      description: filter on running jobs
      in: query
      schema: *ref_67
    ArgsFilter:
      name: args
      description: filter on jobs containing those args as a json subset (@> in postgres)
      in: query
      schema: *ref_62
    Tag:
      name: tag
      description: filter on jobs with a given tag/worker group
      in: query
      schema: *ref_64
    ResultFilter:
      name: result
      description: filter on jobs containing those result as a json subset (@> in postgres)
      in: query
      schema: *ref_63
    After:
      name: after
      description: filter on created after (exclusive) timestamp
      in: query
      schema: *ref_101
    Before:
      name: before
      description: filter on created before (exclusive) timestamp
      in: query
      schema: *ref_102
    Username:
      name: username
      description: filter on exact username of user
      in: query
      schema: *ref_103
    Operation:
      name: operation
      description: filter on exact or prefix name of operation
      in: query
      schema: *ref_104
    ResourceName:
      name: resource
      description: filter on exact or prefix name of resource
      in: query
      schema: *ref_105
    ActionKind:
      name: action_kind
      description: filter on type of operation
      in: query
      schema: *ref_106
    JobKinds:
      name: job_kinds
      description: >-
        filter on job kind (values 'preview', 'script', 'dependencies', 'flow')
        separated by,
      in: query
      schema: *ref_61
    RunnableId:
      name: runnable_id
      in: query
      schema: *ref_89
    RunnableTypeQuery:
      name: runnable_type
      in: query
      schema: *ref_90
    InputId:
      name: input
      in: path
      required: true
      schema: *ref_107
    GetStarted:
      name: get_started
      in: query
      schema: *ref_108
    ConcurrencyId:
      name: concurrency_id
      in: path
      required: true
      schema: *ref_109
  schemas:
    Script:
      type: object
      properties: *ref_31
      required: *ref_32
    NewScript:
      type: object
      properties: *ref_34
      required: *ref_35
    NewScriptWithDraft:
      allOf: *ref_110
    ScriptHistory:
      type: object
      properties: *ref_111
      required: *ref_112
    ScriptArgs:
      type: object
      additionalProperties: *ref_14
    Input:
      type: object
      properties: *ref_87
      required: *ref_88
    CreateInput:
      type: object
      properties: *ref_113
      required: *ref_114
    UpdateInput:
      type: object
      properties: *ref_115
      required: *ref_116
    RunnableType:
      type: string
      enum: *ref_117
    QueuedJob:
      type: object
      properties: *ref_71
      required: *ref_72
    CompletedJob:
      type: object
      properties: *ref_69
      required: *ref_70
    Job:
      allOf: *ref_74
      discriminator: *ref_75
    User:
      type: object
      properties: *ref_8
      required: *ref_9
    Usage:
      type: object
      properties: *ref_118
    Login:
      type: object
      properties: *ref_119
      required: *ref_120
    NewUser:
      type: object
      properties: *ref_121
      required: *ref_122
    EditWorkspaceUser:
      type: object
      properties: *ref_123
    TruncatedToken:
      type: object
      properties: *ref_124
      required: *ref_125
    NewToken:
      type: object
      properties: *ref_126
    NewTokenImpersonate:
      type: object
      properties: *ref_127
      required: *ref_128
    ListableVariable:
      type: object
      properties: *ref_18
      required: *ref_19
    ContextualVariable:
      type: object
      properties: *ref_129
      required: *ref_130
    CreateVariable:
      type: object
      properties: *ref_131
      required: *ref_132
    EditVariable:
      type: object
      properties: *ref_133
    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: 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
      required:
        - star_args
        - start_kwargs
        - args
        - type
        - error
    Preview:
      type: object
      properties: *ref_134
      required: *ref_135
    CreateResource:
      type: object
      properties: *ref_136
      required: *ref_137
    EditResource:
      type: object
      properties: *ref_138
    Resource:
      type: object
      properties: *ref_139
      required: *ref_140
    ListableResource:
      type: object
      properties: *ref_141
      required: *ref_142
    ResourceType:
      type: object
      properties: *ref_22
      required: *ref_23
    EditResourceType:
      type: object
      properties: *ref_143
    Schedule:
      type: object
      properties: *ref_78
      required: *ref_79
    ScheduleWJobs:
      allOf: *ref_144
    NewSchedule:
      type: object
      properties: *ref_145
      required: *ref_146
    EditSchedule:
      type: object
      properties: *ref_147
      required: *ref_148
    Group:
      type: object
      properties: *ref_83
      required: *ref_84
    InstanceGroup:
      type: object
      properties: *ref_81
      required: *ref_82
    Folder:
      type: object
      properties: *ref_85
      required: *ref_86
    WorkerPing:
      type: object
      properties: *ref_149
      required: *ref_150
    UserWorkspaceList:
      type: object
      properties: *ref_151
      required: *ref_152
    CreateWorkspace:
      type: object
      properties: *ref_153
      required: *ref_154
    Workspace:
      type: object
      properties: *ref_5
      required: *ref_6
    WorkspaceInvite:
      type: object
      properties: *ref_12
      required: *ref_13
    GlobalUserInfo:
      type: object
      properties: *ref_10
      required: *ref_11
    Flow:
      allOf: *ref_45
    FlowMetadata:
      type: object
      properties: *ref_155
      required: *ref_156
    OpenFlowWPath:
      allOf: *ref_46
    FlowPreview:
      type: object
      properties: *ref_157
      required: *ref_158
    RestartedFrom:
      type: object
      properties: *ref_159
    Policy:
      type: object
      properties: *ref_47
    ListableApp:
      type: object
      properties: *ref_160
      required: *ref_161
    ListableRawApp:
      type: object
      properties: *ref_162
      required: *ref_163
    AppWithLastVersion:
      type: object
      properties: *ref_48
      required: *ref_49
    AppWithLastVersionWDraft:
      allOf: *ref_164
    AppHistory:
      type: object
      properties: *ref_165
      required: *ref_166
    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_167
      required: *ref_168
    HubScriptKind:
      name: kind
      schema: *ref_30
    PolarsClientKwargs:
      type: object
      properties: *ref_93
      required: *ref_94
    LargeFileStorage:
      type: object
      properties: *ref_15
    WindmillLargeFile:
      type: object
      properties: *ref_169
      required: *ref_170
    WindmillFileMetadata:
      type: object
      properties: *ref_171
    WindmillFilePreview:
      type: object
      properties: *ref_172
      required: *ref_173
    S3Resource:
      type: object
      properties: *ref_91
      required: *ref_92
    WorkspaceGitSyncSettings:
      type: object
      properties: *ref_16
    GitRepositorySettings:
      type: object
      properties: *ref_174
      required: *ref_175
    UploadFilePart:
      type: object
      properties:
        part_number:
          type: integer
        tag:
          type: string
      required:
        - part_number
        - tag
    MetricMetadata:
      type: object
      properties: *ref_176
      required: *ref_177
    ScalarMetric:
      type: object
      properties: *ref_178
      required: *ref_179
    TimeseriesMetric:
      type: object
      properties: *ref_180
      required: *ref_181
    MetricDataPoint:
      type: object
      properties: *ref_182
      required: *ref_183
    RawScriptForDependencies:
      type: object
      properties: *ref_184
      required: *ref_185
    ConcurrencyGroup:
      type: object
      properties: *ref_186
      required: *ref_187
    StaticTransform:
      type: object
      properties: *ref_188
      required: *ref_189
    JavascriptTransform:
      type: object
      properties: *ref_190
      required: *ref_191
    InputTransform:
      oneOf: *ref_25
      discriminator: *ref_26
    RawScript:
      type: object
      properties: *ref_192
      required: *ref_193
    PathScript:
      type: object
      properties: *ref_194
      required: *ref_195
    PathFlow:
      type: object
      properties: *ref_196
      required: *ref_197
    FlowModule:
      type: object
      properties: *ref_27
      required: *ref_28
    ForloopFlow:
      type: object
      properties: *ref_198
      required: *ref_199
    BranchOne:
      type: object
      properties: *ref_200
      required: *ref_201
    BranchAll:
      type: object
      properties: *ref_202
      required: *ref_203
    Identity:
      type: object
      properties: *ref_204
      required: *ref_205
    FlowModuleValue:
      oneOf: *ref_206
      discriminator: *ref_207
    Retry:
      type: object
      properties: *ref_77
    FlowValue:
      type: object
      properties: *ref_50
      required: *ref_51
    OpenFlow:
      type: object
      properties: *ref_43
      required: *ref_44
    FlowStatusModule:
      type: object
      properties: *ref_52
      required: *ref_53
    FlowStatus:
      type: object
      properties: *ref_65
      required: *ref_66
