openapi: "3.0.3" info: version: 1.501.1 title: Windmill API contact: name: Windmill Team email: contact@windmill.dev url: https://windmill.dev license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html x-logo: url: https://windmill.dev/img/windmill.svg externalDocs: description: documentation portal url: https://windmill.dev servers: - url: /api security: - bearerAuth: [] - cookieAuth: [] paths: /version: get: summary: get backend version operationId: backendVersion tags: - settings responses: "200": description: git version of backend content: text/plain: schema: type: string /uptodate: get: summary: is backend up to date operationId: backendUptodate tags: - settings responses: "200": description: is backend up to date content: text/plain: schema: type: string /ee_license: get: summary: get license id operationId: getLicenseId tags: - settings responses: "200": description: get license id (empty if not ee) content: text/plain: schema: type: string /openapi.yaml: get: summary: get openapi yaml spec operationId: getOpenApiYaml tags: - settings responses: "200": description: openapi yaml file content content: text/plain: schema: type: string /w/{workspace}/audit/get/{id}: get: summary: get audit log (requires admin privilege) operationId: getAuditLog tags: - audit parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/PathId" responses: "200": description: an audit log content: application/json: schema: $ref: "#/components/schemas/AuditLog" /w/{workspace}/audit/list: get: summary: list audit logs (requires admin privilege) operationId: listAuditLogs tags: - audit parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - $ref: "#/components/parameters/Before" - $ref: "#/components/parameters/After" - $ref: "#/components/parameters/Username" - $ref: "#/components/parameters/Operation" - name: operations in: query description: comma separated list of exact operations to include schema: type: string - name: exclude_operations in: query description: comma separated list of operations to exclude schema: type: string - $ref: "#/components/parameters/ResourceName" - $ref: "#/components/parameters/ActionKind" - name: all_workspaces in: query description: get audit logs for all workspaces schema: type: boolean responses: "200": description: a list of audit logs content: application/json: schema: type: array items: $ref: "#/components/schemas/AuditLog" /auth/login: post: security: [] summary: login with password operationId: login tags: - user requestBody: description: credentials required: true content: application/json: schema: $ref: "#/components/schemas/Login" responses: "200": description: > Successfully authenticated. The session ID is returned in a cookie named `token` and as plaintext response. Preferred method of authorization is through the bearer token. The cookie is only for browser convenience. headers: Set-Cookie: schema: type: string example: token=abcde12345; Path=/; HttpOnly content: text/plain: schema: type: string /auth/logout: post: security: [] summary: logout operationId: logout tags: - user responses: "200": description: clear cookies and clear token (if applicable) headers: Set-Cookie: schema: type: string content: text/plain: schema: type: string /w/{workspace}/users/get/{username}: get: summary: get user (require admin privilege) operationId: getUser tags: - user - admin parameters: - $ref: "#/components/parameters/WorkspaceId" - name: username in: path required: true schema: type: string responses: "200": description: user created content: application/json: schema: $ref: "#/components/schemas/User" /w/{workspace}/users/update/{username}: post: summary: update user (require admin privilege) operationId: updateUser tags: - user - admin parameters: - $ref: "#/components/parameters/WorkspaceId" - name: username in: path required: true schema: type: string requestBody: description: new user required: true content: application/json: schema: $ref: "#/components/schemas/EditWorkspaceUser" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: is owner content: application/json: schema: type: boolean /users/setpassword: post: summary: set password operationId: setPassword tags: - user requestBody: description: set password required: true content: application/json: schema: type: object properties: password: type: string required: - password responses: "200": description: password set content: text/plain: schema: type: string /users/set_password_of/{user}: post: summary: set password for a specific user (require super admin) operationId: setPasswordForUser tags: - user parameters: - name: user in: path required: true schema: type: string requestBody: description: set password required: true content: application/json: schema: type: object properties: password: type: string required: - password responses: "200": description: password set content: text/plain: schema: type: string /users/set_login_type/{user}: post: summary: set login type for a specific user (require super admin) operationId: setLoginTypeForUser tags: - user parameters: - name: user in: path required: true schema: type: string requestBody: description: set login type required: true content: application/json: schema: type: object properties: login_type: type: string required: - login_type responses: "200": description: login type set content: text/plain: schema: type: string /users/create: post: summary: create user operationId: createUserGlobally tags: - user requestBody: description: user info required: true content: application/json: schema: type: object properties: email: type: string password: type: string super_admin: type: boolean name: type: string company: type: string skip_email: type: boolean description: Skip sending email notifications to the user required: - email - password - super_admin responses: "201": description: user created content: text/plain: schema: type: string /users/update/{email}: post: summary: global update user (require super admin) operationId: globalUserUpdate tags: - user parameters: - name: email in: path required: true schema: type: string requestBody: description: new user info required: true content: application/json: schema: type: object properties: is_super_admin: type: boolean is_devops: type: boolean name: type: string responses: "200": description: user updated content: text/plain: schema: type: string /users/username_info/{email}: get: summary: global username info (require super admin) operationId: globalUsernameInfo tags: - user parameters: - name: email in: path required: true schema: type: string responses: "200": description: user renamed content: application/json: schema: type: object properties: username: type: string workspace_usernames: type: array items: type: object properties: workspace_id: type: string username: type: string required: - workspace_id - username required: - username - workspace_usernames /users/rename/{email}: post: summary: global rename user (require super admin) operationId: globalUserRename tags: - user parameters: - name: email in: path required: true schema: type: string requestBody: description: new username required: true content: application/json: schema: type: object properties: new_username: type: string required: - new_username responses: "200": description: user renamed content: text/plain: schema: type: string /users/delete/{email}: delete: summary: global delete user (require super admin) operationId: globalUserDelete tags: - user parameters: - name: email in: path required: true schema: type: string responses: "200": description: user deleted content: text/plain: schema: type: string /users/overwrite: post: summary: global overwrite users (require super admin and EE) operationId: globalUsersOverwrite tags: - user requestBody: description: List of users required: true content: application/json: schema: type: array items: $ref: "#/components/schemas/ExportedUser" responses: "200": description: Success message content: text/plain: schema: type: string /users/export: get: summary: global export users (require super admin and EE) operationId: globalUsersExport tags: - user responses: "200": description: exported users content: application/json: schema: type: array items: $ref: "#/components/schemas/ExportedUser" /w/{workspace}/users/delete/{username}: delete: summary: delete user (require admin privilege) operationId: deleteUser tags: - user - admin parameters: - $ref: "#/components/parameters/WorkspaceId" - name: username in: path required: true schema: type: string responses: "200": description: delete user content: text/plain: schema: type: string /github_app/connected_repositories: get: summary: get connected repositories operationId: getGlobalConnectedRepositories tags: - git_sync responses: "200": description: connected repositories content: application/json: schema: $ref: "#/components/schemas/GithubInstallations" /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: $ref: "#/components/schemas/Workspace" /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: $ref: "#/components/schemas/UserWorkspaceList" /workspaces/list_as_superadmin: get: summary: list all workspaces as super admin (require to be super admin) operationId: listWorkspacesAsSuperAdmin tags: - workspace parameters: - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" responses: "200": description: workspaces content: application/json: schema: type: array items: $ref: "#/components/schemas/Workspace" /workspaces/create: post: summary: create workspace operationId: createWorkspace tags: - workspace requestBody: description: new token required: true content: application/json: schema: $ref: "#/components/schemas/CreateWorkspace" 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: - $ref: "#/components/parameters/Key" responses: "200": description: status content: application/json: schema: {} post: summary: post global settings operationId: setGlobal tags: - setting parameters: - $ref: "#/components/parameters/Key" requestBody: description: value set required: true content: application/json: schema: type: object properties: value: {} responses: "200": description: status content: text/plain: schema: type: string /settings/local: get: summary: get local settings operationId: getLocal tags: - setting responses: "200": description: status content: application/json: schema: {} /settings/test_smtp: post: summary: test smtp operationId: testSmtp tags: - setting requestBody: description: test smtp payload required: true content: application/json: schema: type: object properties: to: type: string smtp: type: object properties: host: type: string username: type: string password: type: string port: type: integer from: type: string tls_implicit: type: boolean disable_tls: type: boolean required: - host - username - password - port - from - tls_implicit - disable_tls required: - to - smtp responses: "200": description: status content: text/plain: schema: type: string /settings/test_critical_channels: post: summary: test critical channels operationId: testCriticalChannels tags: - setting requestBody: description: test critical channel payload required: true content: application/json: schema: type: array items: type: object properties: email: type: string slack_channel: type: string responses: "200": description: status content: text/plain: schema: type: string /settings/critical_alerts: get: summary: Get all critical alerts operationId: getCriticalAlerts tags: - setting parameters: - in: query name: page schema: type: integer default: 1 description: The page number to retrieve (minimum value is 1) - in: query name: page_size schema: type: integer default: 10 maximum: 100 description: Number of alerts per page (maximum is 100) - in: query name: acknowledged schema: type: boolean nullable: true description: Filter by acknowledgment status; true for acknowledged, false for unacknowledged, and omit for all alerts responses: "200": description: Successfully retrieved all critical alerts content: application/json: schema: type: object properties: alerts: type: array items: $ref: "#/components/schemas/CriticalAlert" total_rows: type: integer description: Total number of rows matching the query. example: 100 total_pages: type: integer description: Total number of pages based on the page size. example: 10 /settings/critical_alerts/{id}/acknowledge: post: summary: Acknowledge a critical alert operationId: acknowledgeCriticalAlert tags: - setting parameters: - in: path name: id required: true schema: type: integer description: The ID of the critical alert to acknowledge responses: "200": description: Successfully acknowledged the critical alert content: application/json: schema: type: string example: "Critical alert acknowledged" /settings/critical_alerts/acknowledge_all: post: summary: Acknowledge all unacknowledged critical alerts operationId: acknowledgeAllCriticalAlerts tags: - setting responses: "200": description: Successfully acknowledged all unacknowledged critical alerts. content: application/json: schema: type: string example: "All unacknowledged critical alerts acknowledged" /settings/test_license_key: post: summary: test license key operationId: testLicenseKey tags: - setting requestBody: description: test license key required: true content: application/json: schema: type: object properties: license_key: type: string required: - license_key responses: "200": description: status content: text/plain: schema: type: string # pub use_ssl: Option, # #[serde(rename = "accountName")] # pub account_name: String, # #[serde(rename = "tenantId")] # pub tenant_id: Option, # #[serde(rename = "clientId")] # pub client_id: Option, # #[serde(rename = "containerName")] # pub container_name: String, # #[serde(rename = "accessKey")] # pub access_key: Option, /settings/test_object_storage_config: post: summary: test object storage config operationId: testObjectStorageConfig tags: - setting requestBody: description: test object storage config required: true content: application/json: schema: type: object additionalProperties: true responses: "200": description: status content: text/plain: schema: type: string /settings/send_stats: post: summary: send stats operationId: sendStats tags: - setting responses: "200": description: status content: text/plain: schema: type: string /settings/latest_key_renewal_attempt: get: summary: get latest key renewal attempt operationId: getLatestKeyRenewalAttempt tags: - setting responses: "200": description: status content: application/json: schema: type: object properties: result: type: string attempted_at: type: string format: date-time required: - result - attempted_at nullable: true /settings/renew_license_key: post: summary: renew license key operationId: renewLicenseKey tags: - setting parameters: - name: license_key in: query required: false schema: type: string responses: "200": description: status content: text/plain: schema: type: string /settings/customer_portal: post: summary: create customer portal session operationId: createCustomerPortalSession tags: - setting parameters: - name: license_key in: query required: false schema: type: string responses: "200": description: url to portal content: text/plain: schema: type: string /saml/test_metadata: post: summary: test metadata operationId: testMetadata tags: - setting requestBody: description: test metadata required: true content: application/json: schema: type: string responses: "200": description: status content: text/plain: schema: type: string /settings/list_global: get: summary: list global settings operationId: listGlobalSettings tags: - setting responses: "200": description: list of settings content: application/json: schema: type: array items: $ref: "#/components/schemas/GlobalSetting" /users/email: get: summary: get current user email (if logged in) operationId: getCurrentEmail tags: - user responses: "200": description: user email content: text/plain: schema: type: string /users/refresh_token: get: summary: refresh the current token operationId: refreshUserToken tags: - user parameters: - name: if_expiring_in_less_than_s in: query required: false schema: type: integer responses: "200": description: new token content: text/plain: schema: type: string /users/tutorial_progress: get: summary: get tutorial progress operationId: getTutorialProgress tags: - user responses: "200": description: tutorial progress content: application/json: schema: type: object properties: progress: type: integer post: summary: update tutorial progress operationId: updateTutorialProgress tags: - user requestBody: description: progress update required: true content: application/json: schema: type: object properties: progress: type: integer responses: "200": description: tutorial progress content: text/plain: schema: type: string /users/leave_instance: post: summary: leave instance operationId: leaveInstance tags: - user responses: "200": description: status content: text/plain: schema: type: string /users/usage: get: summary: get current usage outside of premium workspaces operationId: getUsage tags: - user responses: "200": description: free usage content: text/plain: schema: type: number /users/all_runnables: get: summary: get all runnables in every workspace operationId: getRunnable tags: - user responses: "200": description: free all runnables content: application/json: schema: type: object properties: workspace: type: string endpoint_async: type: string endpoint_sync: type: string endpoint_openai_sync: type: string summary: type: string description: type: string kind: type: string required: - workspace - endpoint_async - endpoint_sync - endpoint_openai_sync - summary - kind /users/whoami: get: summary: get current global whoami (if logged in) operationId: globalWhoami tags: - user responses: "200": description: user email content: application/json: schema: $ref: "#/components/schemas/GlobalUserInfo" /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: $ref: "#/components/schemas/WorkspaceInvite" /w/{workspace}/users/whoami: get: summary: whoami operationId: whoami tags: - user parameters: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: user content: application/json: schema: $ref: "#/components/schemas/User" /w/{workspace}/github_app/token: post: summary: get github app token operationId: getGithubAppToken tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: jwt job token required: true content: application/json: schema: type: object properties: job_token: type: string required: - job_token responses: "200": description: github app token content: application/json: schema: type: object properties: token: type: string required: - token /w/{workspace}/github_app/install_from_workspace: post: tags: - Git Sync summary: Install a GitHub installation from another workspace operationId: installFromWorkspace parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: required: true content: application/json: schema: type: object properties: source_workspace_id: type: string description: The ID of the workspace containing the installation to copy installation_id: type: number description: The ID of the GitHub installation to copy required: - source_workspace_id - installation_id responses: "200": description: Installation successfully copied /w/{workspace}/github_app/installation/{installation_id}: delete: summary: Delete a GitHub installation from a workspace operationId: deleteFromWorkspace description: Removes a GitHub installation from the specified workspace. Requires admin privileges. tags: - Git Sync parameters: - $ref: "#/components/parameters/WorkspaceId" - name: installation_id in: path required: true schema: type: integer format: int64 description: The ID of the GitHub installation to delete responses: "200": description: Installation successfully deleted /w/{workspace}/github_app/export/{installationId}: get: summary: Export GitHub installation JWT token description: Exports the JWT token for a specific GitHub installation in the workspace operationId: exportInstallation tags: - Git Sync parameters: - name: workspace in: path required: true schema: type: string - name: installationId in: path required: true schema: type: integer responses: "200": description: Successfully exported the JWT token content: application/json: schema: type: object properties: jwt_token: type: string /w/{workspace}/github_app/import: post: summary: Import GitHub installation from JWT token description: Imports a GitHub installation from a JWT token exported from another instance operationId: importInstallation tags: - Git Sync parameters: - name: workspace in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object required: - jwt_token properties: jwt_token: type: string responses: "200": description: Successfully imported the installation /users/accept_invite: post: summary: accept invite to workspace operationId: acceptInvite tags: - user requestBody: description: accept invite required: true content: application/json: schema: type: object properties: workspace_id: type: string username: type: string required: - workspace_id responses: "200": description: status content: text/plain: schema: type: string /users/decline_invite: post: summary: decline invite to workspace operationId: declineInvite tags: - user requestBody: description: decline invite required: true content: application/json: schema: type: object properties: workspace_id: type: string required: - workspace_id responses: "200": description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/invite_user: post: summary: invite user to workspace operationId: inviteUser tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: WorkspaceInvite required: true content: application/json: schema: type: object properties: email: type: string is_admin: type: boolean username: type: string operator: type: boolean required: - email - is_admin - operator responses: "200": description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/delete_invite: post: summary: delete user invite operationId: delete invite tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: status content: text/plain: schema: type: string /workspaces/unarchive/{workspace}: post: summary: unarchive workspace operationId: unarchiveWorkspace tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/leave: post: summary: leave workspace operationId: leaveWorkspace tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/get_workspace_name: get: summary: get workspace name operationId: getWorkspaceName tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/change_workspace_name: post: summary: change workspace name operationId: changeWorkspaceName tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: content: application/json: schema: type: object properties: new_name: type: string required: - username responses: "200": description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/change_workspace_id: post: summary: change workspace id operationId: changeWorkspaceId tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: content: application/json: schema: type: object properties: new_id: type: string new_name: type: string required: - username responses: "200": description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/change_workspace_color: post: summary: change workspace id operationId: changeWorkspaceColor tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: content: application/json: schema: type: object properties: color: type: string responses: "200": description: status content: text/plain: schema: type: string /w/{workspace}/users/whois/{username}: get: summary: whois operationId: whois tags: - user parameters: - $ref: "#/components/parameters/WorkspaceId" - name: username in: path required: true schema: type: string responses: "200": description: user content: application/json: schema: $ref: "#/components/schemas/User" /w/{workspace}/workspaces/operator_settings: post: operationId: updateOperatorSettings summary: Update operator settings for a workspace description: Updates the operator settings for a specific workspace. Requires workspace admin privileges. tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/OperatorSettings" responses: "200": description: Operator settings updated successfully content: text/plain: schema: type: string /users/exists/{email}: get: summary: exists email operationId: existsEmail tags: - user parameters: - name: email in: path required: true schema: type: string responses: "200": description: user content: application/json: schema: type: boolean /users/list_as_super_admin: get: summary: list all users as super admin (require to be super amdin) operationId: listUsersAsSuperAdmin tags: - user parameters: - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - name: active_only in: query description: filter only active users schema: type: boolean responses: "200": description: user content: application/json: schema: type: array items: $ref: "#/components/schemas/GlobalUserInfo" /w/{workspace}/workspaces/list_pending_invites: get: summary: list pending invites for a workspace operationId: listPendingInvites tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: user content: application/json: schema: type: array items: $ref: "#/components/schemas/WorkspaceInvite" /w/{workspace}/workspaces/get_settings: get: summary: get settings operationId: getSettings tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: status content: application/json: schema: type: object properties: workspace_id: type: string slack_name: type: string slack_team_id: type: string slack_command_script: type: string teams_team_id: type: string teams_command_script: type: string teams_team_name: type: string auto_invite_domain: type: string auto_invite_operator: type: boolean auto_add: type: boolean plan: type: string customer_id: type: string webhook: type: string deploy_to: type: string ai_config: $ref: "#/components/schemas/AIConfig" error_handler: type: string error_handler_extra_args: $ref: "#/components/schemas/ScriptArgs" error_handler_muted_on_cancel: type: boolean large_file_storage: $ref: "#/components/schemas/LargeFileStorage" git_sync: $ref: "#/components/schemas/WorkspaceGitSyncSettings" deploy_ui: $ref: "#/components/schemas/WorkspaceDeployUISettings" default_app: type: string default_scripts: $ref: "#/components/schemas/WorkspaceDefaultScripts" mute_critical_alerts: type: boolean color: type: string operator_settings: $ref: "#/components/schemas/OperatorSettings" required: - error_handler_muted_on_cancel /w/{workspace}/workspaces/get_deploy_to: get: summary: get deploy to operationId: getDeployTo tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: status content: application/json: schema: type: object properties: premium: type: boolean usage: type: number owner: type: string status: type: string required: - premium - owner /w/{workspace}/workspaces/threshold_alert: get: summary: get threshold alert info operationId: getThresholdAlert tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: status content: application/json: schema: type: object properties: threshold_alert_amount: type: number last_alert_sent: type: string format: date-time post: summary: set threshold alert info operationId: setThresholdAlert tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: threshold alert info required: true content: application/json: schema: type: object properties: threshold_alert_amount: type: number responses: "200": description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/edit_slack_command: post: summary: edit slack command operationId: editSlackCommand tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: WorkspaceInvite required: true content: application/json: schema: type: object properties: slack_command_script: type: string responses: "200": description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/edit_teams_command: post: summary: edit teams command operationId: editTeamsCommand tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: WorkspaceInvite required: true content: application/json: schema: type: object properties: slack_command_script: type: string responses: "200": description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/available_teams_ids: get: summary: list available teams ids operationId: listAvailableTeamsIds tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: status content: application/json: schema: type: array items: type: object properties: team_name: type: string team_id: type: string /w/{workspace}/workspaces/available_teams_channels: get: summary: list available teams channels operationId: listAvailableTeamsChannels tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: status content: application/json: schema: type: array items: type: object properties: channel_name: type: string channel_id: type: string service_url: type: string tenant_id: type: string /w/{workspace}/workspaces/connect_teams: post: summary: connect teams operationId: connectTeams tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: connect teams required: true content: application/json: schema: type: object properties: team_id: type: string team_name: type: string responses: "200": description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/run_slack_message_test_job: post: summary: run a job that sends a message to Slack operationId: runSlackMessageTestJob tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: path to hub script to run and its corresponding args required: true content: application/json: schema: type: object properties: hub_script_path: type: string channel: type: string test_msg: type: string responses: "200": description: status content: text/json: schema: type: object properties: job_uuid: type: string /w/{workspace}/workspaces/run_teams_message_test_job: post: summary: run a job that sends a message to Teams operationId: runTeamsMessageTestJob tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: WorkspaceCopilotConfig required: true content: application/json: schema: $ref: "#/components/schemas/AIConfig" 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: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: status content: application/json: schema: $ref: "#/components/schemas/AIConfig" /w/{workspace}/workspaces/edit_error_handler: post: summary: edit error handler operationId: editErrorHandler tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: WorkspaceErrorHandler required: true content: application/json: schema: type: object properties: error_handler: type: string error_handler_extra_args: $ref: "#/components/schemas/ScriptArgs" 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: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: LargeFileStorage info required: true content: application/json: schema: type: object properties: large_file_storage: $ref: "#/components/schemas/LargeFileStorage" 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: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: Workspace Git sync settings required: true content: application/json: schema: type: object properties: git_sync_settings: $ref: "#/components/schemas/WorkspaceGitSyncSettings" responses: "200": description: status content: application/json: schema: {} /w/{workspace}/workspaces/edit_deploy_ui_config: post: summary: edit workspace deploy ui settings operationId: editWorkspaceDeployUISettings tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: Workspace deploy UI settings required: true content: application/json: schema: type: object properties: deploy_ui_settings: $ref: "#/components/schemas/WorkspaceDeployUISettings" 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: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: Workspace default app required: true content: application/json: schema: type: object properties: default_app_path: type: string responses: "200": description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/default_scripts: post: summary: edit default scripts for workspace operationId: editDefaultScripts tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: Workspace default app content: application/json: schema: $ref: "#/components/schemas/WorkspaceDefaultScripts" responses: "200": description: status content: text/plain: schema: type: string get: summary: get default scripts for workspace operationId: get default scripts tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: status content: application/json: schema: $ref: "#/components/schemas/WorkspaceDefaultScripts" /w/{workspace}/workspaces/set_environment_variable: post: summary: set environment variable operationId: setEnvironmentVariable tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: Workspace default app required: true content: application/json: schema: type: object properties: name: type: string value: type: string required: [name] responses: "200": description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/encryption_key: get: summary: retrieves the encryption key for this workspace operationId: getWorkspaceEncryptionKey tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: New encryption key required: true content: application/json: schema: type: object properties: new_key: type: string skip_reencrypt: type: boolean required: - new_key responses: "200": description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/default_app: get: summary: get default app for workspace operationId: getWorkspaceDefaultApp tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: status content: application/json: schema: $ref: "#/components/schemas/LargeFileStorage" /w/{workspace}/workspaces/usage: get: summary: get usage operationId: getWorkspaceUsage tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: usage content: text/plain: schema: type: number /w/{workspace}/workspaces/used_triggers: get: summary: get used triggers operationId: getUsedTriggers tags: - workspace parameters: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: status content: application/json: schema: type: object properties: http_routes_used: type: boolean websocket_used: type: boolean kafka_used: type: boolean nats_used: type: boolean postgres_used: type: boolean mqtt_used: type: boolean gcp_used: type: boolean sqs_used: type: boolean required: - http_routes_used - websocket_used - kafka_used - nats_used - postgres_used - mqtt_used - gcp_used - sqs_used /w/{workspace}/users/list: get: summary: list users operationId: listUsers tags: - user parameters: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: user content: application/json: schema: type: array items: $ref: "#/components/schemas/User" /w/{workspace}/users/list_usage: get: summary: list users usage operationId: listUsersUsage tags: - user parameters: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: user content: application/json: schema: type: array items: $ref: "#/components/schemas/UserUsage" /w/{workspace}/users/list_usernames: get: summary: list usernames operationId: listUsernames tags: - user parameters: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: user content: application/json: schema: type: array items: type: string /w/{workspace}/users/username_to_email/{username}: get: summary: get email from username operationId: usernameToEmail tags: - user parameters: - $ref: "#/components/parameters/WorkspaceId" - name: username in: path required: true schema: type: string responses: "200": description: email content: text/plain: schema: type: string /users/tokens/create: post: summary: create token operationId: createToken tags: - user requestBody: description: new token required: true content: application/json: schema: $ref: "#/components/schemas/NewToken" 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: $ref: "#/components/schemas/NewTokenImpersonate" 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 - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" responses: "200": description: truncated token content: application/json: schema: type: array items: $ref: "#/components/schemas/TruncatedToken" /w/{workspace}/oidc/token/{audience}: post: summary: get OIDC token (ee only) operationId: getOidcToken tags: - oidc parameters: - $ref: "#/components/parameters/WorkspaceId" - 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: - $ref: "#/components/parameters/WorkspaceId" - name: already_encrypted in: query schema: type: boolean requestBody: description: new variable required: true content: application/json: schema: $ref: "#/components/schemas/CreateVariable" responses: "201": description: variable created content: text/plain: schema: type: string /w/{workspace}/variables/encrypt: post: summary: encrypt value operationId: encryptValue tags: - variable parameters: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" - name: already_encrypted in: query schema: type: boolean requestBody: description: updated variable required: true content: application/json: schema: $ref: "#/components/schemas/EditVariable" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" - 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: $ref: "#/components/schemas/ListableVariable" /w/{workspace}/variables/get_value/{path}: get: summary: get variable value operationId: getVariableValue tags: - variable parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: variable content: application/json: schema: type: boolean /w/{workspace}/variables/list: get: summary: list variables operationId: listVariable tags: - variable parameters: - $ref: "#/components/parameters/WorkspaceId" - name: path_start in: query schema: type: string - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" responses: "200": description: variable list content: application/json: schema: type: array items: $ref: "#/components/schemas/ListableVariable" /w/{workspace}/variables/list_contextual: get: summary: list contextual variables operationId: listContextualVariables tags: - variable parameters: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: contextual variable list content: application/json: schema: type: array items: $ref: "#/components/schemas/ContextualVariable" /w/{workspace}/workspaces/critical_alerts: get: summary: Get all critical alerts for this workspace operationId: workspaceGetCriticalAlerts tags: - setting parameters: - $ref: "#/components/parameters/WorkspaceId" - in: query name: page schema: type: integer default: 1 description: The page number to retrieve (minimum value is 1) - in: query name: page_size schema: type: integer default: 10 maximum: 100 description: Number of alerts per page (maximum is 100) - in: query name: acknowledged schema: type: boolean nullable: true description: Filter by acknowledgment status; true for acknowledged, false for unacknowledged, and omit for all alerts responses: "200": description: Successfully retrieved all critical alerts content: application/json: schema: type: object properties: alerts: type: array items: $ref: "#/components/schemas/CriticalAlert" total_rows: type: integer description: Total number of rows matching the query. example: 100 total_pages: type: integer description: Total number of pages based on the page size. example: 10 /w/{workspace}/workspaces/critical_alerts/{id}/acknowledge: post: summary: Acknowledge a critical alert for this workspace operationId: workspaceAcknowledgeCriticalAlert tags: - setting parameters: - $ref: "#/components/parameters/WorkspaceId" - in: path name: id required: true schema: type: integer description: The ID of the critical alert to acknowledge responses: "200": description: Successfully acknowledged the critical alert content: application/json: schema: type: string example: "Critical alert acknowledged" /w/{workspace}/workspaces/critical_alerts/acknowledge_all: post: summary: Acknowledge all unacknowledged critical alerts for this workspace operationId: workspaceAcknowledgeAllCriticalAlerts tags: - setting parameters: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: Successfully acknowledged all unacknowledged critical alerts. content: application/json: schema: type: string example: "All unacknowledged critical alerts acknowledged" /w/{workspace}/workspaces/critical_alerts/mute: post: summary: Mute critical alert UI for this workspace operationId: workspaceMuteCriticalAlertsUI tags: - setting parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: Boolean flag to mute critical alerts. required: true content: application/json: schema: type: object properties: mute_critical_alerts: type: boolean description: Whether critical alerts should be muted. example: true responses: "200": description: Successfully updated mute critical alert settings. content: application/json: schema: type: string example: "Updated mute critical alert UI settings for workspace: workspace_id" /oauth/login_callback/{client_name}: post: security: [] summary: login with oauth authorization flow operationId: loginWithOauth tags: - user parameters: - $ref: "#/components/parameters/ClientName" 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: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: code endpoint required: true content: application/json: schema: type: object properties: code: type: string state: type: string required: - code - state responses: "200": description: slack token content: text/plain: schema: type: string /oauth/connect_slack_callback: post: summary: connect slack callback instance operationId: connectSlackCallbackInstance tags: - oauth requestBody: description: code endpoint required: true content: application/json: schema: type: object properties: code: type: string state: type: string required: - code - state responses: "200": description: success message content: text/plain: schema: type: string /oauth/connect_callback/{client_name}: post: summary: connect callback operationId: connectCallback tags: - oauth parameters: - $ref: "#/components/parameters/ClientName" 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: $ref: "#/components/schemas/TokenResponse" /w/{workspace}/oauth/create_account: post: summary: create OAuth account operationId: createAccount tags: - oauth parameters: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/AccountId" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/AccountId" 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: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: disconnected slack content: text/plain: schema: type: string /w/{workspace}/oauth/disconnect_teams: post: summary: disconnect teams operationId: disconnectTeams tags: - oauth parameters: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: disconnected teams content: text/plain: schema: type: string /oauth/list_logins: get: summary: list oauth logins operationId: listOAuthLogins tags: - oauth responses: "200": description: list of oauth and saml login clients content: application/json: schema: type: object properties: oauth: type: array items: type: object properties: type: type: string display_name: type: string required: - type saml: type: string required: - oauth /oauth/list_connects: get: summary: list oauth connects operationId: listOAuthConnects tags: - oauth responses: "200": description: list of oauth connects clients content: application/json: schema: type: array items: type: string /oauth/get_connect/{client}: get: summary: get oauth connect operationId: getOAuthConnect tags: - oauth parameters: - name: client description: client name in: path required: true schema: type: string responses: "200": description: get content: application/json: schema: type: object properties: extra_params: type: object scopes: type: array items: type: string /teams/sync: post: operationId: syncTeams summary: synchronize Microsoft Teams information (teams/channels) tags: - teams responses: "200": description: Teams information successfully synchronized content: application/json: schema: type: array items: $ref: "#/components/schemas/TeamInfo" /teams/activities: post: summary: send update to Microsoft Teams activity description: Respond to a Microsoft Teams activity after a workspace command is run operationId: sendMessageToConversation tags: - teams requestBody: required: true content: application/json: schema: type: object required: - conversation_id - text properties: conversation_id: type: string description: The ID of the Teams conversation/activity success: type: boolean description: Used for styling the card conditionally default: true text: type: string description: The message text to be sent in the Teams card card_block: type: object description: The card block to be sent in the Teams card responses: "200": description: Activity processed successfully /w/{workspace}/resources/create: post: summary: create resource operationId: createResource tags: - resource parameters: - $ref: "#/components/parameters/WorkspaceId" - name: update_if_exists in: query schema: type: boolean requestBody: description: new resource required: true content: application/json: schema: $ref: "#/components/schemas/CreateResource" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" requestBody: description: updated resource required: true content: application/json: schema: $ref: "#/components/schemas/EditResource" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: resource content: application/json: schema: $ref: "#/components/schemas/Resource" /w/{workspace}/resources/get_value_interpolated/{path}: get: summary: get resource interpolated (variables and resources are fully unrolled) operationId: getResourceValueInterpolated tags: - resource parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" - 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: resource value content: application/json: schema: {} /w/{workspace}/resources/exists/{path}: get: summary: does resource exists operationId: existsResource tags: - resource parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - name: resource_type description: resource_types to list from, separated by ',', in: query schema: type: string - name: resource_type_exclude description: resource_types to not list from, separated by ',', in: query schema: type: string - name: path_start in: query schema: type: string responses: "200": description: resource list content: application/json: schema: type: array items: $ref: "#/components/schemas/ListableResource" /w/{workspace}/resources/list_search: get: summary: list resources for search operationId: listSearchResource tags: - resource parameters: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Name" 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: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: new resource_type required: true content: application/json: schema: $ref: "#/components/schemas/ResourceType" responses: "201": description: resource_type created content: text/plain: schema: type: string /w/{workspace}/resources/file_resource_type_to_file_ext_map: get: summary: get map from resource type to format extension operationId: fileResourceTypeToFileExtMap tags: - resource parameters: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: map from resource type to file ext content: application/json: schema: {} /w/{workspace}/resources/type/delete/{path}: delete: summary: delete resource_type operationId: deleteResourceType tags: - resource parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" requestBody: description: updated resource_type required: true content: application/json: schema: $ref: "#/components/schemas/EditResourceType" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: resource_type deleted content: application/json: schema: $ref: "#/components/schemas/ResourceType" /w/{workspace}/resources/type/exists/{path}: get: summary: does resource_type exists operationId: existsResourceType tags: - resource parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" 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: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: resource_type list content: application/json: schema: type: array items: $ref: "#/components/schemas/ResourceType" /w/{workspace}/resources/type/listnames: get: summary: list resource_types names operationId: listResourceTypeNames tags: - resource parameters: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" - 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: - $ref: "#/components/parameters/PathId" responses: "200": description: flow content: application/json: schema: type: object properties: flow: $ref: "../../openflow.openapi.yaml#/components/schemas/OpenFlow" /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: - $ref: "#/components/parameters/PathId" responses: "200": description: app content: application/json: schema: type: object properties: app: type: object properties: summary: type: string value: {} required: - summary - value required: - app /apps_u/public_app_by_custom_path/{custom_path}: get: summary: get public app by custom path operationId: getPublicAppByCustomPath tags: - app parameters: - $ref: "#/components/parameters/CustomPath" responses: "200": description: app details content: application/json: schema: allOf: - $ref: "#/components/schemas/AppWithLastVersion" - type: object properties: workspace_id: type: string /scripts/hub/get/{path}: get: summary: get hub script content by path operationId: getHubScriptContentByPath tags: - script parameters: - $ref: "#/components/parameters/ScriptPath" 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: - $ref: "#/components/parameters/ScriptPath" 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: $ref: "#/components/schemas/HubScriptKind" 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: $ref: "#/components/schemas/HubScriptKind" 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: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - $ref: "#/components/parameters/OrderDesc" - $ref: "#/components/parameters/CreatedBy" - name: path_start description: mask to filter matching starting path in: query schema: type: string - name: path_exact description: mask to filter exact matching path in: query schema: type: string - name: first_parent_hash description: mask to filter scripts whom first direct parent has exact hash in: query schema: type: string - name: last_parent_hash description: | mask to filter scripts whom last parent in the chain has exact hash. Beware that each script stores only a limited number of parents. Hence the last parent hash for a script is not necessarily its top-most parent. To find the top-most parent you will have to jump from last to last hash until finding the parent in: query schema: type: string - name: parent_hash description: | is the hash present in the array of stored parent hashes for this script. The same warning applies than for last_parent_hash. A script only store a limited number of direct parent in: query schema: type: string - name: show_archived description: | (default false) show only the archived files. when multiple archived hash share the same path, only the ones with the latest create_at are ed. in: query schema: type: boolean - name: include_without_main description: | (default false) include scripts without an exported main function in: query schema: type: boolean - name: include_draft_only description: | (default false) include scripts that have no deployed version in: query schema: type: boolean - name: is_template description: | (default regardless) if true show only the templates if false show only the non templates if not defined, show all regardless of if the script is a template in: query schema: type: boolean - name: kinds description: | (default regardless) script kinds to filter, split by comma in: query schema: type: string - name: starred_only description: | (default false) show only the starred items in: query schema: type: boolean - name: with_deployment_msg description: | (default false) include deployment message in: query schema: type: boolean - name: languages in: query description: | Filter to only include scripts written in the given languages. Accepts multiple values as a comma-separated list. schema: type: string responses: "200": description: All scripts content: application/json: schema: type: array items: $ref: "#/components/schemas/Script" /w/{workspace}/scripts/list_paths: get: summary: list all scripts paths operationId: listScriptPaths tags: - script parameters: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" - name: kind in: path required: true schema: type: string enum: - script - flow - app - $ref: "#/components/parameters/ScriptPath" responses: "200": description: draft deleted content: text/plain: schema: type: string /w/{workspace}/scripts/create: post: summary: create script operationId: createScript tags: - script parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: Partially filled script required: true content: application/json: schema: $ref: "#/components/schemas/NewScript" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" requestBody: description: Workspace error handler enabled required: true content: application/json: schema: type: object properties: muted: type: boolean responses: "200": description: error handler toggled content: text/plain: schema: type: string /workers/custom_tags: get: summary: get all instance custom tags (tags are used to dispatch jobs to different worker groups) operationId: getCustomTags tags: - worker parameters: - name: workspace in: query schema: type: string required: false - name: show_workspace_restriction in: query schema: type: boolean required: false responses: "200": description: list of custom tags content: application/json: schema: type: array items: type: string /workers/get_default_tags: get: summary: get all instance default tags operationId: geDefaultTags tags: - worker responses: "200": description: list of default tags content: application/json: schema: type: array items: type: string /workers/is_default_tags_per_workspace: get: summary: is default tags per workspace operationId: isDefaultTagsPerWorkspace tags: - worker responses: "200": description: is the default tags per workspace content: application/json: schema: type: boolean /w/{workspace}/scripts/archive/p/{path}: post: summary: archive script by path operationId: archiveScriptByPath tags: - script parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptHash" responses: "200": description: script details content: application/json: schema: $ref: "#/components/schemas/Script" /w/{workspace}/scripts/delete/h/{hash}: post: summary: delete script by hash (erase content but keep hash, require admin) operationId: deleteScriptByHash tags: - script parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptHash" responses: "200": description: script details content: application/json: schema: $ref: "#/components/schemas/Script" /w/{workspace}/scripts/delete/p/{path}: post: summary: delete script at a given path (require admin) operationId: deleteScriptByPath tags: - script parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" - name: keep_captures description: keep captures in: query schema: type: boolean responses: "200": description: script path content: application/json: schema: type: string /w/{workspace}/scripts/get/p/{path}: get: summary: get script by path operationId: getScriptByPath tags: - script parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" - name: with_starred_info in: query schema: type: boolean responses: "200": description: script details content: application/json: schema: $ref: "#/components/schemas/Script" /w/{workspace}/scripts/get_triggers_count/{path}: get: summary: get triggers count of script operationId: getTriggersCountOfScript tags: - script parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" responses: "200": description: triggers count content: application/json: schema: $ref: "#/components/schemas/TriggersCount" /w/{workspace}/scripts/list_tokens/{path}: get: summary: get tokens with script scope operationId: listTokensOfScript tags: - script parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" responses: "200": description: tokens list content: application/json: schema: type: array items: $ref: "#/components/schemas/TruncatedToken" /w/{workspace}/scripts/get/draft/{path}: get: summary: get script by path with draft operationId: getScriptByPathWithDraft tags: - script parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" responses: "200": description: script details content: application/json: schema: $ref: "#/components/schemas/NewScriptWithDraft" /w/{workspace}/scripts/history/p/{path}: get: summary: get history of a script by path operationId: getScriptHistoryByPath tags: - script parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" responses: "200": description: script history content: application/json: schema: type: array items: $ref: "#/components/schemas/ScriptHistory" /w/{workspace}/scripts/list_paths_from_workspace_runnable/{path}: get: summary: list script paths using provided script as a relative import operationId: listScriptPathsFromWorkspaceRunnable tags: - script parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" responses: "200": description: list of script paths content: application/json: schema: type: array items: type: string /w/{workspace}/scripts/get_latest_version/{path}: get: summary: get scripts's latest version (hash) operationId: getScriptLatestVersion parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" tags: - script responses: "200": description: Script version/hash content: application/json: schema: $ref: "#/components/schemas/ScriptHistory" /w/{workspace}/scripts/history_update/h/{hash}/p/{path}: post: summary: update history of a script operationId: updateScriptHistory tags: - script parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptHash" - $ref: "#/components/parameters/ScriptPath" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Token" - $ref: "#/components/parameters/ScriptPath" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptHash" - name: with_starred_info in: query schema: type: boolean responses: "200": description: script details content: application/json: schema: $ref: "#/components/schemas/Script" /w/{workspace}/scripts/raw/h/{path}: get: summary: raw script by hash operationId: rawScriptByHash tags: - script parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptHash" responses: "200": description: script details content: application/json: schema: type: object properties: lock: type: string lock_error_logs: type: string /w/{workspace}/jobs/list_selected_job_groups: # We use post because sending a huge array as a query param can produce # URLs that may be too long post: summary: list selected jobs script/flow schemas grouped by (kind, path) operationId: listSelectedJobGroups tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: script args required: true content: application/json: schema: type: array items: type: string format: uuid responses: "200": description: result content: text/plain: schema: type: array items: type: object properties: kind: type: string enum: ["script", "flow"] script_path: type: string latest_schema: type: object schemas: type: array items: type: object properties: schema: type: object script_hash: type: string job_ids: type: array items: type: string required: [schema, script_hash, job_ids] required: - kind - script_path - latest_schema - schemas /w/{workspace}/jobs/run/p/{path}: post: summary: run script by path operationId: runScriptByPath tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" - name: scheduled_for description: when to schedule this job (leave empty for immediate run) in: query schema: type: string format: date-time - name: scheduled_in_secs description: schedule the script to execute in the number of seconds starting now in: query schema: type: integer - name: skip_preprocessor description: skip the preprocessor in: query schema: type: boolean - $ref: "#/components/parameters/ParentJob" - $ref: "#/components/parameters/WorkerTag" - $ref: "#/components/parameters/CacheTtl" - $ref: "#/components/parameters/NewJobId" - 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: $ref: "#/components/schemas/ScriptArgs" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" - $ref: "#/components/parameters/ParentJob" - $ref: "#/components/parameters/NewJobId" - $ref: "#/components/parameters/IncludeHeader" - $ref: "#/components/parameters/QueueLimit" requestBody: description: script args required: true content: application/json: schema: $ref: "#/components/schemas/ScriptArgs" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" - $ref: "#/components/parameters/ParentJob" - $ref: "#/components/parameters/WorkerTag" - $ref: "#/components/parameters/CacheTtl" - $ref: "#/components/parameters/NewJobId" - $ref: "#/components/parameters/IncludeHeader" - $ref: "#/components/parameters/QueueLimit" requestBody: description: script args required: true content: application/json: schema: $ref: "#/components/schemas/ScriptArgs" responses: "200": description: job result content: application/json: schema: {} get: summary: run script by path with get operationId: runWaitResultScriptByPathGet tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" - $ref: "#/components/parameters/ParentJob" - $ref: "#/components/parameters/WorkerTag" - $ref: "#/components/parameters/CacheTtl" - $ref: "#/components/parameters/NewJobId" - $ref: "#/components/parameters/IncludeHeader" - $ref: "#/components/parameters/QueueLimit" - $ref: "#/components/parameters/Payload" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" - $ref: "#/components/parameters/IncludeHeader" - $ref: "#/components/parameters/QueueLimit" - $ref: "#/components/parameters/NewJobId" requestBody: description: script args required: true content: application/json: schema: $ref: "#/components/schemas/ScriptArgs" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" - $ref: "#/components/parameters/IncludeHeader" - $ref: "#/components/parameters/QueueLimit" - $ref: "#/components/parameters/NewJobId" requestBody: description: script args required: true content: application/json: schema: $ref: "#/components/schemas/ScriptArgs" 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: - $ref: "#/components/parameters/WorkspaceId" - 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: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - $ref: "#/components/parameters/OrderDesc" - $ref: "#/components/parameters/CreatedBy" - name: path_start description: mask to filter matching starting path in: query schema: type: string - name: path_exact description: mask to filter exact matching path in: query schema: type: string - name: show_archived description: | (default false) show only the archived files. when multiple archived hash share the same path, only the ones with the latest create_at are displayed. in: query schema: type: boolean - name: starred_only description: | (default false) show only the starred items in: query schema: type: boolean - name: include_draft_only description: | (default false) include items that have no deployed version in: query schema: type: boolean - name: with_deployment_msg description: | (default false) include deployment message in: query schema: type: boolean responses: "200": description: All flow content: application/json: schema: type: array items: allOf: - $ref: "#/components/schemas/Flow" - type: object properties: has_draft: type: boolean draft_only: type: boolean /w/{workspace}/flows/history/p/{path}: get: summary: get flow history by path operationId: getFlowHistory parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" tags: - flow responses: "200": description: Flow history content: application/json: schema: type: array items: $ref: "#/components/schemas/FlowVersion" /w/{workspace}/flows/get_latest_version/{path}: get: summary: get flow's latest version operationId: getFlowLatestVersion parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" tags: - flow responses: "200": description: Flow version content: application/json: schema: $ref: "#/components/schemas/FlowVersion" /w/{workspace}/flows/list_paths_from_workspace_runnable/{runnable_kind}/{path}: get: summary: list flow paths from workspace runnable operationId: listFlowPathsFromWorkspaceRunnable tags: - flow parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/RunnableKind" - $ref: "#/components/parameters/ScriptPath" responses: "200": description: list of flow paths content: application/json: schema: type: array items: type: string /w/{workspace}/flows/get/v/{version}/p/{path}: get: summary: get flow version operationId: getFlowVersion parameters: - $ref: "#/components/parameters/WorkspaceId" - name: version in: path required: true schema: type: number - $ref: "#/components/parameters/ScriptPath" tags: - flow responses: "200": description: flow details content: application/json: schema: $ref: "#/components/schemas/Flow" /w/{workspace}/flows/history_update/v/{version}/p/{path}: post: summary: update flow history operationId: updateFlowHistory parameters: - $ref: "#/components/parameters/WorkspaceId" - name: version in: path required: true schema: type: number - $ref: "#/components/parameters/ScriptPath" requestBody: description: Flow deployment message required: true content: application/json: schema: type: object properties: deployment_msg: type: string required: - deployment_msg tags: - flow responses: "200": description: success content: text/plain: schema: type: string /w/{workspace}/flows/get/{path}: get: summary: get flow by path operationId: getFlowByPath tags: - flow parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" - name: with_starred_info in: query schema: type: boolean responses: "200": description: flow details content: application/json: schema: $ref: "#/components/schemas/Flow" /w/{workspace}/flows/deployment_status/p/{path}: get: summary: get flow deployment status operationId: getFlowDeploymentStatus tags: - flow parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" responses: "200": description: flow status content: application/json: schema: type: object properties: lock_error_logs: type: string /w/{workspace}/flows/get_triggers_count/{path}: get: summary: get triggers count of flow operationId: getTriggersCountOfFlow tags: - flow parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" responses: "200": description: triggers count content: application/json: schema: $ref: "#/components/schemas/TriggersCount" /w/{workspace}/flows/list_tokens/{path}: get: summary: get tokens with flow scope operationId: listTokensOfFlow tags: - flow parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" responses: "200": description: tokens list content: application/json: schema: type: array items: $ref: "#/components/schemas/TruncatedToken" /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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" responses: "200": description: flow details with draft content: application/json: schema: allOf: - $ref: "#/components/schemas/Flow" - type: object properties: draft: $ref: "#/components/schemas/Flow" /w/{workspace}/flows/exists/{path}: get: summary: exists flow by path operationId: existsFlowByPath tags: - flow parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" responses: "200": description: flow details content: application/json: schema: type: boolean /w/{workspace}/flows/create: post: summary: create flow operationId: createFlow tags: - flow parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: Partially filled flow required: true content: application/json: schema: allOf: - $ref: "#/components/schemas/OpenFlowWPath" - 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" requestBody: description: Partially filled flow required: true content: application/json: schema: allOf: - $ref: "#/components/schemas/OpenFlowWPath" - 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" - name: keep_captures description: keep captures in: query schema: type: boolean responses: "200": description: flow delete content: text/plain: schema: type: string /w/{workspace}/raw_apps/list: get: summary: list all raw apps operationId: listRawApps tags: - raw_app parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - $ref: "#/components/parameters/OrderDesc" - $ref: "#/components/parameters/CreatedBy" - 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: $ref: "#/components/schemas/ListableRawApp" /w/{workspace}/raw_apps/exists/{path}: get: summary: does an app exisst at path operationId: existsRawApp tags: - raw_app parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/VersionId" - $ref: "#/components/parameters/ScriptPath" 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: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - $ref: "#/components/parameters/OrderDesc" - $ref: "#/components/parameters/CreatedBy" - name: path_start description: mask to filter matching starting path in: query schema: type: string - name: path_exact description: mask to filter exact matching path in: query schema: type: string - name: starred_only description: | (default false) show only the starred items in: query schema: type: boolean - name: include_draft_only description: | (default false) include items that have no deployed version in: query schema: type: boolean - name: with_deployment_msg description: | (default false) include deployment message in: query schema: type: boolean responses: "200": description: All apps content: application/json: schema: type: array items: $ref: "#/components/schemas/ListableApp" /w/{workspace}/apps/create: post: summary: create app operationId: createApp tags: - app parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: new app required: true content: application/json: schema: type: object properties: path: type: string value: {} summary: type: string policy: $ref: "#/components/schemas/Policy" draft_only: type: boolean deployment_message: type: string custom_path: type: string required: - path - value - summary - policy responses: "201": description: app created content: text/plain: schema: type: string /w/{workspace}/apps/create_raw: post: summary: create app raw operationId: createAppRaw tags: - app parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: new app required: true content: multipart/form-data: schema: type: object properties: app: type: object properties: path: type: string value: {} summary: type: string policy: $ref: "#/components/schemas/Policy" draft_only: type: boolean deployment_message: type: string custom_path: type: string required: - path - value - summary - policy js: type: string css: type: string responses: "201": description: app created content: text/plain: schema: type: string /w/{workspace}/apps/exists/{path}: get: summary: does an app exisst at path operationId: existsApp tags: - app parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" - name: with_starred_info in: query schema: type: boolean responses: "200": description: app details content: application/json: schema: $ref: "#/components/schemas/AppWithLastVersion" /w/{workspace}/apps/get/lite/{path}: get: summary: get app lite by path operationId: getAppLiteByPath tags: - app parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" responses: "200": description: app lite details content: application/json: schema: $ref: "#/components/schemas/AppWithLastVersion" /w/{workspace}/apps/get/draft/{path}: get: summary: get app by path with draft operationId: getAppByPathWithDraft tags: - app parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" responses: "200": description: app details with draft content: application/json: schema: $ref: "#/components/schemas/AppWithLastVersionWDraft" /w/{workspace}/apps/history/p/{path}: get: summary: get app history by path operationId: getAppHistoryByPath tags: - app parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" responses: "200": description: app history content: application/json: schema: type: array items: $ref: "#/components/schemas/AppHistory" /w/{workspace}/apps/get_latest_version/{path}: get: summary: get apps's latest version operationId: getAppLatestVersion parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" tags: - app responses: "200": description: App version content: application/json: schema: $ref: "#/components/schemas/AppHistory" /w/{workspace}/apps/list_paths_from_workspace_runnable/{runnable_kind}/{path}: get: summary: list app paths from workspace runnable operationId: listAppPathsFromWorkspaceRunnable tags: - app parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/RunnableKind" - $ref: "#/components/parameters/ScriptPath" responses: "200": description: list of app paths content: application/json: schema: type: array items: type: string /w/{workspace}/apps/history_update/a/{id}/v/{version}: post: summary: update app history operationId: updateAppHistory tags: - app parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/PathId" - $ref: "#/components/parameters/PathVersion" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: app details content: application/json: schema: $ref: "#/components/schemas/AppWithLastVersion" /w/{workspace}/apps_u/public_resource/{path}: get: summary: get public resource operationId: get public resource tags: - app parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/PathId" responses: "200": description: app details content: application/json: schema: $ref: "#/components/schemas/AppWithLastVersion" /w/{workspace}/raw_apps/create: post: summary: create raw app operationId: createRawApp tags: - raw_app parameters: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" requestBody: description: update app required: true content: application/json: schema: type: object properties: path: type: string summary: type: string value: {} policy: $ref: "#/components/schemas/Policy" deployment_message: type: string custom_path: type: string responses: "200": description: app updated content: text/plain: schema: type: string /w/{workspace}/apps/update_raw/{path}: post: summary: update app operationId: updateAppRaw tags: - app parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" requestBody: description: update app required: true content: multipart/form-data: schema: type: object properties: app: type: object properties: path: type: string summary: type: string value: {} policy: $ref: "#/components/schemas/Policy" deployment_message: type: string custom_path: type: string js: type: string css: type: string responses: "200": description: app updated content: text/plain: schema: type: string /w/{workspace}/apps/custom_path_exists/{custom_path}: get: summary: check if custom path exists operationId: customPathExists tags: - app parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/CustomPath" responses: "200": description: custom path exists content: application/json: schema: type: boolean /w/{workspace}/apps/sign_s3_objects: post: summary: sign s3 objects, to be used by anonymous users in public apps operationId: signS3Objects tags: - app parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: s3 objects to sign required: true content: application/json: schema: type: object properties: s3_objects: type: array items: $ref: "#/components/schemas/S3Object" required: - s3_objects responses: "200": description: signed s3 objects content: application/json: schema: type: array items: $ref: "#/components/schemas/S3Object" /w/{workspace}/apps_u/execute_component/{path}: post: summary: executeComponent operationId: executeComponent tags: - app parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" requestBody: description: update app required: true content: application/json: schema: type: object properties: component: type: string #script: script/ #flow: flow/ path: type: string version: type: integer args: {} raw_code: type: object properties: content: type: string language: type: string path: type: string lock: type: string cache_ttl: type: integer required: - content - language id: type: integer force_viewer_static_fields: type: object force_viewer_one_of_fields: type: object force_viewer_allow_user_resources: type: array items: type: string required: - args - component responses: "200": description: job uuid content: text/plain: schema: type: string /w/{workspace}/apps_u/upload_s3_file/{path}: post: summary: upload s3 file from app operationId: uploadS3FileFromApp tags: - app parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" - name: file_key in: query required: false schema: type: string - name: file_extension in: query required: false schema: type: string - name: s3_resource_path in: query required: false schema: type: string - name: resource_type in: query required: false schema: type: string - name: storage in: query schema: type: string - name: content_type in: query schema: type: string - name: content_disposition in: query schema: type: string requestBody: description: File content required: true content: application/octet-stream: schema: type: string format: binary responses: "200": description: file uploaded content: application/json: schema: type: object properties: file_key: type: string delete_token: type: string required: - file_key - delete_token /w/{workspace}/apps_u/delete_s3_file: delete: summary: delete s3 file from app operationId: deleteS3FileFromApp tags: - app parameters: - $ref: "#/components/parameters/WorkspaceId" - name: delete_token in: query required: true schema: type: string responses: "200": description: file deleted content: text/plain: schema: type: string /w/{workspace}/jobs/run/f/{path}: post: summary: run flow by path operationId: runFlowByPath tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptPath" - name: scheduled_for description: when to schedule this job (leave empty for immediate run) in: query schema: type: string format: date-time - name: scheduled_in_secs description: schedule the script to execute in the number of seconds starting now in: query schema: type: integer - name: skip_preprocessor description: skip the preprocessor in: query schema: type: boolean - $ref: "#/components/parameters/ParentJob" - $ref: "#/components/parameters/WorkerTag" - $ref: "#/components/parameters/NewJobId" - $ref: "#/components/parameters/IncludeHeader" - 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: $ref: "#/components/schemas/ScriptArgs" responses: "201": description: job created content: text/plain: schema: type: string format: uuid /w/{workspace}/jobs/run/batch_rerun_jobs: post: summary: re-run multiple jobs operationId: batchReRunJobs tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: list of job ids to re run and arg tranforms required: true content: application/json: schema: type: object required: [job_ids, script_options_by_path, flow_options_by_path] properties: job_ids: type: array items: type: string script_options_by_path: type: object additionalProperties: type: object properties: input_transforms: type: object additionalProperties: $ref: "#/components/schemas/InputTransform" use_latest_version: type: boolean flow_options_by_path: type: object additionalProperties: type: object properties: input_transforms: type: object additionalProperties: $ref: "#/components/schemas/InputTransform" use_latest_version: type: boolean responses: "201": description: stream of created job uuids separated by \n. Lines may start with 'Error:' content: text/event-stream: schema: type: string /w/{workspace}/jobs/restart/f/{id}/from/{step_id}/{branch_or_iteration_n}: post: summary: restart a completed flow at a given step operationId: restartFlowAtStep tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" - 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 - $ref: "#/components/parameters/ParentJob" - $ref: "#/components/parameters/WorkerTag" - $ref: "#/components/parameters/NewJobId" - $ref: "#/components/parameters/IncludeHeader" - 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: $ref: "#/components/schemas/ScriptArgs" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/ScriptHash" - name: scheduled_for description: when to schedule this job (leave empty for immediate run) in: query schema: type: string format: date-time - name: scheduled_in_secs description: schedule the script to execute in the number of seconds starting now in: query schema: type: integer - name: skip_preprocessor description: skip the preprocessor in: query schema: type: boolean - $ref: "#/components/parameters/ParentJob" - $ref: "#/components/parameters/WorkerTag" - $ref: "#/components/parameters/CacheTtl" - $ref: "#/components/parameters/NewJobId" - $ref: "#/components/parameters/IncludeHeader" - 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/IncludeHeader" - name: invisible_to_owner description: make the run invisible to the the script owner (default false) in: query schema: type: boolean - $ref: "#/components/parameters/NewJobId" requestBody: description: preview required: true content: application/json: schema: $ref: "#/components/schemas/Preview" responses: "201": description: job created content: text/plain: schema: type: string format: uuid /w/{workspace}/jobs/workflow_as_code/{job_id}/{entrypoint}: post: summary: run code-workflow task operationId: runCodeWorkflowTask tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - name: job_id in: path required: true schema: type: string - name: entrypoint in: path required: true schema: type: string requestBody: description: preview required: true content: application/json: schema: $ref: "#/components/schemas/WorkflowTask" 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: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: raw script content required: true content: application/json: schema: type: object properties: raw_scripts: type: array items: $ref: "#/components/schemas/RawScriptForDependencies" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/IncludeHeader" - name: invisible_to_owner description: make the run invisible to the the script owner (default false) in: query schema: type: boolean - $ref: "#/components/parameters/NewJobId" requestBody: description: preview required: true content: application/json: schema: $ref: "#/components/schemas/FlowPreview" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/OrderDesc" - $ref: "#/components/parameters/CreatedBy" - $ref: "#/components/parameters/ParentJob" - $ref: "#/components/parameters/Worker" - $ref: "#/components/parameters/ScriptExactPath" - $ref: "#/components/parameters/ScriptStartPath" - $ref: "#/components/parameters/SchedulePath" - $ref: "#/components/parameters/ScriptExactHash" - $ref: "#/components/parameters/StartedBefore" - $ref: "#/components/parameters/StartedAfter" - $ref: "#/components/parameters/Success" - $ref: "#/components/parameters/ScheduledForBeforeNow" - $ref: "#/components/parameters/JobKinds" - $ref: "#/components/parameters/Suspended" - $ref: "#/components/parameters/Running" - $ref: "#/components/parameters/ArgsFilter" - $ref: "#/components/parameters/ResultFilter" - $ref: "#/components/parameters/AllowWildcards" - $ref: "#/components/parameters/Tag" - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - name: all_workspaces description: get jobs from all workspaces (only valid if request come from the `admins` workspace) in: query schema: type: boolean - name: is_not_schedule description: is not a scheduled job in: query schema: type: boolean responses: "200": description: All queued jobs content: application/json: schema: type: array items: $ref: "#/components/schemas/QueuedJob" /w/{workspace}/jobs/queue/count: get: summary: get queue count operationId: getQueueCount tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - name: all_workspaces description: get jobs from all workspaces (only valid if request come from the `admins` workspace) in: query schema: type: boolean responses: "200": description: queue count content: application/json: schema: type: object properties: database_length: type: integer suspended: type: integer required: - database_length /w/{workspace}/jobs/completed/count: get: summary: get completed count operationId: getCompletedCount tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" responses: "200": description: completed count content: application/json: schema: type: object properties: database_length: type: integer required: - database_length /w/{workspace}/jobs/completed/count_jobs: get: summary: count number of completed jobs with filter operationId: countCompletedJobs tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - name: completed_after_s_ago in: query schema: type: integer - name: success in: query schema: type: boolean - name: tags in: query schema: type: string - name: all_workspaces in: query schema: type: boolean responses: "200": description: Count of completed jobs content: application/json: schema: type: integer /w/{workspace}/jobs/list_filtered_uuids: get: summary: get the ids of all jobs matching the given filters operationId: listFilteredJobsUuids tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/CreatedBy" - $ref: "#/components/parameters/Label" - $ref: "#/components/parameters/Worker" - $ref: "#/components/parameters/ParentJob" - $ref: "#/components/parameters/ScriptExactPath" - $ref: "#/components/parameters/ScriptStartPath" - $ref: "#/components/parameters/SchedulePath" - $ref: "#/components/parameters/ScriptExactHash" - $ref: "#/components/parameters/StartedBefore" - $ref: "#/components/parameters/StartedAfter" - $ref: "#/components/parameters/CreatedBefore" - $ref: "#/components/parameters/CreatedAfter" - $ref: "#/components/parameters/CreatedOrStartedBefore" - $ref: "#/components/parameters/Running" - $ref: "#/components/parameters/ScheduledForBeforeNow" - $ref: "#/components/parameters/CreatedOrStartedAfter" - $ref: "#/components/parameters/CreatedOrStartedAfterCompletedJob" - $ref: "#/components/parameters/JobKinds" - $ref: "#/components/parameters/Suspended" - $ref: "#/components/parameters/ArgsFilter" - $ref: "#/components/parameters/Tag" - $ref: "#/components/parameters/ResultFilter" - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - name: is_skipped description: is the job skipped in: query schema: type: boolean - name: is_flow_step description: is the job a flow step in: query schema: type: boolean - name: has_null_parent description: has null parent in: query schema: type: boolean - name: success description: filter on successful jobs in: query schema: type: boolean - name: all_workspaces description: get jobs from all workspaces (only valid if request come from the `admins` workspace) in: query schema: type: boolean - name: is_not_schedule description: is not a scheduled job in: query schema: type: boolean responses: "200": description: uuids of jobs content: application/json: schema: type: array items: type: string /w/{workspace}/jobs/queue/list_filtered_uuids: get: summary: get the ids of all queued jobs matching the given filters operationId: listFilteredQueueUuids tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/OrderDesc" - $ref: "#/components/parameters/CreatedBy" - $ref: "#/components/parameters/ParentJob" - $ref: "#/components/parameters/ScriptExactPath" - $ref: "#/components/parameters/ScriptStartPath" - $ref: "#/components/parameters/SchedulePath" - $ref: "#/components/parameters/ScriptExactHash" - $ref: "#/components/parameters/StartedBefore" - $ref: "#/components/parameters/StartedAfter" - $ref: "#/components/parameters/Success" - $ref: "#/components/parameters/ScheduledForBeforeNow" - $ref: "#/components/parameters/JobKinds" - $ref: "#/components/parameters/Suspended" - $ref: "#/components/parameters/Running" - $ref: "#/components/parameters/ArgsFilter" - $ref: "#/components/parameters/ResultFilter" - $ref: "#/components/parameters/AllowWildcards" - $ref: "#/components/parameters/Tag" - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - name: concurrency_key in: query required: false schema: type: string - name: all_workspaces description: get jobs from all workspaces (only valid if request come from the `admins` workspace) in: query schema: type: boolean - name: is_not_schedule description: is not a scheduled job in: query schema: type: boolean responses: "200": description: uuids of jobs content: application/json: schema: type: array items: type: string /w/{workspace}/jobs/queue/cancel_selection: post: summary: cancel jobs based on the given uuids operationId: cancelSelection tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: uuids of the jobs to cancel required: true content: application/json: schema: type: array items: type: string responses: "200": description: uuids of canceled jobs content: application/json: schema: type: array items: type: string /w/{workspace}/jobs/completed/list: get: summary: list all completed jobs operationId: listCompletedJobs tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/OrderDesc" - $ref: "#/components/parameters/CreatedBy" - $ref: "#/components/parameters/Label" - $ref: "#/components/parameters/Worker" - $ref: "#/components/parameters/ParentJob" - $ref: "#/components/parameters/ScriptExactPath" - $ref: "#/components/parameters/ScriptStartPath" - $ref: "#/components/parameters/SchedulePath" - $ref: "#/components/parameters/ScriptExactHash" - $ref: "#/components/parameters/StartedBefore" - $ref: "#/components/parameters/StartedAfter" - $ref: "#/components/parameters/Success" - $ref: "#/components/parameters/JobKinds" - $ref: "#/components/parameters/ArgsFilter" - $ref: "#/components/parameters/ResultFilter" - $ref: "#/components/parameters/AllowWildcards" - $ref: "#/components/parameters/Tag" - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - name: is_skipped description: is the job skipped in: query schema: type: boolean - name: is_flow_step description: is the job a flow step in: query schema: type: boolean - name: has_null_parent description: has null parent in: query schema: type: boolean - name: is_not_schedule description: is not a scheduled job in: query schema: type: boolean responses: "200": description: All completed jobs content: application/json: schema: type: array items: $ref: "#/components/schemas/CompletedJob" /w/{workspace}/jobs/list: get: summary: list all jobs operationId: listJobs tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/CreatedBy" - $ref: "#/components/parameters/Label" - $ref: "#/components/parameters/Worker" - $ref: "#/components/parameters/ParentJob" - $ref: "#/components/parameters/ScriptExactPath" - $ref: "#/components/parameters/ScriptStartPath" - $ref: "#/components/parameters/SchedulePath" - $ref: "#/components/parameters/ScriptExactHash" - $ref: "#/components/parameters/StartedBefore" - $ref: "#/components/parameters/StartedAfter" - $ref: "#/components/parameters/CreatedBefore" - $ref: "#/components/parameters/CreatedAfter" - $ref: "#/components/parameters/CreatedOrStartedBefore" - $ref: "#/components/parameters/Running" - $ref: "#/components/parameters/ScheduledForBeforeNow" - $ref: "#/components/parameters/CreatedOrStartedAfter" - $ref: "#/components/parameters/CreatedOrStartedAfterCompletedJob" - $ref: "#/components/parameters/JobKinds" - $ref: "#/components/parameters/Suspended" - $ref: "#/components/parameters/ArgsFilter" - $ref: "#/components/parameters/Tag" - $ref: "#/components/parameters/ResultFilter" - $ref: "#/components/parameters/AllowWildcards" - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - name: is_skipped description: is the job skipped in: query schema: type: boolean - name: is_flow_step description: is the job a flow step in: query schema: type: boolean - name: has_null_parent description: has null parent in: query schema: type: boolean - name: success description: filter on successful jobs in: query schema: type: boolean - name: all_workspaces description: get jobs from all workspaces (only valid if request come from the `admins` workspace) in: query schema: type: boolean - name: is_not_schedule description: is not a scheduled job in: query schema: type: boolean responses: "200": description: All jobs content: application/json: schema: type: array items: $ref: "#/components/schemas/Job" /jobs/db_clock: get: summary: get db clock operationId: getDbClock tags: - job responses: "200": description: the timestamp of the db that can be used to compute the drift content: application/json: schema: type: integer /jobs/completed/count_by_tag: get: summary: Count jobs by tag operationId: countJobsByTag tags: - job parameters: - name: horizon_secs in: query description: Past Time horizon in seconds (when to start the count = now - horizon) (default is 3600) required: false schema: type: integer - name: workspace_id in: query description: Specific workspace ID to filter results (optional) required: false schema: type: string responses: "200": description: Job counts by tag content: application/json: schema: type: array items: type: object properties: tag: type: string count: type: integer required: - tag - count /w/{workspace}/jobs_u/get/{id}: get: summary: get job operationId: getJob tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" - name: no_logs in: query schema: type: boolean responses: "200": description: job details content: application/json: schema: $ref: "#/components/schemas/Job" /w/{workspace}/jobs_u/get_root_job_id/{id}: get: summary: get root job id operationId: getRootJobId tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" responses: "200": description: job details content: text/plain: schema: type: string /w/{workspace}/jobs_u/get_args/{id}: get: summary: get job args operationId: getJobArgs tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" responses: "200": description: job args content: application/json: schema: {} /w/{workspace}/jobs_u/getupdate/{id}: get: summary: get job updates operationId: getJobUpdates tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" - name: running in: query schema: type: boolean - name: log_offset in: query schema: type: integer - name: get_progress in: query schema: type: boolean responses: "200": description: job details content: application/json: schema: type: object properties: running: type: boolean completed: type: boolean new_logs: type: string log_offset: type: integer mem_peak: type: integer progress: type: integer flow_status: $ref: "#/components/schemas/WorkflowStatusRecord" /w/{workspace}/jobs_u/get_log_file/{path}: get: summary: get log file from object store operationId: getLogFileFromStore tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - name: path in: path required: true schema: type: string responses: "200": description: job log content: text/plain: schema: type: string /w/{workspace}/jobs_u/get_flow_debug_info/{id}: get: summary: get flow debug info operationId: getFlowDebugInfo tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" responses: "200": description: job details content: application/json: schema: $ref: "#/components/schemas/CompletedJob" /w/{workspace}/jobs_u/completed/get_result/{id}: get: summary: get completed job result operationId: getCompletedJobResult tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" - name: suspended_job in: query schema: type: string - name: resume_id in: query schema: type: integer - name: secret in: query schema: type: string - name: approver in: query schema: type: string responses: "200": description: result content: application/json: schema: {} /w/{workspace}/jobs_u/completed/get_result_maybe/{id}: get: summary: get completed job result if job is completed operationId: getCompletedJobResultMaybe tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" - $ref: "#/components/parameters/GetStarted" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" responses: "200": description: job details content: application/json: schema: $ref: "#/components/schemas/CompletedJob" /w/{workspace}/jobs_u/queue/cancel/{id}: post: summary: cancel queued or running job operationId: cancelQueuedJob tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" - 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" - name: resume_id in: path required: true schema: type: integer - name: approver in: query schema: type: string responses: "200": description: url endpoints content: application/json: schema: type: object properties: approvalPage: type: string resume: type: string cancel: type: string required: - approvalPage - resume - cancel /w/{workspace}/jobs/slack_approval/{id}: get: summary: generate interactive slack approval for suspended job operationId: getSlackApprovalPayload tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" - name: approver in: query schema: type: string - name: message in: query schema: type: string - name: slack_resource_path in: query required: true schema: type: string - name: channel_id in: query required: true schema: type: string - name: flow_step_id in: query required: true schema: type: string - name: default_args_json in: query required: false schema: type: string - name: dynamic_enums_json in: query required: false schema: type: string responses: "200": description: Interactive slack approval message sent successfully /w/{workspace}/jobs/teams_approval/{id}: get: summary: generate interactive teams approval for suspended job operationId: getTeamsApprovalPayload tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" - name: approver in: query schema: type: string - name: message in: query schema: type: string - name: team_name in: query required: true schema: type: string - name: channel_name in: query required: true schema: type: string - name: flow_step_id in: query required: true schema: type: string - name: default_args_json in: query required: false schema: type: string - name: dynamic_enums_json in: query required: false schema: type: string responses: "200": description: Interactive slack approval message sent successfully /w/{workspace}/jobs_u/resume/{id}/{resume_id}/{signature}: get: summary: resume a job for a suspended flow operationId: resumeSuspendedJobGet tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" - $ref: "#/components/parameters/Payload" - 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" - name: resume_id in: path required: true schema: type: integer - name: signature in: path required: true schema: type: string - name: approver in: query schema: type: string requestBody: required: true content: application/json: schema: type: object responses: "201": description: job resumed content: text/plain: schema: type: string /w/{workspace}/jobs/flow/user_states/{id}/{key}: post: summary: set flow user state at a given key operationId: setFlowUserState tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" - name: key in: path required: true schema: type: string requestBody: description: new value required: true content: application/json: schema: {} responses: "200": description: flow user state updated content: text/plain: schema: type: string get: summary: get flow user state at a given key operationId: getFlowUserState tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" - name: key in: path required: true schema: type: string responses: "200": description: flow user state updated content: application/json: schema: {} /w/{workspace}/jobs/flow/resume/{id}: post: summary: resume a job for a suspended flow as an owner operationId: resumeSuspendedFlowAsOwner tags: - job parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" - 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" - 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" - 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: $ref: "#/components/schemas/Job" approvers: type: array items: type: object properties: resume_id: type: integer approver: type: string required: - resume_id - approver required: - job - approvers /schedules/preview: post: summary: preview schedule operationId: previewSchedule tags: - schedule requestBody: description: schedule required: true content: application/json: schema: type: object properties: schedule: type: string timezone: type: string cron_version: type: string required: - schedule - timezone responses: "200": description: List of 5 estimated upcoming execution events (in UTC) content: application/json: schema: type: array items: type: string format: date-time /w/{workspace}/schedules/create: post: summary: create schedule operationId: createSchedule tags: - schedule parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: new schedule required: true content: application/json: schema: $ref: "#/components/schemas/NewSchedule" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" requestBody: description: updated schedule required: true content: application/json: schema: $ref: "#/components/schemas/EditSchedule" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: schedule deleted content: application/json: schema: $ref: "#/components/schemas/Schedule" /w/{workspace}/schedules/exists/{path}: get: summary: does schedule exists operationId: existsSchedule tags: - schedule parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: schedule exists content: application/json: schema: type: boolean /w/{workspace}/schedules/list: get: summary: list schedules operationId: listSchedules tags: - schedule parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - $ref: "#/components/parameters/ArgsFilter" - name: path description: filter by path in: query schema: type: string - name: is_flow in: query schema: type: boolean - name: path_start in: query schema: type: string responses: "200": description: schedule list content: application/json: schema: type: array items: $ref: "#/components/schemas/Schedule" /w/{workspace}/schedules/list_with_jobs: get: summary: list schedules with last 20 jobs operationId: listSchedulesWithJobs tags: - schedule parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" responses: "200": description: schedule list content: application/json: schema: type: array items: $ref: "#/components/schemas/ScheduleWJobs" /w/{workspace}/schedules/setdefaulthandler: post: summary: Set default error or recoevery handler operationId: setDefaultErrorOrRecoveryHandler tags: - schedule parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: Handler description required: true content: application/json: schema: type: object properties: handler_type: type: string enum: ["error", "recovery", "success"] override_existing: type: boolean path: type: string extra_args: type: object number_of_occurence: type: integer number_of_occurence_exact: type: boolean workspace_handler_muted: type: boolean required: - handler_type - override_existing responses: "201": description: default error handler set /w/{workspace}/openapi/generate: post: summary: generate openapi spec from http routes/webhook operationId: generateOpenapiSpec tags: - openapi parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: openapi spec info and url content: application/json: schema: $ref: "#/components/schemas/GenerateOpenapiSpec" responses: "200": description: openapi spec content: text/plain: schema: type: string /w/{workspace}/openapi/download: post: summary: Download the OpenAPI v3.1 spec as a file operationId: DownloadOpenapiSpec tags: - openapi parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: openapi spec info and url content: application/json: schema: $ref: "#/components/schemas/GenerateOpenapiSpec" responses: "200": description: Downloaded OpenAPI spec content: application/octet-stream: schema: type: string format: binary /w/{workspace}/http_triggers/create_many: post: summary: create many HTTP triggers operationId: createHttpTriggers tags: - http_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: new http trigger required: true content: application/json: schema: type: array items: $ref: "#/components/schemas/NewHttpTrigger" responses: "201": description: http trigger created content: text/plain: schema: type: string /w/{workspace}/http_triggers/create: post: summary: create http trigger operationId: createHttpTrigger tags: - http_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: new http trigger required: true content: application/json: schema: $ref: "#/components/schemas/NewHttpTrigger" responses: "201": description: http trigger created content: text/plain: schema: type: string /w/{workspace}/http_triggers/update/{path}: post: summary: update http trigger operationId: updateHttpTrigger tags: - http_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" requestBody: description: updated trigger required: true content: application/json: schema: $ref: "#/components/schemas/EditHttpTrigger" responses: "200": description: http trigger updated content: text/plain: schema: type: string /w/{workspace}/http_triggers/delete/{path}: delete: summary: delete http trigger operationId: deleteHttpTrigger tags: - http_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: http trigger deleted content: text/plain: schema: type: string /w/{workspace}/http_triggers/get/{path}: get: summary: get http trigger operationId: getHttpTrigger tags: - http_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: http trigger deleted content: application/json: schema: $ref: "#/components/schemas/HttpTrigger" /w/{workspace}/http_triggers/list: get: summary: list http triggers operationId: listHttpTriggers tags: - http_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" required: true - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - name: path description: filter by path in: query schema: type: string - name: is_flow in: query schema: type: boolean - name: path_start in: query schema: type: string responses: "200": description: http trigger list content: application/json: schema: type: array items: $ref: "#/components/schemas/HttpTrigger" /w/{workspace}/http_triggers/exists/{path}: get: summary: does http trigger exists operationId: existsHttpTrigger tags: - http_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: http trigger exists content: application/json: schema: type: boolean /w/{workspace}/http_triggers/route_exists: post: summary: does route exists operationId: existsRoute tags: - http_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: route exists request required: true content: application/json: schema: type: object properties: route_path: type: string http_method: $ref: "#/components/schemas/HttpMethod" trigger_path: type: string workspaced_route: type: boolean required: - route_path - http_method responses: "200": description: route exists content: application/json: schema: type: boolean /w/{workspace}/websocket_triggers/create: post: summary: create websocket trigger operationId: createWebsocketTrigger tags: - websocket_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: new websocket trigger required: true content: application/json: schema: $ref: "#/components/schemas/NewWebsocketTrigger" responses: "201": description: websocket trigger created content: text/plain: schema: type: string /w/{workspace}/websocket_triggers/update/{path}: post: summary: update websocket trigger operationId: updateWebsocketTrigger tags: - websocket_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" requestBody: description: updated trigger required: true content: application/json: schema: $ref: "#/components/schemas/EditWebsocketTrigger" responses: "200": description: websocket trigger updated content: text/plain: schema: type: string /w/{workspace}/websocket_triggers/delete/{path}: delete: summary: delete websocket trigger operationId: deleteWebsocketTrigger tags: - websocket_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: websocket trigger deleted content: text/plain: schema: type: string /w/{workspace}/websocket_triggers/get/{path}: get: summary: get websocket trigger operationId: getWebsocketTrigger tags: - websocket_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: websocket trigger deleted content: application/json: schema: $ref: "#/components/schemas/WebsocketTrigger" /w/{workspace}/websocket_triggers/list: get: summary: list websocket triggers operationId: listWebsocketTriggers tags: - websocket_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" required: true - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - name: path description: filter by path in: query schema: type: string - name: is_flow in: query schema: type: boolean - name: path_start in: query schema: type: string responses: "200": description: websocket trigger list content: application/json: schema: type: array items: $ref: "#/components/schemas/WebsocketTrigger" /w/{workspace}/websocket_triggers/exists/{path}: get: summary: does websocket trigger exists operationId: existsWebsocketTrigger tags: - websocket_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: websocket trigger exists content: application/json: schema: type: boolean /w/{workspace}/websocket_triggers/setenabled/{path}: post: summary: set enabled websocket trigger operationId: setWebsocketTriggerEnabled tags: - websocket_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" requestBody: description: updated websocket trigger enable required: true content: application/json: schema: type: object properties: enabled: type: boolean required: - enabled responses: "200": description: websocket trigger enabled set content: text/plain: schema: type: string /w/{workspace}/websocket_triggers/test: post: summary: test websocket connection operationId: testWebsocketConnection tags: - websocket_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: test websocket connection required: true content: application/json: schema: type: object properties: url: type: string url_runnable_args: $ref: "#/components/schemas/ScriptArgs" can_return_message: type: boolean required: - url - can_return_message responses: "200": description: successfuly connected to websocket content: text/plain: schema: type: string /w/{workspace}/kafka_triggers/create: post: summary: create kafka trigger operationId: createKafkaTrigger tags: - kafka_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: new kafka trigger required: true content: application/json: schema: $ref: "#/components/schemas/NewKafkaTrigger" responses: "201": description: kafka trigger created content: text/plain: schema: type: string /w/{workspace}/kafka_triggers/update/{path}: post: summary: update kafka trigger operationId: updateKafkaTrigger tags: - kafka_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" requestBody: description: updated trigger required: true content: application/json: schema: $ref: "#/components/schemas/EditKafkaTrigger" responses: "200": description: kafka trigger updated content: text/plain: schema: type: string /w/{workspace}/kafka_triggers/delete/{path}: delete: summary: delete kafka trigger operationId: deleteKafkaTrigger tags: - kafka_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: kafka trigger deleted content: text/plain: schema: type: string /w/{workspace}/kafka_triggers/get/{path}: get: summary: get kafka trigger operationId: getKafkaTrigger tags: - kafka_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: kafka trigger deleted content: application/json: schema: $ref: "#/components/schemas/KafkaTrigger" /w/{workspace}/kafka_triggers/list: get: summary: list kafka triggers operationId: listKafkaTriggers tags: - kafka_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" required: true - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - name: path description: filter by path in: query schema: type: string - name: is_flow in: query schema: type: boolean - name: path_start in: query schema: type: string responses: "200": description: kafka trigger list content: application/json: schema: type: array items: $ref: "#/components/schemas/KafkaTrigger" /w/{workspace}/kafka_triggers/exists/{path}: get: summary: does kafka trigger exists operationId: existsKafkaTrigger tags: - kafka_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: kafka trigger exists content: application/json: schema: type: boolean /w/{workspace}/kafka_triggers/setenabled/{path}: post: summary: set enabled kafka trigger operationId: setKafkaTriggerEnabled tags: - kafka_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" requestBody: description: updated kafka trigger enable required: true content: application/json: schema: type: object properties: enabled: type: boolean required: - enabled responses: "200": description: kafka trigger enabled set content: text/plain: schema: type: string /w/{workspace}/kafka_triggers/test: post: summary: test kafka connection operationId: testKafkaConnection tags: - kafka_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: test kafka connection required: true content: application/json: schema: type: object properties: connection: type: object required: - connection responses: "200": description: successfuly connected to kafka brokers content: text/plain: schema: type: string /w/{workspace}/nats_triggers/create: post: summary: create nats trigger operationId: createNatsTrigger tags: - nats_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: new nats trigger required: true content: application/json: schema: $ref: "#/components/schemas/NewNatsTrigger" responses: "201": description: nats trigger created content: text/plain: schema: type: string /w/{workspace}/nats_triggers/update/{path}: post: summary: update nats trigger operationId: updateNatsTrigger tags: - nats_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" requestBody: description: updated trigger required: true content: application/json: schema: $ref: "#/components/schemas/EditNatsTrigger" responses: "200": description: nats trigger updated content: text/plain: schema: type: string /w/{workspace}/nats_triggers/delete/{path}: delete: summary: delete nats trigger operationId: deleteNatsTrigger tags: - nats_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: nats trigger deleted content: text/plain: schema: type: string /w/{workspace}/nats_triggers/get/{path}: get: summary: get nats trigger operationId: getNatsTrigger tags: - nats_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: nats trigger deleted content: application/json: schema: $ref: "#/components/schemas/NatsTrigger" /w/{workspace}/nats_triggers/list: get: summary: list nats triggers operationId: listNatsTriggers tags: - nats_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" required: true - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - name: path description: filter by path in: query schema: type: string - name: is_flow in: query schema: type: boolean - name: path_start in: query schema: type: string responses: "200": description: nats trigger list content: application/json: schema: type: array items: $ref: "#/components/schemas/NatsTrigger" /w/{workspace}/nats_triggers/exists/{path}: get: summary: does nats trigger exists operationId: existsNatsTrigger tags: - nats_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: nats trigger exists content: application/json: schema: type: boolean /w/{workspace}/nats_triggers/setenabled/{path}: post: summary: set enabled nats trigger operationId: setNatsTriggerEnabled tags: - nats_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" requestBody: description: updated nats trigger enable required: true content: application/json: schema: type: object properties: enabled: type: boolean required: - enabled responses: "200": description: nats trigger enabled set content: text/plain: schema: type: string /w/{workspace}/nats_triggers/test: post: summary: test NATS connection operationId: testNatsConnection tags: - nats_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: test nats connection required: true content: application/json: schema: type: object properties: connection: type: object required: - connection responses: "200": description: successfuly connected to NATS servers content: text/plain: schema: type: string /w/{workspace}/sqs_triggers/create: post: summary: create sqs trigger operationId: createSqsTrigger tags: - sqs_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: new sqs trigger required: true content: application/json: schema: $ref: "#/components/schemas/NewSqsTrigger" responses: "201": description: sqs trigger created content: text/plain: schema: type: string /w/{workspace}/sqs_triggers/update/{path}: post: summary: update sqs trigger operationId: updateSqsTrigger tags: - sqs_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" requestBody: description: updated trigger required: true content: application/json: schema: $ref: "#/components/schemas/EditSqsTrigger" responses: "200": description: sqs trigger updated content: text/plain: schema: type: string /w/{workspace}/sqs_triggers/delete/{path}: delete: summary: delete sqs trigger operationId: deleteSqsTrigger tags: - sqs_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: sqs trigger deleted content: text/plain: schema: type: string /w/{workspace}/sqs_triggers/get/{path}: get: summary: get sqs trigger operationId: getSqsTrigger tags: - sqs_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: sqs trigger deleted content: application/json: schema: $ref: "#/components/schemas/SqsTrigger" /w/{workspace}/sqs_triggers/list: get: summary: list sqs triggers operationId: listSqsTriggers tags: - sqs_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" required: true - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - name: path description: filter by path in: query schema: type: string - name: is_flow in: query schema: type: boolean - name: path_start in: query schema: type: string responses: "200": description: sqs trigger list content: application/json: schema: type: array items: $ref: "#/components/schemas/SqsTrigger" /w/{workspace}/sqs_triggers/exists/{path}: get: summary: does sqs trigger exists operationId: existsSqsTrigger tags: - sqs_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: sqs trigger exists content: application/json: schema: type: boolean /w/{workspace}/sqs_triggers/setenabled/{path}: post: summary: set enabled sqs trigger operationId: setSqsTriggerEnabled tags: - sqs_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" requestBody: description: updated sqs trigger enable required: true content: application/json: schema: type: object properties: enabled: type: boolean required: - enabled responses: "200": description: sqs trigger enabled set content: text/plain: schema: type: string /w/{workspace}/sqs_triggers/test: post: summary: test sqs connection operationId: testSqsConnection tags: - sqs_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: test sqs connection required: true content: application/json: schema: type: object properties: connection: type: object required: - connection responses: "200": description: successfuly connected to sqs content: text/plain: schema: type: string /w/{workspace}/mqtt_triggers/create: post: summary: create mqtt trigger operationId: createMqttTrigger tags: - mqtt_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: new mqtt trigger required: true content: application/json: schema: $ref: "#/components/schemas/NewMqttTrigger" responses: "201": description: mqtt trigger created content: text/plain: schema: type: string /w/{workspace}/mqtt_triggers/update/{path}: post: summary: update mqtt trigger operationId: updateMqttTrigger tags: - mqtt_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" requestBody: description: updated trigger required: true content: application/json: schema: $ref: "#/components/schemas/EditMqttTrigger" responses: "200": description: mqtt trigger updated content: text/plain: schema: type: string /w/{workspace}/mqtt_triggers/delete/{path}: delete: summary: delete mqtt trigger operationId: deleteMqttTrigger tags: - mqtt_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: mqtt trigger deleted content: text/plain: schema: type: string /w/{workspace}/mqtt_triggers/get/{path}: get: summary: get mqtt trigger operationId: getMqttTrigger tags: - mqtt_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: mqtt trigger deleted content: application/json: schema: $ref: "#/components/schemas/MqttTrigger" /w/{workspace}/mqtt_triggers/list: get: summary: list mqtt triggers operationId: listMqttTriggers tags: - mqtt_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" required: true - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - name: path description: filter by path in: query schema: type: string - name: is_flow in: query schema: type: boolean - name: path_start in: query schema: type: string responses: "200": description: mqtt trigger list content: application/json: schema: type: array items: $ref: "#/components/schemas/MqttTrigger" /w/{workspace}/mqtt_triggers/exists/{path}: get: summary: does mqtt trigger exists operationId: existsMqttTrigger tags: - mqtt_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: mqtt trigger exists content: application/json: schema: type: boolean /w/{workspace}/mqtt_triggers/setenabled/{path}: post: summary: set enabled mqtt trigger operationId: setMqttTriggerEnabled tags: - mqtt_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" requestBody: description: updated mqtt trigger enable required: true content: application/json: schema: type: object properties: enabled: type: boolean required: - enabled responses: "200": description: mqtt trigger enabled set content: text/plain: schema: type: string /w/{workspace}/mqtt_triggers/test: post: summary: test mqtt connection operationId: testMqttConnection tags: - mqtt_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: test mqtt connection required: true content: application/json: schema: type: object properties: connection: type: object required: - connection responses: "200": description: successfully connected to mqtt content: text/plain: schema: type: string /w/{workspace}/gcp_triggers/create: post: summary: create gcp trigger operationId: createGcpTrigger tags: - gcp_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: new gcp trigger required: true content: application/json: schema: $ref: "#/components/schemas/GcpTriggerData" responses: "201": description: gcp trigger created content: text/plain: schema: type: string /w/{workspace}/gcp_triggers/update/{path}: post: summary: update gcp trigger operationId: updateGcpTrigger tags: - gcp_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" requestBody: description: updated trigger required: true content: application/json: schema: $ref: "#/components/schemas/GcpTriggerData" responses: "200": description: gcp trigger updated content: text/plain: schema: type: string /w/{workspace}/gcp_triggers/delete/{path}: delete: summary: delete gcp trigger operationId: deleteGcpTrigger tags: - gcp_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: gcp trigger deleted content: text/plain: schema: type: string /w/{workspace}/gcp_triggers/get/{path}: get: summary: get gcp trigger operationId: getGcpTrigger tags: - gcp_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: gcp trigger deleted content: application/json: schema: $ref: "#/components/schemas/GcpTrigger" /w/{workspace}/gcp_triggers/list: get: summary: list gcp triggers operationId: listGcpTriggers tags: - gcp_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" required: true - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - name: path description: filter by path in: query schema: type: string - name: is_flow in: query schema: type: boolean - name: path_start in: query schema: type: string responses: "200": description: gcp trigger list content: application/json: schema: type: array items: $ref: "#/components/schemas/GcpTrigger" /w/{workspace}/gcp_triggers/exists/{path}: get: summary: does gcp trigger exists operationId: existsGcpTrigger tags: - gcp_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: gcp trigger exists content: application/json: schema: type: boolean /w/{workspace}/gcp_triggers/setenabled/{path}: post: summary: set enabled gcp trigger operationId: setGcpTriggerEnabled tags: - gcp_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" requestBody: description: updated gcp trigger enable required: true content: application/json: schema: type: object properties: enabled: type: boolean required: - enabled responses: "200": description: gcp trigger enabled set content: text/plain: schema: type: string /w/{workspace}/gcp_triggers/test: post: summary: test gcp connection operationId: testGcpConnection tags: - gcp_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: test gcp connection required: true content: application/json: schema: type: object properties: connection: type: object required: - connection responses: "200": description: try to connect to a gcp broker content: text/plain: schema: type: string /w/{workspace}/gcp_triggers/subscriptions/delete/{path}: delete: summary: delete gcp trigger operationId: deleteGcpSubscription tags: - gcp_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" requestBody: description: args to delete subscription from google cloud required: true content: application/json: schema: $ref: "#/components/schemas/DeleteGcpSubscription" responses: "200": description: gcp trigger deleted content: text/plain: schema: type: string /w/{workspace}/gcp_triggers/topics/list/{path}: get: summary: list all topics of google cloud service operationId: listGoogleTopics tags: - gcp_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: get all google topics content: application/json: schema: type: array items: type: string /w/{workspace}/gcp_triggers/subscriptions/list/{path}: post: summary: list all subscription of a give topic from google cloud service operationId: listAllTGoogleTopicSubscriptions tags: - gcp_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" requestBody: description: args to get subscription's topic from google cloud required: true content: application/json: schema: $ref: "#/components/schemas/GetAllTopicSubscription" responses: "200": description: get all google topic subscriptions name content: application/json: schema: type: array items: type: string /w/{workspace}/postgres_triggers/postgres/version/{path}: get: summary: get postgres version operationId: getPostgresVersion tags: - postgres_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: postgres version content: application/json: schema: type: string /w/{workspace}/postgres_triggers/is_valid_postgres_configuration/{path}: get: summary: check if postgres configuration is set to logical operationId: isValidPostgresConfiguration tags: - postgres_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: boolean that indicates if postgres is set to logical level or not content: application/json: schema: type: boolean /w/{workspace}/postgres_triggers/create_template_script: post: summary: create template script operationId: createTemplateScript tags: - postgres_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: template script required: true content: application/json: schema: $ref: "#/components/schemas/TemplateScript" responses: "200": description: custom id to retrieve template script content: text/plain: schema: type: string /w/{workspace}/postgres_triggers/get_template_script/{id}: get: summary: get template script operationId: getTemplateScript tags: - postgres_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Id" responses: "200": description: template script content: text/plain: schema: type: string /w/{workspace}/postgres_triggers/slot/list/{path}: get: summary: list postgres replication slot operationId: listPostgresReplicationSlot tags: - postgres_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: list postgres slot content: application/json: schema: type: array items: $ref: "#/components/schemas/SlotList" /w/{workspace}/postgres_triggers/slot/create/{path}: post: summary: create replication slot for postgres operationId: createPostgresReplicationSlot tags: - postgres_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" requestBody: description: new slot for postgres required: true content: application/json: schema: $ref: "#/components/schemas/Slot" responses: "201": description: slot created content: text/plain: schema: type: string /w/{workspace}/postgres_triggers/slot/delete/{path}: delete: summary: delete postgres replication slot operationId: deletePostgresReplicationSlot tags: - postgres_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" requestBody: description: replication slot of postgres required: true content: application/json: schema: $ref: "#/components/schemas/Slot" responses: "200": description: postgres replication slot deleted content: text/plain: schema: type: string /w/{workspace}/postgres_triggers/publication/list/{path}: get: summary: list postgres publication operationId: listPostgresPublication tags: - postgres_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: database publication list content: application/json: schema: type: array items: type: string /w/{workspace}/postgres_triggers/publication/get/{publication}/{path}: get: summary: get postgres publication operationId: getPostgresPublication tags: - postgres_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" - $ref: "#/components/parameters/PublicationName" responses: "200": description: postgres publication get content: application/json: schema: $ref: "#/components/schemas/PublicationData" /w/{workspace}/postgres_triggers/publication/create/{publication}/{path}: post: summary: create publication for postgres operationId: createPostgresPublication tags: - postgres_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" - $ref: "#/components/parameters/PublicationName" requestBody: description: new publication for postgres required: true content: application/json: schema: $ref: "#/components/schemas/PublicationData" responses: "201": description: publication created content: text/plain: schema: type: string /w/{workspace}/postgres_triggers/publication/update/{publication}/{path}: post: summary: update publication for postgres operationId: updatePostgresPublication tags: - postgres_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" - $ref: "#/components/parameters/PublicationName" requestBody: description: update publication for postgres required: true content: application/json: schema: $ref: "#/components/schemas/PublicationData" responses: "201": description: publication updated content: text/plain: schema: type: string /w/{workspace}/postgres_triggers/publication/delete/{publication}/{path}: delete: summary: delete postgres publication operationId: deletePostgresPublication tags: - postgres_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" - $ref: "#/components/parameters/PublicationName" responses: "200": description: postgres publication deleted content: text/plain: schema: type: string /w/{workspace}/postgres_triggers/create: post: summary: create postgres trigger operationId: createPostgresTrigger tags: - postgres_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: new postgres trigger required: true content: application/json: schema: $ref: "#/components/schemas/NewPostgresTrigger" responses: "201": description: postgres trigger created content: text/plain: schema: type: string /w/{workspace}/postgres_triggers/update/{path}: post: summary: update postgres trigger operationId: updatePostgresTrigger tags: - postgres_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" requestBody: description: updated trigger required: true content: application/json: schema: $ref: "#/components/schemas/EditPostgresTrigger" responses: "200": description: postgres trigger updated content: text/plain: schema: type: string /w/{workspace}/postgres_triggers/delete/{path}: delete: summary: delete postgres trigger operationId: deletePostgresTrigger tags: - postgres_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: postgres trigger deleted content: text/plain: schema: type: string /w/{workspace}/postgres_triggers/get/{path}: get: summary: get postgres trigger operationId: getPostgresTrigger tags: - postgres_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: get postgres trigger content: application/json: schema: $ref: "#/components/schemas/PostgresTrigger" /w/{workspace}/postgres_triggers/list: get: summary: list postgres triggers operationId: listPostgresTriggers tags: - postgres_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" required: true - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - name: path description: filter by path in: query schema: type: string - name: is_flow in: query schema: type: boolean - name: path_start in: query schema: type: string responses: "200": description: postgres trigger list content: application/json: schema: type: array items: $ref: "#/components/schemas/PostgresTrigger" /w/{workspace}/postgres_triggers/exists/{path}: get: summary: does postgres trigger exists operationId: existsPostgresTrigger tags: - postgres_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" responses: "200": description: postgres trigger exists content: application/json: schema: type: boolean /w/{workspace}/postgres_triggers/setenabled/{path}: post: summary: set enabled postgres trigger operationId: setPostgresTriggerEnabled tags: - postgres_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" requestBody: description: updated postgres trigger enable required: true content: application/json: schema: type: object properties: enabled: type: boolean required: - enabled responses: "200": description: postgres trigger enabled set content: text/plain: schema: type: string /w/{workspace}/postgres_triggers/test: post: summary: test postgres connection operationId: testPostgresConnection tags: - postgres_trigger parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: test postgres connection required: true content: application/json: schema: type: object properties: database: type: string required: - database responses: "200": description: successfuly connected to postgres content: text/plain: schema: type: string /groups/list: get: summary: list instance groups operationId: listInstanceGroups tags: - group responses: "200": description: instance group list content: application/json: schema: type: array items: $ref: "#/components/schemas/InstanceGroup" /groups/get/{name}: get: summary: get instance group operationId: getInstanceGroup tags: - group parameters: - $ref: "#/components/parameters/Name" responses: "200": description: instance group content: application/json: schema: $ref: "#/components/schemas/InstanceGroup" /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: - $ref: "#/components/parameters/Name" 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: - $ref: "#/components/parameters/Name" 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: - $ref: "#/components/parameters/Name" 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: - $ref: "#/components/parameters/Name" requestBody: description: user to remove from instance group required: true content: application/json: schema: type: object properties: email: type: string required: - email responses: "200": description: user removed from instance group content: text/plain: schema: type: string /groups/export: get: summary: export instance groups operationId: exportInstanceGroups tags: - group responses: "200": description: exported instance groups content: application/json: schema: type: array items: $ref: "#/components/schemas/ExportedInstanceGroup" /groups/overwrite: post: summary: overwrite instance groups operationId: overwriteInstanceGroups tags: - group requestBody: description: overwrite instance groups required: true content: application/json: schema: type: array items: $ref: "#/components/schemas/ExportedInstanceGroup" responses: "200": description: success message content: text/plain: schema: type: string /w/{workspace}/groups/list: get: summary: list groups operationId: listGroups tags: - group parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" responses: "200": description: group list content: application/json: schema: type: array items: $ref: "#/components/schemas/Group" /w/{workspace}/groups/listnames: get: summary: list group names operationId: listGroupNames tags: - group parameters: - $ref: "#/components/parameters/WorkspaceId" - 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: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Name" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Name" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Name" responses: "200": description: group content: application/json: schema: $ref: "#/components/schemas/Group" /w/{workspace}/groups/adduser/{name}: post: summary: add user to group operationId: addUserToGroup tags: - group parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Name" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Name" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" responses: "200": description: folder list content: application/json: schema: type: array items: $ref: "#/components/schemas/Folder" /w/{workspace}/folders/listnames: get: summary: list folder names operationId: listFolderNames tags: - folder parameters: - $ref: "#/components/parameters/WorkspaceId" - 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: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: create folder required: true content: application/json: schema: type: object properties: name: type: string summary: type: string owners: type: array items: type: string extra_perms: additionalProperties: type: boolean required: - name responses: "200": description: folder created content: text/plain: schema: type: string /w/{workspace}/folders/update/{name}: post: summary: update folder operationId: updateFolder tags: - folder parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Name" requestBody: description: update folder required: true content: application/json: schema: type: object properties: summary: type: string owners: type: array items: type: string extra_perms: additionalProperties: type: boolean responses: "200": description: folder updated content: text/plain: schema: type: string /w/{workspace}/folders/delete/{name}: delete: summary: delete folder operationId: deleteFolder tags: - folder parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Name" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Name" responses: "200": description: folder content: application/json: schema: $ref: "#/components/schemas/Folder" /w/{workspace}/folders/exists/{name}: get: summary: exists folder operationId: existsFolder tags: - folder parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Name" responses: "200": description: folder exists content: application/json: schema: type: boolean /w/{workspace}/folders/getusage/{name}: get: summary: get folder usage operationId: getFolderUsage tags: - folder parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Name" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Name" requestBody: description: owner user to folder required: true content: application/json: schema: type: object properties: owner: type: string required: - owner responses: "200": description: owner added to folder content: text/plain: schema: type: string /w/{workspace}/folders/removeowner/{name}: post: summary: remove owner to folder operationId: removeOwnerToFolder tags: - folder parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Name" requestBody: description: added owner to folder required: true content: application/json: schema: type: object properties: owner: type: string write: type: boolean required: - owner responses: "200": description: owner removed from folder content: text/plain: schema: type: string /workers/list: get: summary: list workers operationId: listWorkers tags: - worker parameters: - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - 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: $ref: "#/components/schemas/WorkerPing" /workers/exists_worker_with_tag: get: summary: exists worker with tag operationId: existsWorkerWithTag tags: - worker parameters: - name: tag in: query required: true schema: type: string responses: "200": description: whether a worker with the tag exists content: application/json: schema: type: boolean /workers/queue_metrics: get: summary: get queue metrics operationId: getQueueMetrics tags: - worker responses: "200": description: metrics content: application/json: schema: type: array items: type: object properties: id: type: string values: type: array items: type: object properties: created_at: type: string value: type: number required: - created_at - value required: - id - values /workers/queue_counts: get: summary: get counts of jobs waiting for an executor per tag operationId: getCountsOfJobsWaitingPerTag tags: - worker responses: "200": description: queue counts content: application/json: schema: type: object additionalProperties: type: integer /configs/list_worker_groups: get: summary: list worker groups operationId: listWorkerGroups tags: - config responses: "200": description: a list of worker group configs content: application/json: schema: type: array items: type: object properties: name: type: string config: {} required: - name - config /configs/get/{name}: get: summary: get config operationId: get config tags: - config parameters: - $ref: "#/components/parameters/Name" responses: "200": description: a config content: application/json: schema: $ref: "#/components/schemas/Configs" /configs/update/{name}: post: summary: Update config operationId: updateConfig tags: - config parameters: - $ref: "#/components/parameters/Name" 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: - $ref: "#/components/parameters/Name" responses: "200": description: Delete config content: text/plain: schema: type: string /configs/list: get: summary: list configs operationId: listConfigs tags: - config responses: "200": description: list of configs content: application/json: schema: type: array items: $ref: "#/components/schemas/Config" /configs/list_autoscaling_events/{worker_group}: get: summary: List autoscaling events operationId: listAutoscalingEvents tags: - config parameters: - name: worker_group in: path required: true schema: type: string responses: "200": description: List of autoscaling events content: application/json: schema: type: array items: $ref: "#/components/schemas/AutoscalingEvent" /configs/list_available_python_versions: get: summary: Get currently available python versions provided by UV. operationId: listAvailablePythonVersions tags: - config # parameters: responses: "200": description: List of python versions content: application/json: schema: type: array items: type: string /agent_workers/create_agent_token: post: summary: create agent token operationId: createAgentToken tags: - agent_workers requestBody: description: agent token required: true content: application/json: schema: type: object properties: worker_group: type: string tags: type: array items: type: string exp: type: integer required: - worker_group - tags - exp responses: "200": description: agent token created content: application/json: schema: type: string /agent_workers/blacklist_token: post: summary: blacklist agent token (requires super admin) operationId: blacklistAgentToken tags: - agent_workers requestBody: description: token to blacklist required: true content: application/json: schema: type: object properties: token: type: string description: The agent token to blacklist expires_at: type: string format: date-time description: Optional expiration date for the blacklist entry required: - token responses: "200": description: token blacklisted successfully /agent_workers/remove_blacklist_token: post: summary: remove agent token from blacklist (requires super admin) operationId: removeBlacklistAgentToken tags: - agent_workers requestBody: description: token to remove from blacklist required: true content: application/json: schema: type: object properties: token: type: string description: The agent token to remove from blacklist required: - token responses: "200": description: token removed from blacklist successfully /agent_workers/list_blacklisted_tokens: get: summary: list blacklisted agent tokens (requires super admin) operationId: listBlacklistedAgentTokens tags: - agent_workers parameters: - name: include_expired in: query description: Whether to include expired blacklisted tokens schema: type: boolean default: false responses: "200": description: list of blacklisted tokens content: application/json: schema: type: array items: type: object properties: token: type: string description: The blacklisted token (without prefix) expires_at: type: string format: date-time description: When the blacklist entry expires blacklisted_at: type: string format: date-time description: When the token was blacklisted blacklisted_by: type: string description: Email of the user who blacklisted the token required: - token - expires_at - blacklisted_at - blacklisted_by /w/{workspace}/acls/get/{kind}/{path}: get: summary: get granular acls operationId: getGranularAcls tags: - granular_acl parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" - name: kind in: path required: true schema: type: string enum: [ script, group_, resource, schedule, variable, flow, folder, app, raw_app, http_trigger, websocket_trigger, kafka_trigger, nats_trigger, postgres_trigger, mqtt_trigger, gcp_trigger, sqs_trigger ] responses: "200": description: acls content: application/json: schema: type: object additionalProperties: type: boolean /w/{workspace}/acls/add/{kind}/{path}: post: summary: add granular acls operationId: addGranularAcls tags: - granular_acl parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" - name: kind in: path required: true schema: type: string enum: [ script, group_, resource, schedule, variable, flow, folder, app, raw_app, http_trigger, websocket_trigger, kafka_trigger, nats_trigger, postgres_trigger, mqtt_trigger, gcp_trigger, sqs_trigger ] requestBody: description: acl to add required: true content: application/json: schema: type: object properties: owner: type: string write: type: boolean required: [owner] responses: "200": description: granular acl added content: text/plain: schema: type: string /w/{workspace}/acls/remove/{kind}/{path}: post: summary: remove granular acls operationId: removeGranularAcls tags: - granular_acl parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" - name: kind in: path required: true schema: type: string enum: [ script, group_, resource, schedule, variable, flow, folder, app, raw_app, http_trigger, websocket_trigger, kafka_trigger, nats_trigger, postgres_trigger, mqtt_trigger, gcp_trigger, sqs_trigger ] requestBody: description: acl to add required: true content: application/json: schema: type: object properties: owner: type: string required: [owner] responses: "200": description: granular acl removed content: text/plain: schema: type: string /w/{workspace}/capture/set_config: post: summary: set capture config operationId: setCaptureConfig tags: - capture parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: capture config required: true content: application/json: schema: type: object properties: trigger_kind: $ref: "#/components/schemas/CaptureTriggerKind" path: type: string is_flow: type: boolean trigger_config: type: object required: - trigger_kind - path - is_flow responses: "200": description: capture config set content: application/json: schema: type: object /w/{workspace}/capture/ping_config/{trigger_kind}/{runnable_kind}/{path}: post: summary: ping capture config operationId: pingCaptureConfig tags: - capture parameters: - $ref: "#/components/parameters/WorkspaceId" - name: trigger_kind in: path required: true schema: $ref: "#/components/schemas/CaptureTriggerKind" - $ref: "#/components/parameters/RunnableKind" - $ref: "#/components/parameters/Path" responses: "200": description: capture config pinged /w/{workspace}/capture/get_configs/{runnable_kind}/{path}: get: summary: get capture configs for a script or flow operationId: getCaptureConfigs tags: - capture parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/RunnableKind" - $ref: "#/components/parameters/Path" responses: "200": description: capture configs for a script or flow content: application/json: schema: type: array items: $ref: "#/components/schemas/CaptureConfig" /w/{workspace}/capture/list/{runnable_kind}/{path}: get: summary: list captures for a script or flow operationId: listCaptures tags: - capture parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/RunnableKind" - $ref: "#/components/parameters/Path" - name: trigger_kind in: query schema: $ref: "#/components/schemas/CaptureTriggerKind" - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" responses: "200": description: list of captures for a script or flow content: application/json: schema: type: array items: $ref: "#/components/schemas/Capture" /w/{workspace}/capture/move/{runnable_kind}/{path}: post: summary: move captures and configs for a script or flow operationId: moveCapturesAndConfigs tags: - capture parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/RunnableKind" - $ref: "#/components/parameters/Path" requestBody: description: move captures and configs to a new path required: true content: application/json: schema: type: object properties: new_path: type: string responses: "200": description: captures and configs moved content: text/plain: schema: type: string /w/{workspace}/capture/{id}: get: summary: get a capture operationId: getCapture tags: - capture parameters: - $ref: "#/components/parameters/WorkspaceId" - name: id in: path required: true schema: type: integer responses: "200": description: capture content: application/json: schema: $ref: "#/components/schemas/Capture" delete: summary: delete a capture operationId: deleteCapture tags: - capture parameters: - $ref: "#/components/parameters/WorkspaceId" - name: id in: path required: true schema: type: integer responses: "200": description: capture deleted /w/{workspace}/favorites/star: post: summary: star item operationId: star tags: - favorite parameters: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/RunnableId" - $ref: "#/components/parameters/RunnableTypeQuery" - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - $ref: "#/components/parameters/ArgsFilter" - name: include_preview in: query schema: type: boolean responses: "200": description: Input history for completed jobs content: application/json: schema: type: array items: $ref: "#/components/schemas/Input" /w/{workspace}/inputs/{jobOrInputId}/args: get: summary: Get args from history or saved input operationId: getArgsFromHistoryOrSavedInput tags: - input parameters: - $ref: "#/components/parameters/WorkspaceId" - name: jobOrInputId in: path required: true schema: type: string - name: input in: query schema: type: boolean - name: allow_large in: query schema: type: boolean responses: "200": description: args content: application/json: schema: {} /w/{workspace}/inputs/list: get: summary: List saved Inputs for a Runnable operationId: listInputs tags: - input parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/RunnableId" - $ref: "#/components/parameters/RunnableTypeQuery" - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" responses: "200": description: Saved Inputs for a Runnable content: application/json: schema: type: array items: $ref: "#/components/schemas/Input" /w/{workspace}/inputs/create: post: summary: Create an Input for future use in a script or flow operationId: createInput tags: - input parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/RunnableId" - $ref: "#/components/parameters/RunnableTypeQuery" requestBody: description: Input required: true content: application/json: schema: $ref: "#/components/schemas/CreateInput" 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: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: UpdateInput required: true content: application/json: schema: $ref: "#/components/schemas/UpdateInput" 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: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/InputId" 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: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: S3 resource to connect to required: true content: application/json: schema: type: object properties: s3_resource: $ref: "#/components/schemas/S3Resource" 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: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: S3 resource path to use to generate the connection settings. If empty, the S3 resource defined in the workspace settings will be used required: true content: application/json: schema: type: object properties: s3_resource_path: type: string responses: "200": description: Connection settings content: application/json: schema: type: object properties: connection_settings_str: type: string azure_container_path: type: string required: - connection_settings_str /w/{workspace}/job_helpers/polars_connection_settings: post: summary: Converts an S3 resource to the set of arguments necessary to connect Polars to an S3 bucket operationId: polarsConnectionSettings tags: - helpers parameters: - $ref: "#/components/parameters/WorkspaceId" requestBody: description: S3 resource to connect to required: true content: application/json: schema: type: object properties: s3_resource: $ref: "#/components/schemas/S3Resource" 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: $ref: "#/components/schemas/PolarsClientKwargs" 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: - $ref: "#/components/parameters/WorkspaceId" 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: $ref: "#/components/schemas/PolarsClientKwargs" 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: - $ref: "#/components/parameters/WorkspaceId" 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: $ref: "#/components/schemas/S3Resource" /w/{workspace}/job_helpers/test_connection: get: summary: Test connection to the workspace object storage operationId: datasetStorageTestConnection tags: - helpers parameters: - $ref: "#/components/parameters/WorkspaceId" - name: storage in: query schema: type: string responses: "200": description: Connection settings content: application/json: schema: {} /w/{workspace}/job_helpers/list_stored_files: get: summary: List the file keys available in a workspace object storage operationId: listStoredFiles tags: - helpers parameters: - $ref: "#/components/parameters/WorkspaceId" - name: max_keys in: query required: true schema: type: integer - name: marker in: query schema: type: string - name: prefix in: query schema: type: string - name: storage in: query schema: type: string responses: "200": description: List of file keys content: application/json: schema: type: object properties: next_marker: type: string windmill_large_files: type: array items: $ref: "#/components/schemas/WindmillLargeFile" 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: - $ref: "#/components/parameters/WorkspaceId" - name: file_key in: query required: true schema: type: string - name: storage in: query schema: type: string responses: "200": description: FileMetadata content: application/json: schema: $ref: "#/components/schemas/WindmillFileMetadata" /w/{workspace}/job_helpers/load_file_preview: get: summary: Load a preview of the file operationId: loadFilePreview tags: - helpers parameters: - $ref: "#/components/parameters/WorkspaceId" - name: file_key in: query required: true schema: type: string - name: file_size_in_bytes in: query schema: type: integer - name: file_mime_type in: query schema: type: string - name: csv_separator in: query schema: type: string - name: csv_has_header in: query schema: type: boolean - name: read_bytes_from in: query schema: type: integer - name: read_bytes_length in: query schema: type: integer - name: storage in: query schema: type: string responses: "200": description: FilePreview content: application/json: schema: $ref: "#/components/schemas/WindmillFilePreview" /w/{workspace}/job_helpers/load_parquet_preview/{path}: get: summary: Load a preview of a parquet file operationId: loadParquetPreview tags: - helpers parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" - name: offset in: query schema: type: number - name: limit in: query schema: type: number - name: sort_col in: query schema: type: string - name: sort_desc in: query schema: type: boolean - name: search_col in: query schema: type: string - name: search_term in: query schema: type: string - name: storage in: query schema: type: string responses: "200": description: Parquet Preview content: application/json: schema: {} /w/{workspace}/job_helpers/load_table_count/{path}: get: summary: Load the table row count operationId: loadTableRowCount tags: - helpers parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" - name: search_col in: query schema: type: string - name: search_term in: query schema: type: string - name: storage in: query schema: type: string responses: "200": description: Table count content: application/json: schema: type: object properties: count: type: number /w/{workspace}/job_helpers/load_csv_preview/{path}: get: summary: Load a preview of a csv file operationId: loadCsvPreview tags: - helpers parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/Path" - name: offset in: query schema: type: number - name: limit in: query schema: type: number - name: sort_col in: query schema: type: string - name: sort_desc in: query schema: type: boolean - name: search_col in: query schema: type: string - name: search_term in: query schema: type: string - name: storage in: query schema: type: string - name: csv_separator in: query schema: type: string responses: "200": description: Csv Preview content: application/json: schema: {} /w/{workspace}/job_helpers/delete_s3_file: delete: summary: Permanently delete file from S3 operationId: deleteS3File tags: - helpers parameters: - $ref: "#/components/parameters/WorkspaceId" - name: file_key in: query required: true schema: type: string - name: storage in: query schema: type: string responses: "200": description: Confirmation content: application/json: schema: {} /w/{workspace}/job_helpers/move_s3_file: get: summary: Move a S3 file from one path to the other within the same bucket operationId: moveS3File tags: - helpers parameters: - $ref: "#/components/parameters/WorkspaceId" - name: src_file_key in: query required: true schema: type: string - name: dest_file_key in: query required: true schema: type: string - name: storage in: query schema: type: string responses: "200": description: Confirmation content: application/json: schema: {} /w/{workspace}/job_helpers/upload_s3_file: post: summary: Upload file to S3 bucket operationId: fileUpload tags: - helpers parameters: - $ref: "#/components/parameters/WorkspaceId" - name: file_key in: query required: false schema: type: string - name: file_extension in: query required: false schema: type: string - name: s3_resource_path in: query required: false schema: type: string - name: resource_type in: query required: false schema: type: string - name: storage in: query schema: type: string - name: content_type in: query schema: type: string - name: content_disposition in: query schema: type: string requestBody: description: File content required: true content: application/octet-stream: schema: type: string format: binary responses: "200": description: File upload status content: application/json: schema: type: object properties: file_key: type: string required: - file_key /w/{workspace}/job_helpers/download_s3_file: get: summary: Download file from S3 bucket operationId: fileDownload tags: - helpers parameters: - $ref: "#/components/parameters/WorkspaceId" - name: file_key in: query required: true schema: type: string - name: s3_resource_path in: query required: false schema: type: string - name: resource_type in: query required: false schema: type: string - name: storage in: query schema: type: string responses: "200": description: Chunk of the downloaded file content: application/octet-stream: schema: type: string format: binary /w/{workspace}/job_helpers/download_s3_parquet_file_as_csv: get: summary: Download file to S3 bucket operationId: fileDownloadParquetAsCsv tags: - helpers parameters: - $ref: "#/components/parameters/WorkspaceId" - name: file_key in: query required: true schema: type: string - name: s3_resource_path in: query required: false schema: type: string - name: resource_type in: query required: false schema: type: string responses: "200": description: The downloaded file content: text/csv: schema: type: string /w/{workspace}/job_metrics/get/{id}: post: summary: get job metrics operationId: getJobMetrics tags: - metrics parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" 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: $ref: "#/components/schemas/MetricMetadata" scalar_metrics: type: array items: $ref: "#/components/schemas/ScalarMetric" timeseries_metrics: type: array items: $ref: "#/components/schemas/TimeseriesMetric" /w/{workspace}/job_metrics/set_progress/{id}: post: summary: set job metrics operationId: setJobProgress tags: - metrics parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" requestBody: description: parameters for statistics retrieval required: true content: application/json: schema: type: object properties: percent: type: integer flow_job_id: type: string format: uuid responses: "200": description: Job progress updated content: application/json: schema: {} /w/{workspace}/job_metrics/get_progress/{id}: get: summary: get job progress operationId: getJobProgress tags: - metrics parameters: - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/JobId" responses: "200": description: job progress between 0 and 99 content: application/json: schema: type: integer /service_logs/list_files: get: summary: list log files ordered by timestamp operationId: listLogFiles tags: - service_logs parameters: - $ref: "#/components/parameters/Before" - $ref: "#/components/parameters/After" - name: with_error in: query required: false schema: type: boolean responses: "200": description: time content: application/json: schema: type: array items: type: object properties: hostname: type: string mode: type: string worker_group: type: string log_ts: type: string format: date-time file_path: type: string ok_lines: type: integer err_lines: type: integer json_fmt: type: boolean required: - hostname - mode - log_ts - file_path - json_fmt /service_logs/get_log_file/{path}: get: summary: get log file by path operationId: getLogFile tags: - service_logs parameters: - $ref: "#/components/parameters/Path" responses: "200": description: log stream content: text/plain: schema: type: string /concurrency_groups/list: get: summary: List all concurrency groups operationId: listConcurrencyGroups tags: - concurrencyGroups responses: "200": description: all concurrency groups content: application/json: schema: type: array items: $ref: "#/components/schemas/ConcurrencyGroup" /concurrency_groups/prune/{concurrency_id}: delete: summary: Delete concurrency group operationId: deleteConcurrencyGroup tags: - concurrencyGroups parameters: - $ref: "#/components/parameters/ConcurrencyId" responses: "200": description: concurrency group removed content: application/json: schema: type: object properties: {} /concurrency_groups/{id}/key: get: summary: Get the concurrency key for a job that has concurrency limits enabled operationId: getConcurrencyKey tags: - concurrencyGroups parameters: - $ref: "#/components/parameters/JobId" responses: "200": description: concurrency key for given job content: application/json: schema: type: string /w/{workspace}/concurrency_groups/list_jobs: get: summary: Get intervals of job runtime concurrency operationId: listExtendedJobs tags: - concurrencyGroups - job parameters: - name: concurrency_key in: query required: false schema: type: string - name: row_limit in: query required: false schema: type: number - $ref: "#/components/parameters/WorkspaceId" - $ref: "#/components/parameters/CreatedBy" - $ref: "#/components/parameters/Label" - $ref: "#/components/parameters/ParentJob" - $ref: "#/components/parameters/ScriptExactPath" - $ref: "#/components/parameters/ScriptStartPath" - $ref: "#/components/parameters/SchedulePath" - $ref: "#/components/parameters/ScriptExactHash" - $ref: "#/components/parameters/StartedBefore" - $ref: "#/components/parameters/StartedAfter" - $ref: "#/components/parameters/CreatedOrStartedBefore" - $ref: "#/components/parameters/Running" - $ref: "#/components/parameters/ScheduledForBeforeNow" - $ref: "#/components/parameters/CreatedOrStartedAfter" - $ref: "#/components/parameters/CreatedOrStartedAfterCompletedJob" - $ref: "#/components/parameters/JobKinds" - $ref: "#/components/parameters/ArgsFilter" - $ref: "#/components/parameters/Tag" - $ref: "#/components/parameters/ResultFilter" - $ref: "#/components/parameters/AllowWildcards" - $ref: "#/components/parameters/Page" - $ref: "#/components/parameters/PerPage" - name: is_skipped description: is the job skipped in: query schema: type: boolean - name: is_flow_step description: is the job a flow step in: query schema: type: boolean - name: has_null_parent description: has null parent in: query schema: type: boolean - name: success description: filter on successful jobs in: query schema: type: boolean - name: all_workspaces description: get jobs from all workspaces (only valid if request come from the `admins` workspace) in: query schema: type: boolean - name: is_not_schedule description: is not a scheduled job in: query schema: type: boolean responses: "200": description: time content: application/json: schema: $ref: "#/components/schemas/ExtendedJobs" /srch/w/{workspace}/index/search/job: get: summary: Search through jobs with a string query operationId: searchJobsIndex tags: - indexSearch parameters: - $ref: "#/components/parameters/WorkspaceId" - name: search_query in: query required: true schema: type: string - name: pagination_offset in: query required: false schema: type: integer responses: "200": description: search results content: application/json: schema: type: object properties: query_parse_errors: description: a list of the terms that couldn't be parsed (and thus ignored) type: array items: type: string hits: description: the jobs that matched the query type: array items: $ref: "#/components/schemas/JobSearchHit" hit_count: description: how many jobs matched in total type: number index_metadata: description: Metadata about the index current state type: object properties: indexed_until: description: Datetime of the most recently indexed job type: string format: date-time lost_lock_ownership: description: Is the current indexer service being replaced type: boolean /srch/index/search/service_logs: get: summary: Search through service logs with a string query operationId: searchLogsIndex tags: - indexSearch parameters: - name: search_query in: query required: true schema: type: string - name: mode in: query required: true schema: type: string - name: worker_group in: query required: false schema: type: string - name: hostname in: query required: true schema: type: string - name: min_ts in: query required: false schema: type: string format: date-time - name: max_ts in: query required: false schema: type: string format: date-time responses: "200": description: search results content: application/json: schema: type: object properties: query_parse_errors: description: a list of the terms that couldn't be parsed (and thus ignored) type: array items: type: string hits: description: log files that matched the query type: array items: $ref: "#/components/schemas/LogSearchHit" /srch/index/search/count_service_logs: get: summary: Search and count the log line hits on every provided host operationId: countSearchLogsIndex tags: - indexSearch parameters: - name: search_query in: query required: true schema: type: string - name: min_ts in: query required: false schema: type: string format: date-time - name: max_ts in: query required: false schema: type: string format: date-time responses: "200": description: search results content: application/json: schema: type: object properties: query_parse_errors: description: a list of the terms that couldn't be parsed (and thus ignored) type: array items: type: string count_per_host: description: count of log lines that matched the query per hostname type: object /srch/index/delete/{idx_name}: delete: summary: Restart container and delete the index to recreate it. operationId: clearIndex tags: - indexSearch parameters: - name: idx_name in: path required: true schema: type: string enum: - JobIndex - ServiceLogIndex responses: "200": description: idx to be deleted and container restarting content: text/plain: schema: type: string components: securitySchemes: bearerAuth: type: http scheme: bearer cookieAuth: type: apiKey in: cookie name: token parameters: Id: name: id in: path required: true schema: type: string Key: name: key in: path required: true schema: type: string WorkspaceId: name: workspace in: path required: true schema: type: string PublicationName: name: publication in: path required: true schema: type: string VersionId: name: version in: path required: true schema: type: number Token: name: token in: path required: true schema: type: string AccountId: name: id in: path required: true schema: type: integer ClientName: name: client_name in: path required: true schema: type: string ScriptPath: name: path in: path required: true schema: type: string ScriptHash: name: hash in: path required: true schema: type: string JobId: name: id in: path required: true schema: type: string format: uuid Path: name: path in: path required: true schema: type: string CustomPath: name: custom_path in: path required: true schema: type: string PathId: name: id in: path required: true schema: type: integer PathVersion: name: version in: path required: true schema: type: integer Name: name: name in: path required: true schema: type: string Page: name: page description: which page to return (start at 1, default 1) in: query schema: type: integer PerPage: name: per_page description: number of items to return for a given page (default 30, max 100) in: query schema: type: integer OrderDesc: name: order_desc description: order by desc order (default true) in: query schema: type: boolean CreatedBy: name: created_by description: mask to filter exact matching user creator in: query schema: type: string Label: name: label description: mask to filter exact matching job's label (job labels are completed jobs with as a result an object containing a string in the array at key 'wm_labels') in: query schema: type: string Worker: name: worker description: worker this job was ran on in: query schema: type: string 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: type: string format: uuid WorkerTag: name: tag description: Override the tag to use in: query schema: type: string CacheTtl: name: cache_ttl description: Override the cache time to live (in seconds). Can not be used to disable caching, only override with a new cache ttl in: query schema: type: string 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: type: string format: uuid 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: type: string 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: type: string 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: type: string ScriptStartPath: name: script_path_start description: mask to filter matching starting path in: query schema: type: string SchedulePath: name: schedule_path description: mask to filter by schedule path in: query schema: type: string ScriptExactPath: name: script_path_exact description: mask to filter exact matching path in: query schema: type: string ScriptExactHash: name: script_hash description: mask to filter exact matching path in: query schema: type: string CreatedBefore: name: created_before description: filter on created before (inclusive) timestamp in: query schema: type: string format: date-time CreatedAfter: name: created_after description: filter on created after (exclusive) timestamp in: query schema: type: string format: date-time StartedBefore: name: started_before description: filter on started before (inclusive) timestamp in: query schema: type: string format: date-time StartedAfter: name: started_after description: filter on started after (exclusive) timestamp in: query schema: type: string format: date-time Before: name: before description: filter on started before (inclusive) timestamp in: query schema: type: string format: date-time 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: type: string format: date-time CreatedOrStartedAfterCompletedJob: name: created_or_started_after_completed_jobs description: filter on created_at for non non started job and started_at otherwise after (exclusive) timestamp but only for the completed jobs in: query schema: type: string format: date-time 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: type: string format: date-time Success: name: success description: filter on successful jobs in: query schema: type: boolean ScheduledForBeforeNow: name: scheduled_for_before_now description: filter on jobs scheduled_for before now (hence waitinf for a worker) in: query schema: type: boolean Suspended: name: suspended description: filter on suspended jobs in: query schema: type: boolean Running: name: running description: filter on running jobs in: query schema: type: boolean AllowWildcards: name: allow_wildcards description: allow wildcards (*) in the filter of label, tag, worker in: query schema: type: boolean ArgsFilter: name: args description: filter on jobs containing those args as a json subset (@> in postgres) in: query schema: type: string Tag: name: tag description: filter on jobs with a given tag/worker group in: query schema: type: string ResultFilter: name: result description: filter on jobs containing those result as a json subset (@> in postgres) in: query schema: type: string After: name: after description: filter on created after (exclusive) timestamp in: query schema: type: string format: date-time Username: name: username description: filter on exact username of user in: query schema: type: string Operation: name: operation description: filter on exact or prefix name of operation in: query schema: type: string ResourceName: name: resource description: filter on exact or prefix name of resource in: query schema: type: string ActionKind: name: action_kind description: filter on type of operation in: query schema: type: string enum: [Create, Update, Delete, Execute] JobKinds: name: job_kinds description: filter on job kind (values 'preview', 'script', 'dependencies', 'flow') separated by, in: query schema: type: string # correct type is below but explode not supported by our codegen # type: array # items: # type: string # enum: ["preview", "script", "dependencies"] # explode: false RunnableId: name: runnable_id in: query schema: type: string RunnableTypeQuery: name: runnable_type in: query schema: $ref: "#/components/schemas/RunnableType" InputId: name: input in: path required: true schema: type: string GetStarted: name: get_started in: query schema: type: boolean ConcurrencyId: name: concurrency_id in: path required: true schema: type: string RunnableKind: name: runnable_kind in: path required: true schema: type: string enum: [script, flow] schemas: # NOTE: Not so many generators and validators support this format: # $ref: "../../openflow.openapi.yaml#/components/schemas" # This is why it is better to inline each of schemas for better compat # Do not change next line. It is used by python-client for pre-processing # -- INLINE START -- OpenFlow: $ref: "../../openflow.openapi.yaml#/components/schemas/OpenFlow" FlowValue: $ref: "../../openflow.openapi.yaml#/components/schemas/FlowValue" Retry: $ref: "../../openflow.openapi.yaml#/components/schemas/Retry" StopAfterIf: $ref: "../../openflow.openapi.yaml#/components/schemas/StopAfterIf" FlowModule: $ref: "../../openflow.openapi.yaml#/components/schemas/FlowModule" InputTransform: $ref: "../../openflow.openapi.yaml#/components/schemas/InputTransform" StaticTransform: $ref: "../../openflow.openapi.yaml#/components/schemas/StaticTransform" JavascriptTransform: $ref: "../../openflow.openapi.yaml#/components/schemas/JavascriptTransform" FlowModuleValue: $ref: "../../openflow.openapi.yaml#/components/schemas/FlowModuleValue" RawScript: $ref: "../../openflow.openapi.yaml#/components/schemas/RawScript" PathScript: $ref: "../../openflow.openapi.yaml#/components/schemas/PathScript" PathFlow: $ref: "../../openflow.openapi.yaml#/components/schemas/PathFlow" ForloopFlow: $ref: "../../openflow.openapi.yaml#/components/schemas/ForloopFlow" WhileloopFlow: $ref: "../../openflow.openapi.yaml#/components/schemas/WhileloopFlow" BranchOne: $ref: "../../openflow.openapi.yaml#/components/schemas/BranchOne" BranchAll: $ref: "../../openflow.openapi.yaml#/components/schemas/BranchAll" Identity: $ref: "../../openflow.openapi.yaml#/components/schemas/Identity" FlowStatus: $ref: "../../openflow.openapi.yaml#/components/schemas/FlowStatus" FlowStatusModule: $ref: "../../openflow.openapi.yaml#/components/schemas/FlowStatusModule" # -- INLINE END -- # Do not change line above AIProvider: type: string enum: [openai, azure_openai, anthropic, mistral, deepseek, googleai, groq, openrouter, togetherai, customai] AIProviderModel: type: object properties: model: type: string provider: $ref: "#/components/schemas/AIProvider" required: - model - provider AIProviderConfig: type: object properties: resource_path: type: string models: type: array items: type: string required: - resource_path - models AIConfig: type: object properties: providers: type: object additionalProperties: $ref: "#/components/schemas/AIProviderConfig" default_model: $ref: "#/components/schemas/AIProviderModel" code_completion_model: $ref: "#/components/schemas/AIProviderModel" Alert: type: object properties: name: type: string tags_to_monitor: type: array items: type: string jobs_num_threshold: type: integer alert_cooldown_seconds: type: integer alert_time_threshold_seconds: type: integer required: - name - tags_to_monitor - jobs_num_threshold - alert_cooldown_seconds - alert_time_threshold_seconds Configs: type: object nullable: true properties: alerts: type: array items: $ref: '#/components/schemas/Alert' Script: type: object properties: 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: $ref: "#/components/schemas/ScriptLang" kind: type: string enum: [script, failure, trigger, command, approval, preprocessor] starred: type: boolean tag: type: string has_draft: type: boolean draft_only: type: boolean envs: type: array items: type: string concurrent_limit: type: integer concurrency_time_window_s: type: integer concurrency_key: type: string cache_ttl: type: number dedicated_worker: type: boolean ws_error_handler_muted: type: boolean priority: type: integer restart_unless_cancelled: type: boolean timeout: type: integer delete_after_use: type: boolean visible_to_runner_only: type: boolean no_main_func: type: boolean codebase: type: string has_preprocessor: type: boolean on_behalf_of_email: type: string required: - hash - path - summary - description - content - created_by - created_at - archived - deleted - is_template - extra_perms - language - kind - starred - no_main_func - has_preprocessor NewScript: type: object properties: 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: $ref: "#/components/schemas/ScriptLang" kind: type: string enum: [script, failure, trigger, command, approval, preprocessor] tag: type: string draft_only: type: boolean envs: type: array items: type: string concurrent_limit: type: integer concurrency_time_window_s: type: integer cache_ttl: type: number dedicated_worker: type: boolean ws_error_handler_muted: type: boolean priority: type: integer restart_unless_cancelled: type: boolean timeout: type: integer delete_after_use: type: boolean deployment_message: type: string concurrency_key: type: string visible_to_runner_only: type: boolean no_main_func: type: boolean codebase: type: string has_preprocessor: type: boolean on_behalf_of_email: type: string required: - path - summary - description - content - language NewScriptWithDraft: allOf: - $ref: "#/components/schemas/NewScript" - type: object properties: draft: $ref: "#/components/schemas/NewScript" hash: type: string required: - hash ScriptHistory: type: object properties: script_hash: type: string deployment_msg: type: string required: - script_hash ScriptArgs: type: object additionalProperties: {} Input: type: object properties: id: type: string name: type: string created_by: type: string created_at: type: string format: date-time is_public: type: boolean success: type: boolean required: - id - name - args - created_by - created_at - is_public CreateInput: type: object properties: name: type: string args: type: object required: - name - args - created_by UpdateInput: type: object properties: id: type: string name: type: string is_public: type: boolean required: - id - name - is_public RunnableType: type: string enum: ["ScriptHash", "ScriptPath", "FlowPath"] QueuedJob: type: object properties: 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: $ref: "#/components/schemas/ScriptArgs" logs: type: string raw_code: type: string canceled: type: boolean canceled_by: type: string canceled_reason: type: string last_ping: type: string format: date-time job_kind: type: string enum: [ "script", "preview", "dependencies", "flowdependencies", "appdependencies", "flow", "flowpreview", "script_hub", "identity", "deploymentcallback", "singlescriptflow", "flowscript", "flownode", "appscript" ] schedule_path: type: string permissioned_as: type: string description: | The user (u/userfoo) or group (g/groupfoo) whom the execution of this script will be permissioned_as and by extension its DT_TOKEN. flow_status: $ref: "../../openflow.openapi.yaml#/components/schemas/FlowStatus" raw_flow: $ref: "../../openflow.openapi.yaml#/components/schemas/FlowValue" is_flow_step: type: boolean language: $ref: "#/components/schemas/ScriptLang" email: type: string visible_to_owner: type: boolean mem_peak: type: integer tag: type: string priority: type: integer self_wait_time_ms: type: number aggregate_wait_time_ms: type: number suspend: type: number preprocessed: type: boolean worker: type: string required: - id - running - canceled - job_kind - permissioned_as - is_flow_step - email - visible_to_owner - tag CompletedJob: type: object properties: 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: $ref: "#/components/schemas/ScriptArgs" result: {} logs: type: string deleted: type: boolean raw_code: type: string canceled: type: boolean canceled_by: type: string canceled_reason: type: string job_kind: type: string enum: [ "script", "preview", "dependencies", "flow", "flowdependencies", "appdependencies", "flowpreview", "script_hub", "identity", "deploymentcallback", "singlescriptflow", "flowscript", "flownode", "appscript" ] schedule_path: type: string permissioned_as: type: string description: | The user (u/userfoo) or group (g/groupfoo) whom the execution of this script will be permissioned_as and by extension its DT_TOKEN. flow_status: $ref: "../../openflow.openapi.yaml#/components/schemas/FlowStatus" raw_flow: $ref: "../../openflow.openapi.yaml#/components/schemas/FlowValue" is_flow_step: type: boolean language: $ref: "#/components/schemas/ScriptLang" is_skipped: type: boolean email: type: string visible_to_owner: type: boolean mem_peak: type: integer tag: type: string priority: type: integer labels: type: array items: type: string self_wait_time_ms: type: number aggregate_wait_time_ms: type: number preprocessed: type: boolean worker: type: string required: - 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 ObscuredJob: type: object properties: typ: type: string started_at: type: string format: date-time duration_ms: type: number Job: oneOf: - allOf: - $ref: "#/components/schemas/CompletedJob" - type: object properties: type: type: string enum: [CompletedJob] - allOf: - $ref: "#/components/schemas/QueuedJob" - type: object properties: type: type: string enum: [QueuedJob] discriminator: propertyName: type User: type: object properties: email: type: string username: type: string is_admin: type: boolean name: type: string is_super_admin: type: boolean created_at: type: string format: date-time operator: type: boolean disabled: type: boolean groups: type: array items: type: string folders: type: array items: type: string folders_owners: type: array items: type: string required: - email - username - is_admin - is_super_admin - created_at - operator - disabled - folders - folders_owners UserUsage: type: object properties: email: type: string executions: type: number Login: type: object properties: email: type: string password: type: string required: - email - password EditWorkspaceUser: type: object properties: is_admin: type: boolean operator: type: boolean disabled: type: boolean TruncatedToken: type: object properties: label: type: string expiration: type: string format: date-time token_prefix: type: string created_at: type: string format: date-time last_used_at: type: string format: date-time scopes: type: array items: type: string email: type: string required: - token_prefix - created_at - last_used_at NewToken: type: object properties: label: type: string expiration: type: string format: date-time scopes: type: array items: type: string workspace_id: type: string NewTokenImpersonate: type: object properties: label: type: string expiration: type: string format: date-time impersonate_email: type: string workspace_id: type: string required: - impersonate_email ListableVariable: type: object properties: workspace_id: type: string path: type: string value: type: string is_secret: type: boolean description: type: string account: type: integer is_oauth: type: boolean extra_perms: type: object additionalProperties: type: boolean is_expired: type: boolean refresh_error: type: string is_linked: type: boolean is_refreshed: type: boolean expires_at: type: string format: date-time required: - workspace_id - path - is_secret - extra_perms ContextualVariable: type: object properties: name: type: string value: type: string description: type: string is_custom: type: boolean required: - name - value - description - is_custom CreateVariable: type: object properties: path: type: string value: type: string is_secret: type: boolean description: type: string account: type: integer is_oauth: type: boolean expires_at: type: string format: date-time required: - path - value - is_secret - description EditVariable: type: object properties: path: type: string value: type: string is_secret: type: boolean description: type: string AuditLog: type: object properties: id: type: integer timestamp: type: string format: date-time username: type: string operation: type: string enum: - "jobs.run" - "jobs.run.script" - "jobs.run.preview" - "jobs.run.flow" - "jobs.run.flow_preview" - "jobs.run.script_hub" - "jobs.run.dependencies" - "jobs.run.identity" - "jobs.run.noop" - "jobs.flow_dependencies" - "jobs" - "jobs.cancel" - "jobs.force_cancel" - "jobs.disapproval" - "jobs.delete" - "account.delete" - "ai.request" - "resources.create" - "resources.update" - "resources.delete" - "resource_types.create" - "resource_types.update" - "resource_types.delete" - "schedule.create" - "schedule.setenabled" - "schedule.edit" - "schedule.delete" - "scripts.create" - "scripts.update" - "scripts.archive" - "scripts.delete" - "users.create" - "users.delete" - "users.update" - "users.login" - "users.login_failure" - "users.logout" - "users.accept_invite" - "users.decline_invite" - "users.token.create" - "users.token.delete" - "users.add_to_workspace" - "users.add_global" - "users.setpassword" - "users.impersonate" - "users.leave_workspace" - "oauth.login" - "oauth.login_failure" - "oauth.signup" - "variables.create" - "variables.delete" - "variables.update" - "flows.create" - "flows.update" - "flows.delete" - "flows.archive" - "apps.create" - "apps.update" - "apps.delete" - "folder.create" - "folder.update" - "folder.delete" - "folder.add_owner" - "folder.remove_owner" - "group.create" - "group.delete" - "group.edit" - "group.adduser" - "group.removeuser" - "igroup.create" - "igroup.delete" - "igroup.adduser" - "igroup.removeuser" - "variables.decrypt_secret" - "workspaces.edit_command_script" - "workspaces.edit_deploy_to" - "workspaces.edit_auto_invite_domain" - "workspaces.edit_webhook" - "workspaces.edit_copilot_config" - "workspaces.edit_error_handler" - "workspaces.create" - "workspaces.update" - "workspaces.archive" - "workspaces.unarchive" - "workspaces.delete" action_kind: type: string enum: ["Created", "Updated", "Delete", "Execute"] resource: type: string parameters: type: object required: - id - timestamp - username - operation - action_kind 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 no_main_func: type: boolean nullable: true has_preprocessor: type: boolean nullable: true required: - star_args - start_kwargs - args - type - error - no_main_func - has_preprocessor ScriptLang: type: string enum: [ python3, deno, go, bash, powershell, postgresql, mysql, bigquery, snowflake, mssql, oracledb, graphql, nativets, bun, php, rust, ansible, csharp, nu, java, duckdb # for related places search: ADD_NEW_LANG ] Preview: type: object properties: content: type: string path: type: string script_hash: type: string args: $ref: "#/components/schemas/ScriptArgs" language: $ref: "#/components/schemas/ScriptLang" tag: type: string kind: type: string enum: [code, identity, http] dedicated_worker: type: boolean lock: type: string required: - args WorkflowTask: type: object properties: args: $ref: "#/components/schemas/ScriptArgs" required: - args WorkflowStatusRecord: type: object additionalProperties: $ref: "#/components/schemas/WorkflowStatus" WorkflowStatus: type: object properties: scheduled_for: type: string format: date-time started_at: type: string format: date-time duration_ms: type: number name: type: string CreateResource: type: object properties: path: type: string value: {} description: type: string resource_type: type: string required: - path - value - resource_type EditResource: type: object properties: path: type: string description: type: string value: {} Resource: type: object properties: workspace_id: type: string path: type: string description: type: string resource_type: type: string value: {} is_oauth: type: boolean extra_perms: type: object additionalProperties: type: boolean created_by: type: string edited_at: type: string format: date-time required: - path - resource_type - is_oauth ListableResource: type: object properties: workspace_id: type: string path: type: string description: type: string resource_type: type: string value: {} is_oauth: type: boolean extra_perms: type: object additionalProperties: type: boolean is_expired: type: boolean refresh_error: type: string is_linked: type: boolean is_refreshed: type: boolean account: type: number created_by: type: string edited_at: type: string format: date-time required: - path - resource_type - is_oauth - is_linked - is_refreshed ResourceType: type: object properties: workspace_id: type: string name: type: string schema: {} description: type: string created_by: type: string edited_at: type: string format: date-time format_extension: type: string required: - name EditResourceType: type: object properties: schema: {} description: type: string Schedule: type: object properties: 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: $ref: "#/components/schemas/ScriptArgs" extra_perms: type: object additionalProperties: type: boolean email: type: string error: type: string on_failure: # a reference to a script path, flow path, or webhook (script/, flow/) type: string on_failure_times: type: number on_failure_exact: type: boolean on_failure_extra_args: $ref: "#/components/schemas/ScriptArgs" on_recovery: type: string on_recovery_times: type: number on_recovery_extra_args: $ref: "#/components/schemas/ScriptArgs" on_success: type: string on_success_extra_args: $ref: "#/components/schemas/ScriptArgs" ws_error_handler_muted: type: boolean retry: $ref: "../../openflow.openapi.yaml#/components/schemas/Retry" summary: type: string description: type: string no_flow_overlap: type: boolean tag: type: string paused_until: type: string format: date-time cron_version: type: string required: - path - edited_by - edited_at - schedule - script_path - timezone - extra_perms - is_flow - enabled - email ScheduleWJobs: allOf: - $ref: "#/components/schemas/Schedule" - 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 NewSchedule: type: object properties: path: type: string schedule: type: string timezone: type: string script_path: type: string is_flow: type: boolean args: $ref: "#/components/schemas/ScriptArgs" enabled: type: boolean on_failure: # a reference to a script path, flow path, or webhook (script/, flow/) type: string on_failure_times: type: number on_failure_exact: type: boolean on_failure_extra_args: $ref: "#/components/schemas/ScriptArgs" on_recovery: type: string on_recovery_times: type: number on_recovery_extra_args: $ref: "#/components/schemas/ScriptArgs" on_success: type: string on_success_extra_args: $ref: "#/components/schemas/ScriptArgs" ws_error_handler_muted: type: boolean retry: $ref: "../../openflow.openapi.yaml#/components/schemas/Retry" no_flow_overlap: type: boolean summary: type: string description: type: string tag: type: string paused_until: type: string format: date-time cron_version: type: string required: - path - schedule - timezone - script_path - is_flow - args EditSchedule: type: object properties: schedule: type: string timezone: type: string args: $ref: "#/components/schemas/ScriptArgs" on_failure: # a reference to a script path, flow path, or webhook (script/, flow/) type: string on_failure_times: type: number on_failure_exact: type: boolean on_failure_extra_args: $ref: "#/components/schemas/ScriptArgs" on_recovery: type: string on_recovery_times: type: number on_recovery_extra_args: $ref: "#/components/schemas/ScriptArgs" on_success: type: string on_success_extra_args: $ref: "#/components/schemas/ScriptArgs" ws_error_handler_muted: type: boolean retry: $ref: "../../openflow.openapi.yaml#/components/schemas/Retry" no_flow_overlap: type: boolean summary: type: string description: type: string tag: type: string paused_until: type: string format: date-time cron_version: type: string required: - schedule - timezone - script_path - is_flow - args TriggerExtraProperty: type: object properties: path: type: string script_path: type: string email: type: string extra_perms: type: object additionalProperties: type: boolean workspace_id: type: string edited_by: type: string edited_at: type: string format: date-time is_flow: type: boolean required: - path - script_path - email - extra_perms - workspace_id - edited_by - edited_at - is_flow AuthenticationMethod: type: string enum: - none - windmill - api_key - basic_http - custom_script - signature RunnableKind: type: string enum: - script - flow OpenapiSpecFormat: type: string enum: - yaml - json OpenapiHttpRouteFilters: type: object properties: folder_regex: type: string path_regex: type: string route_path_regex: type: string required: - folder_regex - path_regex - route_path_regex WebhookFilters: type: object properties: user_or_folder_regex: type: string enum: - "*" - u - f user_or_folder_regex_value: type: string path: type: string runnable_kind: $ref: "#/components/schemas/RunnableKind" required: - user_or_folder_regex - user_or_folder_regex_value - path - runnable_kind OpenapiV3Info: type: object properties: title: type: string version: type: string description: type: string terms_of_service: type: string contact: type: object properties: name: type: string url: type: string email: type: string license: type: object properties: name: type: string identifier: type: string url: type: string required: - name required: - title - version GenerateOpenapiSpec: type: object properties: info: $ref: "#/components/schemas/OpenapiV3Info" url: type: string openapi_spec_format: $ref: "#/components/schemas/OpenapiSpecFormat" http_route_filters: type: array items: $ref: "#/components/schemas/OpenapiHttpRouteFilters" webhook_filters: type: array items: $ref: "#/components/schemas/WebhookFilters" HttpMethod: type: string enum: - get - post - put - delete - patch HttpTrigger: allOf: - $ref: "#/components/schemas/TriggerExtraProperty" type: object properties: route_path: type: string static_asset_config: type: object properties: s3: type: string storage: type: string filename: type: string required: - s3 http_method: $ref: "#/components/schemas/HttpMethod" authentication_resource_path: type: string summary: type: string description: type: string is_async: type: boolean authentication_method: $ref: "#/components/schemas/AuthenticationMethod" is_static_website: type: boolean workspaced_route: type: boolean wrap_body: type: boolean raw_string: type: boolean required: - route_path - is_async - authentication_method - http_method - is_static_website - workspaced_route - wrap_body - raw_string NewHttpTrigger: type: object properties: path: type: string script_path: type: string route_path: type: string workspaced_route: type: boolean summary: type: string description: type: string static_asset_config: type: object properties: s3: type: string storage: type: string filename: type: string required: - s3 is_flow: type: boolean http_method: $ref: "#/components/schemas/HttpMethod" authentication_resource_path: type: string is_async: type: boolean authentication_method: $ref: "#/components/schemas/AuthenticationMethod" is_static_website: type: boolean wrap_body: type: boolean raw_string: type: boolean required: - path - script_path - route_path - is_flow - is_async - authentication_method - http_method - is_static_website EditHttpTrigger: type: object properties: path: type: string script_path: type: string route_path: type: string summary: type: string description: type: string workspaced_route: type: boolean static_asset_config: type: object properties: s3: type: string storage: type: string filename: type: string required: - s3 authentication_resource_path: type: string is_flow: type: boolean http_method: $ref: "#/components/schemas/HttpMethod" is_async: type: boolean authentication_method: $ref: "#/components/schemas/AuthenticationMethod" is_static_website: type: boolean wrap_body: type: boolean raw_string: type: boolean required: - path - script_path - is_flow - kind - is_async - authentication_method - http_method - is_static_website TriggersCount: type: object properties: primary_schedule: type: object properties: schedule: type: string schedule_count: type: number http_routes_count: type: number webhook_count: type: number email_count: type: number websocket_count: type: number postgres_count: type: number kafka_count: type: number nats_count: type: number mqtt_count: type: number gcp_count: type: number sqs_count: type: number WebsocketTrigger: allOf: - $ref: "#/components/schemas/TriggerExtraProperty" type: object properties: url: type: string server_id: type: string last_server_ping: type: string format: date-time error: type: string enabled: type: boolean filters: type: array items: type: object properties: key: type: string value: {} required: - key - value initial_messages: type: array items: $ref: "#/components/schemas/WebsocketTriggerInitialMessage" url_runnable_args: $ref: "#/components/schemas/ScriptArgs" can_return_message: type: boolean required: - url - enabled - filters - can_return_message NewWebsocketTrigger: type: object properties: path: type: string script_path: type: string is_flow: type: boolean url: type: string enabled: type: boolean filters: type: array items: type: object properties: key: type: string value: {} required: - key - value initial_messages: type: array items: $ref: "#/components/schemas/WebsocketTriggerInitialMessage" url_runnable_args: $ref: "#/components/schemas/ScriptArgs" can_return_message: type: boolean required: - path - script_path - url - is_flow - filters - can_return_message EditWebsocketTrigger: type: object properties: url: type: string path: type: string script_path: type: string is_flow: type: boolean filters: type: array items: type: object properties: key: type: string value: {} required: - key - value initial_messages: type: array items: $ref: "#/components/schemas/WebsocketTriggerInitialMessage" url_runnable_args: $ref: "#/components/schemas/ScriptArgs" can_return_message: type: boolean required: - path - script_path - url - is_flow - filters - can_return_message WebsocketTriggerInitialMessage: anyOf: - type: object properties: raw_message: type: string required: - raw_message - type: object properties: runnable_result: type: object properties: path: type: string args: $ref: "#/components/schemas/ScriptArgs" is_flow: type: boolean required: - path - args - is_flow required: - runnable_result MqttQoS: type: string enum: ["qos0", "qos1", "qos2"] MqttV3Config: type: object properties: clean_session: type: boolean MqttV5Config: type: object properties: clean_start: type: boolean topic_alias: type: number session_expiry_interval: type: number MqttSubscribeTopic: type: object properties: qos: $ref: "#/components/schemas/MqttQoS" topic: type: string required: - qos - topic MqttClientVersion: type: string enum: ["v3", "v5"] MqttTrigger: allOf: - $ref: "#/components/schemas/TriggerExtraProperty" type: object properties: mqtt_resource_path: type: string subscribe_topics: type: array items: $ref: "#/components/schemas/MqttSubscribeTopic" v3_config: $ref: "#/components/schemas/MqttV3Config" v5_config: $ref: "#/components/schemas/MqttV5Config" client_id: type: string client_version: $ref: "#/components/schemas/MqttClientVersion" server_id: type: string last_server_ping: type: string format: date-time error: type: string enabled: type: boolean required: - enabled - subscribe_topics - mqtt_resource_path NewMqttTrigger: type: object properties: mqtt_resource_path: type: string subscribe_topics: type: array items: $ref: "#/components/schemas/MqttSubscribeTopic" client_id: type: string v3_config: $ref: "#/components/schemas/MqttV3Config" v5_config: $ref: "#/components/schemas/MqttV5Config" client_version: $ref: "#/components/schemas/MqttClientVersion" path: type: string script_path: type: string is_flow: type: boolean enabled: type: boolean required: - path - script_path - is_flow - subscribe_topics - mqtt_resource_path EditMqttTrigger: type: object properties: mqtt_resource_path: type: string subscribe_topics: type: array items: $ref: "#/components/schemas/MqttSubscribeTopic" client_id: type: string v3_config: $ref: "#/components/schemas/MqttV3Config" v5_config: $ref: "#/components/schemas/MqttV5Config" client_version: $ref: "#/components/schemas/MqttClientVersion" path: type: string script_path: type: string is_flow: type: boolean enabled: type: boolean required: - path - script_path - is_flow - enabled - subscribe_topics - mqtt_resource_path DeliveryType: type: string enum: - push - pull PushConfig: type: object properties: audience: type: string authenticate: type: boolean required: - authenticate - base_endpoint GcpTrigger: allOf: - $ref: "#/components/schemas/TriggerExtraProperty" type: object properties: gcp_resource_path: type: string topic_id: type: string subscription_id: type: string server_id: type: string delivery_type: $ref: "#/components/schemas/DeliveryType" delivery_config: $ref: "#/components/schemas/PushConfig" subscription_mode: $ref: "#/components/schemas/SubscriptionMode" last_server_ping: type: string format: date-time error: type: string enabled: type: boolean required: - gcp_resource_path - topic_id - subscription_id - enabled - delivery_type - subscription_mode SubscriptionMode: type: string enum: - existing - create_update description: "The mode of subscription. 'existing' means using an existing GCP subscription, while 'create_update' involves creating or updating a new subscription." GcpTriggerData: type: object properties: gcp_resource_path: type: string subscription_mode: $ref: "#/components/schemas/SubscriptionMode" topic_id: type: string subscription_id: type: string base_endpoint: type: string delivery_type: $ref: "#/components/schemas/DeliveryType" delivery_config: $ref: "#/components/schemas/PushConfig" path: type: string script_path: type: string is_flow: type: boolean enabled: type: boolean required: - path - script_path - is_flow - gcp_resource_path - topic_id - subscription_mode GetAllTopicSubscription: type: object properties: topic_id: type: string required: - topic_id DeleteGcpSubscription: type: object properties: subscription_id: type: string required: - subscription_id AwsAuthResourceType: type: string enum: - oidc - credentials SqsTrigger: allOf: - $ref: "#/components/schemas/TriggerExtraProperty" type: object properties: queue_url: type: string aws_auth_resource_type: $ref: "#/components/schemas/AwsAuthResourceType" aws_resource_path: type: string message_attributes: type: array items: type: string server_id: type: string last_server_ping: type: string format: date-time error: type: string enabled: type: boolean required: - queue_url - aws_resource_path - enabled - aws_auth_resource_type NewSqsTrigger: type: object properties: queue_url: type: string aws_auth_resource_type: $ref: "#/components/schemas/AwsAuthResourceType" aws_resource_path: type: string message_attributes: type: array items: type: string path: type: string script_path: type: string is_flow: type: boolean enabled: type: boolean required: - queue_url - aws_resource_path - path - script_path - is_flow - aws_auth_resource_type EditSqsTrigger: type: object properties: queue_url: type: string aws_auth_resource_type: $ref: "#/components/schemas/AwsAuthResourceType" aws_resource_path: type: string message_attributes: type: array items: type: string path: type: string script_path: type: string is_flow: type: boolean enabled: type: boolean required: - queue_url - aws_resource_path - path - script_path - is_flow - enabled - aws_auth_resource_type Slot: type: object properties: name: type: string SlotList: type: object properties: slot_name: type: string active: type: boolean PublicationData: type: object properties: table_to_track: type: array items: $ref: "#/components/schemas/Relations" transaction_to_track: type: array items: type: string required: - transaction_to_track TableToTrack: type: array items: type: object properties: table_name: type: string columns_name: type: array items: type: string where_clause: type: string required: - table_name Relations: type: object properties: schema_name: type: string table_to_track: $ref: "#/components/schemas/TableToTrack" required: - schema_name - table_to_track Language: type: string enum: - Typescript TemplateScript: type: object properties: postgres_resource_path: type: string relations: type: array items: $ref: "#/components/schemas/Relations" language: $ref: "#/components/schemas/Language" required: - postgres_resource_path - relations - language PostgresTrigger: allOf: - $ref: "#/components/schemas/TriggerExtraProperty" type: object properties: enabled: type: boolean postgres_resource_path: type: string publication_name: type: string server_id: type: string replication_slot_name: type: string error: type: string last_server_ping: type: string format: date-time required: - enabled - postgres_resource_path - replication_slot_name - publication_name NewPostgresTrigger: type: object properties: replication_slot_name: type: string publication_name: type: string path: type: string script_path: type: string is_flow: type: boolean enabled: type: boolean postgres_resource_path: type: string publication: $ref: "#/components/schemas/PublicationData" required: - path - script_path - is_flow - enabled - postgres_resource_path EditPostgresTrigger: type: object properties: replication_slot_name: type: string publication_name: type: string path: type: string script_path: type: string is_flow: type: boolean enabled: type: boolean postgres_resource_path: type: string publication: $ref: "#/components/schemas/PublicationData" required: - path - script_path - is_flow - enabled - postgres_resource_path - publication_name - replication_slot_name KafkaTrigger: allOf: - $ref: "#/components/schemas/TriggerExtraProperty" type: object properties: kafka_resource_path: type: string group_id: type: string topics: type: array items: type: string server_id: type: string last_server_ping: type: string format: date-time error: type: string enabled: type: boolean required: - kafka_resource_path - group_id - topics - enabled NewKafkaTrigger: type: object properties: path: type: string script_path: type: string is_flow: type: boolean kafka_resource_path: type: string group_id: type: string topics: type: array items: type: string enabled: type: boolean required: - path - script_path - is_flow - kafka_resource_path - group_id - topics EditKafkaTrigger: type: object properties: kafka_resource_path: type: string group_id: type: string topics: type: array items: type: string path: type: string script_path: type: string is_flow: type: boolean required: - path - script_path - kafka_resource_path - group_id - topics - is_flow NatsTrigger: allOf: - $ref: "#/components/schemas/TriggerExtraProperty" type: object properties: nats_resource_path: type: string use_jetstream: type: boolean stream_name: type: string consumer_name: type: string subjects: type: array items: type: string server_id: type: string last_server_ping: type: string format: date-time error: type: string enabled: type: boolean required: - nats_resource_path - use_jetstream - subjects - enabled NewNatsTrigger: type: object properties: path: type: string script_path: type: string is_flow: type: boolean nats_resource_path: type: string use_jetstream: type: boolean stream_name: type: string consumer_name: type: string subjects: type: array items: type: string enabled: type: boolean required: - path - script_path - is_flow - nats_resource_path - use_jetstream - subjects EditNatsTrigger: type: object properties: nats_resource_path: type: string use_jetstream: type: boolean stream_name: type: string consumer_name: type: string subjects: type: array items: type: string path: type: string script_path: type: string is_flow: type: boolean required: - path - script_path - nats_resource_path - use_jetstream - subjects - is_flow Group: type: object properties: name: type: string summary: type: string members: type: array items: type: string extra_perms: type: object additionalProperties: type: boolean required: - name InstanceGroup: type: object properties: name: type: string summary: type: string emails: type: array items: type: string required: - name Folder: type: object properties: name: type: string owners: type: array items: type: string extra_perms: type: object additionalProperties: type: boolean summary: type: string created_by: type: string edited_at: type: string format: date-time required: - name - owners - extra_perms WorkerPing: type: object properties: worker: type: string worker_instance: type: string last_ping: type: number started_at: type: string format: date-time ip: type: string jobs_executed: type: integer custom_tags: type: array items: type: string worker_group: type: string wm_version: type: string last_job_id: type: string last_job_workspace_id: type: string occupancy_rate: type: number occupancy_rate_15s: type: number occupancy_rate_5m: type: number occupancy_rate_30m: type: number memory: type: number vcpus: type: number memory_usage: type: number wm_memory_usage: type: number required: - worker - worker_instance - ping_at - started_at - ip - jobs_executed - worker_group - wm_version UserWorkspaceList: type: object properties: email: type: string workspaces: type: array items: type: object properties: id: type: string name: type: string username: type: string color: type: string operator_settings: $ref: "#/components/schemas/OperatorSettings" required: - id - name - username - color required: - email - workspaces CreateWorkspace: type: object properties: id: type: string name: type: string username: type: string color: type: string required: - id - name Workspace: type: object properties: id: type: string name: type: string owner: type: string domain: type: string color: type: string required: - id - name - owner WorkspaceInvite: type: object properties: workspace_id: type: string email: type: string is_admin: type: boolean operator: type: boolean required: - workspace_id - email - is_admin - operator GlobalUserInfo: type: object properties: email: type: string login_type: type: string enum: ["password", "github"] super_admin: type: boolean devops: type: boolean verified: type: boolean name: type: string company: type: string username: type: string operator_only: type: boolean required: - email - login_type - super_admin - verified Flow: allOf: - $ref: "../../openflow.openapi.yaml#/components/schemas/OpenFlow" - $ref: "#/components/schemas/FlowMetadata" - type: object properties: lock_error_logs: type: string ExtraPerms: type: object additionalProperties: type: boolean FlowMetadata: type: object properties: workspace_id: type: string path: type: string edited_by: type: string edited_at: type: string format: date-time archived: type: boolean extra_perms: $ref: "#/components/schemas/ExtraPerms" starred: type: boolean draft_only: type: boolean tag: type: string ws_error_handler_muted: type: boolean priority: type: integer dedicated_worker: type: boolean timeout: type: number visible_to_runner_only: type: boolean on_behalf_of_email: type: string required: - path - edited_by - edited_at - archived - extra_perms OpenFlowWPath: allOf: - $ref: "../../openflow.openapi.yaml#/components/schemas/OpenFlow" - type: object properties: path: type: string tag: type: string ws_error_handler_muted: type: boolean priority: type: integer dedicated_worker: type: boolean timeout: type: number visible_to_runner_only: type: boolean on_behalf_of_email: type: string required: - path FlowPreview: type: object properties: value: $ref: "../../openflow.openapi.yaml#/components/schemas/FlowValue" path: type: string args: $ref: "#/components/schemas/ScriptArgs" tag: type: string restarted_from: $ref: "#/components/schemas/RestartedFrom" required: - value - content - args RestartedFrom: type: object properties: flow_job_id: type: string format: uuid step_id: type: string branch_or_iteration_n: type: integer Policy: type: object properties: triggerables: type: object additionalProperties: type: object triggerables_v2: type: object additionalProperties: type: object s3_inputs: type: array items: type: object allowed_s3_keys: type: array items: type: object properties: s3_path: type: string resource: type: string execution_mode: type: string enum: [viewer, publisher, anonymous] on_behalf_of: type: string on_behalf_of_email: type: string ListableApp: type: object properties: id: type: integer workspace_id: type: string path: type: string summary: type: string version: type: integer extra_perms: type: object additionalProperties: type: boolean starred: type: boolean edited_at: type: string format: date-time execution_mode: type: string enum: [viewer, publisher, anonymous] raw_app: type: boolean required: - id - workspace_id - path - summary - version - extra_perms - edited_at - execution_mode ListableRawApp: type: object properties: 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: - workspace_id - path - summary - extra_perms - version - edited_at AppWithLastVersion: type: object properties: id: type: integer workspace_id: type: string path: type: string summary: type: string versions: type: array items: type: integer created_by: type: string created_at: type: string format: date-time value: type: object policy: $ref: "#/components/schemas/Policy" execution_mode: type: string enum: [viewer, publisher, anonymous] extra_perms: type: object additionalProperties: type: boolean custom_path: type: string required: - id - workspace_id - path - summary - versions - created_by - created_at - value - policy - execution_mode - extra_perms AppWithLastVersionWDraft: allOf: - $ref: "#/components/schemas/AppWithLastVersion" - type: object properties: draft_only: type: boolean draft: {} AppHistory: type: object properties: version: type: integer deployment_msg: type: string required: - version FlowVersion: type: object properties: id: type: integer created_at: type: string format: date-time deployment_msg: type: string required: - id - created_at 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: access_token: type: string expires_in: type: integer refresh_token: type: string scope: type: array items: type: string required: - access_token HubScriptKind: type: string enum: [script, failure, trigger, approval] PolarsClientKwargs: type: object properties: region_name: type: string required: - region_name LargeFileStorage: type: object properties: type: type: string enum: ["S3Storage", "AzureBlobStorage", "AzureWorkloadIdentity", "S3AwsOidc"] s3_resource_path: type: string azure_blob_resource_path: type: string public_resource: type: boolean secondary_storage: type: object additionalProperties: type: object properties: type: type: string enum: ["S3Storage", "AzureBlobStorage", "AzureWorkloadIdentity", "S3AwsOidc"] s3_resource_path: type: string azure_blob_resource_path: type: string public_resource: type: boolean WindmillLargeFile: type: object properties: s3: type: string required: - s3 WindmillFileMetadata: type: object properties: 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 WindmillFilePreview: type: object properties: msg: type: string content: type: string content_type: type: string enum: ["RawText", "Csv", "Parquet", "Unknown"] required: - content_type S3Resource: type: object properties: bucket: type: string region: type: string endPoint: type: string useSSL: type: boolean accessKey: type: string secretKey: type: string pathStyle: type: boolean required: - bucket - region - endPoint - useSSL - pathStyle WorkspaceGitSyncSettings: type: object properties: include_path: type: array items: type: string include_type: type: array items: type: string enum: - script - flow - app - folder - resource - variable - secret - resourcetype - schedule - user - group - trigger repositories: type: array items: $ref: "#/components/schemas/GitRepositorySettings" WorkspaceDeployUISettings: type: object properties: include_path: type: array items: type: string include_type: type: array items: type: string enum: - script - flow - app - resource - variable - secret - trigger WorkspaceDefaultScripts: type: object properties: order: type: array items: type: string hidden: type: array items: type: string default_script_content: additionalProperties: type: string GitRepositorySettings: type: object properties: script_path: type: string git_repo_resource_path: type: string use_individual_branch: type: boolean group_by_folder: type: boolean exclude_types_override: type: array items: type: string enum: - script - flow - app - folder - resource - variable - secret - resourcetype - schedule - user - group - trigger required: - script_path - git_repo_resource_path UploadFilePart: type: object properties: part_number: type: integer tag: type: string required: - part_number - tag MetricMetadata: type: object properties: id: type: string name: type: string required: - id ScalarMetric: type: object properties: metric_id: type: string value: type: number required: - id - value TimeseriesMetric: type: object properties: metric_id: type: string values: type: array items: $ref: "#/components/schemas/MetricDataPoint" required: - id - values MetricDataPoint: type: object properties: timestamp: type: string format: date-time value: type: number required: - timestamp - value RawScriptForDependencies: type: object properties: raw_code: type: string path: type: string language: $ref: "#/components/schemas/ScriptLang" required: - raw_code - path - language ConcurrencyGroup: type: object properties: concurrency_key: type: string total_running: type: number required: - concurrency_key - total_running ExtendedJobs: type: object properties: jobs: type: array items: $ref: "#/components/schemas/Job" obscured_jobs: type: array items: $ref: "#/components/schemas/ObscuredJob" omitted_obscured_jobs: description: "Obscured jobs omitted for security because of too specific filtering" type: boolean required: - jobs - obscured_jobs ExportedUser: type: object properties: email: type: string password_hash: type: string super_admin: type: boolean verified: type: boolean name: type: string company: type: string first_time_user: type: boolean username: type: string required: - email - super_admin - verified - first_time_user GlobalSetting: type: object properties: name: type: string value: type: object required: - name - value Config: type: object properties: name: type: string config: type: object required: - name ExportedInstanceGroup: type: object properties: name: type: string summary: type: string emails: type: array items: type: string id: type: string scim_display_name: type: string external_id: type: string required: - name JobSearchHit: type: object properties: dancer: type: string LogSearchHit: type: object properties: dancer: type: string AutoscalingEvent: type: object properties: id: type: integer format: int64 worker_group: type: string event_type: type: string desired_workers: type: integer reason: type: string applied_at: type: string format: date-time CriticalAlert: type: object properties: id: type: integer description: Unique identifier for the alert alert_type: type: string description: Type of alert (e.g., critical_error) message: type: string description: The message content of the alert created_at: type: string format: date-time description: Time when the alert was created acknowledged: type: boolean nullable: true description: Acknowledgment status of the alert, can be true, false, or null if not set workspace_id: type: string nullable: true description: Workspace id if the alert is in the scope of a workspace CaptureTriggerKind: type: string enum: [webhook, http, websocket, kafka, email, nats, postgres, sqs, mqtt, gcp] Capture: type: object properties: trigger_kind: $ref: "#/components/schemas/CaptureTriggerKind" main_args: {} preprocessor_args: {} id: type: integer created_at: type: string format: date-time required: - trigger_kind - main_args - preprocessor_args - id - created_at CaptureConfig: type: object properties: trigger_config: {} trigger_kind: $ref: "#/components/schemas/CaptureTriggerKind" error: type: string last_server_ping: type: string format: date-time required: - trigger_kind OperatorSettings: nullable: true type: object required: - runs - schedules - resources - variables - triggers - audit_logs - groups - folders - workers properties: runs: type: boolean description: Whether operators can view runs schedules: type: boolean description: Whether operators can view schedules resources: type: boolean description: Whether operators can view resources variables: type: boolean description: Whether operators can view variables audit_logs: type: boolean description: Whether operators can view audit logs triggers: type: boolean description: Whether operators can view triggers groups: type: boolean description: Whether operators can view groups page folders: type: boolean description: Whether operators can view folders page workers: type: boolean description: Whether operators can view workers page TeamInfo: type: object required: - team_id - team_name - channels properties: team_id: type: string description: The unique identifier of the Microsoft Teams team example: "19:abc123def456@thread.tacv2" team_name: type: string description: The display name of the Microsoft Teams team example: "Engineering Team" channels: type: array description: List of channels within the team items: $ref: "#/components/schemas/ChannelInfo" ChannelInfo: type: object required: - channel_id - channel_name - tenant_id - service_url properties: channel_id: type: string description: The unique identifier of the channel example: "19:channel123@thread.tacv2" channel_name: type: string description: The display name of the channel example: "General" tenant_id: type: string description: The Microsoft Teams tenant identifier example: "12345678-1234-1234-1234-123456789012" service_url: type: string description: The service URL for the channel example: "https://smba.trafficmanager.net/amer/12345678-1234-1234-1234-123456789012/" GithubInstallations: type: array items: type: object properties: workspace_id: type: string installation_id: type: number account_id: type: string repositories: type: array items: type: object properties: name: type: string url: type: string required: - name - url required: - installation_id - account_id - repositories WorkspaceGithubInstallation: type: object properties: account_id: type: string installation_id: type: number required: - account_id - installation_id S3Object: type: object properties: s3: type: string filename: type: string storage: type: string presigned: type: string required: - s3 TeamsChannel: type: object required: - team_id - team_name - channel_id - channel_name properties: team_id: type: string description: Microsoft Teams team ID minLength: 1 team_name: type: string description: Microsoft Teams team name minLength: 1 channel_id: type: string description: Microsoft Teams channel ID minLength: 1 channel_name: type: string description: Microsoft Teams channel name minLength: 1