openapi: 3.0.3 info: version: 1.201.0 title: Windmill API contact: name: Windmill Team email: contact@windmill.dev url: https://windmill.dev license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html x-logo: url: https://windmill.dev/img/windmill.svg externalDocs: description: documentation portal url: https://windmill.dev servers: - url: /api security: - bearerAuth: [] - cookieAuth: [] paths: /version: get: summary: get backend version operationId: backendVersion tags: - settings responses: '200': description: git version of backend content: text/plain: schema: type: string /uptodate: get: summary: is backend up to date operationId: backendUptodate tags: - settings responses: '200': description: is backend up to date content: text/plain: schema: type: string /ee_license: get: summary: get license id operationId: getLicenseId tags: - settings responses: '200': description: get license id (empty if not ee) content: text/plain: schema: type: string /openapi.yaml: get: summary: get openapi yaml spec operationId: getOpenApiYaml tags: - settings responses: '200': description: openapi yaml file content content: text/plain: schema: type: string /w/{workspace}/audit/get/{id}: get: summary: get audit log (requires admin privilege) operationId: getAuditLog tags: - audit parameters: - name: workspace in: path required: true schema: &ref_0 type: string - name: id in: path required: true schema: &ref_22 type: integer responses: '200': description: an audit log content: application/json: schema: type: object properties: &ref_1 id: type: integer timestamp: type: string format: date-time username: type: string operation: type: string enum: - jobs.run - jobs.run.script - jobs.run.preview - jobs.run.flow - jobs.run.flow_preview - jobs.run.script_hub - jobs.run.dependencies - jobs.run.identity - jobs.run.noop - jobs.flow_dependencies - jobs - jobs.cancel - jobs.force_cancel - jobs.disapproval - jobs.delete - account.delete - openai.request - resources.create - resources.update - resources.delete - resource_types.create - resource_types.update - resource_types.delete - schedule.create - schedule.setenabled - schedule.edit - schedule.delete - scripts.create - scripts.update - scripts.archive - scripts.delete - users.create - users.delete - users.update - users.login - users.logout - users.accept_invite - users.decline_invite - users.token.create - users.token.delete - users.add_to_workspace - users.add_global - users.setpassword - users.impersonate - users.leave_workspace - oauth.login - oauth.signup - variables.create - variables.delete - variables.update - flows.create - flows.update - flows.delete - flows.archive - apps.create - apps.update - apps.delete - folder.create - folder.update - folder.delete - folder.add_owner - folder.remove_owner - group.create - group.delete - group.edit - group.adduser - group.removeuser - igroup.create - igroup.delete - igroup.adduser - igroup.removeuser - variables.decrypt_secret - workspaces.edit_command_script - workspaces.edit_deploy_to - workspaces.edit_auto_invite_domain - workspaces.edit_webhook - workspaces.edit_copilot_config - workspaces.edit_error_handler - workspaces.create - workspaces.update - workspaces.archive - workspaces.unarchive - workspaces.delete action_kind: type: string enum: - Created - Updated - Delete - Execute resource: type: string parameters: type: object required: &ref_2 - id - timestamp - username - operation - action_kind /w/{workspace}/audit/list: get: summary: list audit logs (requires admin privilege) operationId: listAuditLogs tags: - audit parameters: - name: workspace in: path required: true schema: *ref_0 - name: page description: which page to return (start at 1, default 1) in: query schema: &ref_3 type: integer - name: per_page description: number of items to return for a given page (default 30, max 100) in: query schema: &ref_4 type: integer - name: before description: filter on created before (exclusive) timestamp in: query schema: &ref_92 type: string format: date-time - name: after description: filter on created after (exclusive) timestamp in: query schema: &ref_91 type: string format: date-time - name: username description: filter on exact username of user in: query schema: &ref_93 type: string - name: operation description: filter on exact or prefix name of operation in: query schema: &ref_94 type: string - name: resource description: filter on exact or prefix name of resource in: query schema: &ref_95 type: string - name: action_kind description: filter on type of operation in: query schema: &ref_96 type: string enum: - Create - Update - Delete - Execute responses: '200': description: a list of audit logs content: application/json: schema: type: array items: type: object properties: *ref_1 required: *ref_2 /auth/login: post: security: [] summary: login with password operationId: login tags: - user requestBody: description: credentials required: true content: application/json: schema: type: object properties: &ref_106 email: type: string password: type: string required: &ref_107 - email - password responses: '200': description: > Successfully authenticated. The session ID is returned in a cookie named `token` and as plaintext response. Preferred method of authorization is through the bearer token. The cookie is only for browser convenience. headers: Set-Cookie: schema: type: string example: token=abcde12345; Path=/; HttpOnly content: text/plain: schema: type: string /auth/logout: post: security: [] summary: logout operationId: logout tags: - user responses: '200': description: clear cookies and clear token (if applicable) headers: Set-Cookie: schema: type: string content: text/plain: schema: type: string /w/{workspace}/users/add: post: summary: create user (require admin privilege) operationId: createUser tags: - user - admin parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: new user required: true content: application/json: schema: type: object properties: &ref_108 email: type: string username: type: string is_admin: type: boolean required: &ref_109 - email - username - is_admin responses: '201': description: user created content: text/plain: schema: type: string /w/{workspace}/users/update/{username}: post: summary: update user (require admin privilege) operationId: updateUser tags: - user - admin parameters: - name: workspace in: path required: true schema: *ref_0 - name: username in: path required: true schema: type: string requestBody: description: new user required: true content: application/json: schema: type: object properties: &ref_110 is_admin: type: boolean operator: type: boolean disabled: type: boolean responses: '200': description: edited user content: text/plain: schema: type: string /w/{workspace}/users/is_owner/{path}: get: summary: is owner of path operationId: isOwnerOfPath tags: - user parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: &ref_15 type: string responses: '200': description: is owner content: application/json: schema: type: boolean /users/setpassword: post: summary: set password operationId: setPassword tags: - user requestBody: description: set password required: true content: application/json: schema: type: object properties: password: type: string required: - password responses: '200': description: password set content: text/plain: schema: type: string /users/create: post: summary: create user operationId: createUserGlobally tags: - user requestBody: description: user info required: true content: application/json: schema: type: object properties: email: type: string password: type: string super_admin: type: boolean name: type: string company: type: string required: - email - password - super_admin responses: '201': description: user created content: text/plain: schema: type: string /users/update/{email}: post: summary: global update user (require super admin) operationId: globalUserUpdate tags: - user parameters: - name: email in: path required: true schema: type: string requestBody: description: new user info required: true content: application/json: schema: type: object properties: is_super_admin: type: boolean responses: '200': description: user updated content: text/plain: schema: type: string /users/delete/{email}: delete: summary: global delete user (require super admin) operationId: globalUserDelete tags: - user parameters: - name: email in: path required: true schema: type: string responses: '200': description: user deleted content: text/plain: schema: type: string /w/{workspace}/users/delete/{username}: delete: summary: delete user (require admin privilege) operationId: deleteUser tags: - user - admin parameters: - name: workspace in: path required: true schema: *ref_0 - name: username in: path required: true schema: type: string responses: '200': description: delete user content: text/plain: schema: type: string /workspaces/list: get: summary: list all workspaces visible to me operationId: listWorkspaces tags: - workspace responses: '200': description: all workspaces content: application/json: schema: type: array items: type: object properties: &ref_5 id: type: string name: type: string owner: type: string domain: type: string required: &ref_6 - id - name - owner /workspaces/allowed_domain_auto_invite: get: summary: is domain allowed for auto invi operationId: isDomainAllowed tags: - workspace responses: '200': description: domain allowed or not content: application/json: schema: type: boolean /workspaces/users: get: summary: list all workspaces visible to me with user info operationId: listUserWorkspaces tags: - workspace responses: '200': description: workspace with associated username content: application/json: schema: type: object properties: &ref_138 email: type: string workspaces: type: array items: type: object properties: id: type: string name: type: string username: type: string required: - id - name - username required: &ref_139 - email - workspaces /workspaces/list_as_superadmin: get: summary: list all workspaces as super admin (require to be super admin) operationId: listWorkspacesAsSuperAdmin tags: - workspace parameters: - name: page description: which page to return (start at 1, default 1) in: query schema: *ref_3 - name: per_page description: number of items to return for a given page (default 30, max 100) in: query schema: *ref_4 responses: '200': description: workspaces content: application/json: schema: type: array items: type: object properties: *ref_5 required: *ref_6 /workspaces/create: post: summary: create workspace operationId: createWorkspace tags: - workspace requestBody: description: new token required: true content: application/json: schema: type: object properties: &ref_140 id: type: string name: type: string username: type: string required: &ref_141 - id - name - username responses: '201': description: token created content: text/plain: schema: type: string /workspaces/exists: post: summary: exists workspace operationId: existsWorkspace tags: - workspace requestBody: description: id of workspace required: true content: application/json: schema: type: object properties: id: type: string required: - id responses: '200': description: status content: text/plain: schema: type: boolean /workspaces/exists_username: post: summary: exists username operationId: existsUsername tags: - workspace requestBody: required: true content: application/json: schema: type: object properties: id: type: string username: type: string required: - id - username responses: '200': description: status content: text/plain: schema: type: boolean /settings/global/{key}: get: summary: get global settings operationId: getGlobal tags: - setting parameters: - name: key in: path required: true schema: &ref_7 type: string responses: '200': description: status content: application/json: schema: {} post: summary: post global settings operationId: setGlobal tags: - setting parameters: - name: key in: path required: true schema: *ref_7 requestBody: description: value set required: true content: application/json: schema: type: object properties: value: {} responses: '200': description: status content: text/plain: schema: type: string /settings/local: get: summary: get local settings operationId: getLocal tags: - setting responses: '200': description: status content: application/json: schema: {} /settings/test_smtp: post: summary: test smtp operationId: testSmtp tags: - setting requestBody: description: test smtp payload required: true content: application/json: schema: type: object properties: to: type: string smtp: type: object properties: host: type: string username: type: string password: type: string port: type: integer from: type: string tls_implicit: type: boolean required: - host - username - password - port - from - tls_implicit required: - to - smtp responses: '200': description: status content: 'text/plain:': schema: type: string /settings/test_license_key: post: summary: test license key operationId: testLicenseKey tags: - setting requestBody: description: test license key required: true content: application/json: schema: type: object properties: license_key: type: string required: - license_key responses: '200': description: status content: 'text/plain:': schema: type: string /settings/send_stats: post: summary: send stats operationId: sendStats tags: - setting responses: '200': description: status content: 'text/plain:': schema: type: string /users/email: get: summary: get current user email (if logged in) operationId: getCurrentEmail tags: - user responses: '200': description: user email content: text/plain: schema: type: string /users/refresh_token: get: summary: refresh the current token operationId: refreshUserToken tags: - user responses: '200': description: free usage content: text/plain: schema: type: string /users/tutorial_progress: get: summary: get tutorial progress operationId: getTutorialProgress tags: - user responses: '200': description: tutorial progress content: application/json: schema: type: object properties: progress: type: integer post: summary: update tutorial progress operationId: updateTutorialProgress tags: - user requestBody: description: progress update required: true content: application/json: schema: type: object properties: progress: type: integer responses: '200': description: tutorial progress content: text/plain: schema: type: string /users/usage: get: summary: get current usage outside of premium workspaces operationId: getUsage tags: - user responses: '200': description: free usage content: text/plain: schema: type: number /users/all_runnables: get: summary: get all runnables in every workspace operationId: getRunnable tags: - user responses: '200': description: free all runnables content: application/json: schema: type: object properties: workspace: type: string endpoint_async: type: string endpoint_sync: type: string endpoint_openai_sync: type: string summary: type: string description: type: string kind: type: string required: - workspace - endpoint_async - endpoint_sync - endpoint_openai_sync - summary - kind /users/whoami: get: summary: get current global whoami (if logged in) operationId: globalWhoami tags: - user responses: '200': description: user email content: application/json: schema: type: object properties: &ref_10 email: type: string login_type: type: string enum: - password - github super_admin: type: boolean verified: type: boolean name: type: string company: type: string required: &ref_11 - email - login_type - super_admin - verified /users/list_invites: get: summary: list all workspace invites operationId: listWorkspaceInvites tags: - user responses: '200': description: list all workspace invites content: application/json: schema: type: array items: type: object properties: &ref_12 workspace_id: type: string email: type: string is_admin: type: boolean operator: type: boolean required: &ref_13 - workspace_id - email - is_admin - operator /w/{workspace}/users/whoami: get: summary: whoami operationId: whoami tags: - user parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: user content: application/json: schema: type: object properties: &ref_8 email: type: string username: type: string is_admin: type: boolean is_super_admin: type: boolean created_at: type: string format: date-time operator: type: boolean disabled: type: boolean groups: type: array items: type: string folders: type: array items: type: string folders_owners: type: array items: type: string usage: type: object properties: &ref_105 executions: type: number required: &ref_9 - email - username - is_admin - is_super_admin - created_at - operator - disabled - folders - folders_owners /w/{workspace}/users/leave_workspace: post: summary: leave workspace operationId: leaveWorkspace tags: - user parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: status content: text/plain: schema: type: string /users/accept_invite: post: summary: accept invite to workspace operationId: acceptInvite tags: - user requestBody: description: accept invite required: true content: application/json: schema: type: object properties: workspace_id: type: string username: type: string required: - workspace_id - username responses: '200': description: status content: text/plain: schema: type: string /users/decline_invite: post: summary: decline invite to workspace operationId: declineInvite tags: - user requestBody: description: decline invite required: true content: application/json: schema: type: object properties: workspace_id: type: string required: - workspace_id responses: '200': description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/invite_user: post: summary: invite user to workspace operationId: inviteUser tags: - workspace parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: WorkspaceInvite required: true content: application/json: schema: type: object properties: email: type: string is_admin: type: boolean operator: type: boolean required: - email - is_admin - operator responses: '200': description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/add_user: post: summary: add user to workspace operationId: addUser tags: - workspace parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: WorkspaceInvite required: true content: application/json: schema: type: object properties: email: type: string is_admin: type: boolean username: type: string operator: type: boolean required: - email - is_admin - operator - username responses: '200': description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/delete_invite: post: summary: delete user invite operationId: delete invite tags: - workspace parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: WorkspaceInvite required: true content: application/json: schema: type: object properties: email: type: string is_admin: type: boolean operator: type: boolean required: - email - is_admin - operator responses: '200': description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/archive: post: summary: archive workspace operationId: archiveWorkspace tags: - workspace parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: status content: text/plain: schema: type: string /workspaces/unarchive/{workspace}: post: summary: unarchive workspace operationId: unarchiveWorkspace tags: - workspace parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: status content: text/plain: schema: type: string /workspaces/delete/{workspace}: delete: summary: delete workspace (require super admin) operationId: deleteWorkspace tags: - workspace parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: status content: text/plain: schema: type: string /w/{workspace}/users/whois/{username}: get: summary: whois operationId: whois tags: - user parameters: - name: workspace in: path required: true schema: *ref_0 - name: username in: path required: true schema: type: string responses: '200': description: user content: application/json: schema: type: object properties: *ref_8 required: *ref_9 /users/exists/{email}: get: summary: exists email operationId: existsEmail tags: - user parameters: - name: email in: path required: true schema: type: string responses: '200': description: user content: application/json: schema: type: boolean /users/list_as_super_admin: get: summary: list all users as super admin (require to be super amdin) operationId: listUsersAsSuperAdmin tags: - user parameters: - name: page description: which page to return (start at 1, default 1) in: query schema: *ref_3 - name: per_page description: number of items to return for a given page (default 30, max 100) in: query schema: *ref_4 responses: '200': description: user content: application/json: schema: type: array items: type: object properties: *ref_10 required: *ref_11 /w/{workspace}/workspaces/list_pending_invites: get: summary: list pending invites for a workspace operationId: listPendingInvites tags: - workspace parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: user content: application/json: schema: type: array items: type: object properties: *ref_12 required: *ref_13 /w/{workspace}/workspaces/get_settings: get: summary: get settings operationId: getSettings tags: - workspace parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: status content: application/json: schema: type: object properties: workspace_id: type: string slack_name: type: string slack_team_id: type: string slack_command_script: type: string auto_invite_domain: type: string auto_invite_operator: type: boolean plan: type: string customer_id: type: string webhook: type: string deploy_to: type: string openai_resource_path: type: string code_completion_enabled: type: boolean error_handler: type: string error_handler_extra_args: type: object additionalProperties: &ref_14 {} error_handler_muted_on_cancel: type: boolean required: - code_completion_enabled /w/{workspace}/workspaces/get_deploy_to: get: summary: get deploy to operationId: getDeployTo tags: - workspace parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: status content: application/json: schema: type: object properties: deploy_to: type: string /w/{workspace}/workspaces/premium_info: get: summary: get premium info operationId: getPremiumInfo tags: - workspace parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: status content: application/json: schema: type: object properties: premium: type: boolean usage: type: number required: - premium /w/{workspace}/workspaces/edit_slack_command: post: summary: edit slack command operationId: editSlackCommand tags: - workspace parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: WorkspaceInvite required: true content: application/json: schema: type: object properties: slack_command_script: type: string responses: '200': description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/run_slack_message_test_job: post: summary: run a job that sends a message to Slack operationId: runSlackMessageTestJob tags: - workspace parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: path to hub script to run and its corresponding args required: true content: application/json: schema: type: object properties: hub_script_path: type: string channel: type: string test_msg: type: string responses: '200': description: status content: text/json: schema: type: object properties: job_uuid: type: string /w/{workspace}/workspaces/edit_deploy_to: post: summary: edit deploy to operationId: editDeployTo tags: - workspace parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: required: true content: application/json: schema: type: object properties: deploy_to: type: string responses: '200': description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/edit_auto_invite: post: summary: edit auto invite operationId: editAutoInvite tags: - workspace parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: WorkspaceInvite required: true content: application/json: schema: type: object properties: operator: type: boolean responses: '200': description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/edit_webhook: post: summary: edit webhook operationId: editWebhook tags: - workspace parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: WorkspaceWebhook required: true content: application/json: schema: type: object properties: webhook: type: string responses: '200': description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/edit_copilot_config: post: summary: edit copilot config operationId: editCopilotConfig tags: - workspace parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: WorkspaceCopilotConfig required: true content: application/json: schema: type: object required: - code_completion_enabled properties: openai_resource_path: type: string code_completion_enabled: type: boolean responses: '200': description: status content: text/plain: schema: type: string /w/{workspace}/workspaces/get_copilot_info: get: summary: get copilot info operationId: getCopilotInfo tags: - workspace parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: status content: text/plain: schema: type: object properties: exists_openai_resource_path: type: boolean code_completion_enabled: type: boolean required: - exists_openai_resource_path - code_completion_enabled /w/{workspace}/workspaces/edit_error_handler: post: summary: edit error handler operationId: editErrorHandler tags: - workspace parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: WorkspaceErrorHandler required: true content: application/json: schema: type: object properties: error_handler: type: string error_handler_extra_args: type: object additionalProperties: *ref_14 error_handler_muted_on_cancel: type: boolean responses: '200': description: status content: text/plain: schema: type: string /w/{workspace}/users/list: get: summary: list users operationId: listUsers tags: - user parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: user content: application/json: schema: type: array items: type: object properties: *ref_8 required: *ref_9 /w/{workspace}/users/list_usernames: get: summary: list usernames operationId: listUsernames tags: - user parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: user content: application/json: schema: type: array items: type: string /users/tokens/create: post: summary: create token operationId: createToken tags: - user requestBody: description: new token required: true content: application/json: schema: type: object properties: &ref_113 label: type: string expiration: type: string format: date-time scopes: type: array items: type: string responses: '201': description: token created content: text/plain: schema: type: string /users/tokens/impersonate: post: summary: create token to impersonate a user (require superadmin) operationId: createTokenImpersonate tags: - user requestBody: description: new token required: true content: application/json: schema: type: object properties: &ref_114 label: type: string expiration: type: string format: date-time impersonate_email: type: string required: &ref_115 - impersonate_email responses: '201': description: token created content: text/plain: schema: type: string /users/tokens/delete/{token_prefix}: delete: summary: delete token operationId: deleteToken tags: - user parameters: - name: token_prefix in: path required: true schema: type: string responses: '200': description: delete token content: text/plain: schema: type: string /users/tokens/list: get: summary: list token operationId: listTokens tags: - user responses: '200': description: truncated token content: application/json: schema: type: array items: type: object properties: &ref_111 label: type: string expiration: type: string format: date-time token_prefix: type: string created_at: type: string format: date-time last_used_at: type: string format: date-time scopes: type: array items: type: string required: &ref_112 - token_prefix - created_at - last_used_at /w/{workspace}/variables/create: post: summary: create variable operationId: createVariable tags: - variable parameters: - name: workspace in: path required: true schema: *ref_0 - name: already_encrypted in: query schema: type: boolean requestBody: description: new variable required: true content: application/json: schema: type: object properties: &ref_118 path: type: string value: type: string is_secret: type: boolean description: type: string account: type: integer is_oauth: type: boolean required: &ref_119 - path - value - is_secret - description responses: '201': description: variable created content: text/plain: schema: type: string /w/{workspace}/variables/encrypt: post: summary: encrypt value operationId: encryptValue tags: - variable parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: new variable required: true content: application/json: schema: type: string responses: '200': description: encrypted value content: text/plain: schema: type: string /w/{workspace}/variables/delete/{path}: delete: summary: delete variable operationId: deleteVariable tags: - variable parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '200': description: variable deleted content: text/plain: schema: type: string /w/{workspace}/variables/update/{path}: post: summary: update variable operationId: updateVariable tags: - variable parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 - name: already_encrypted in: query schema: type: boolean requestBody: description: updated variable required: true content: application/json: schema: type: object properties: &ref_120 path: type: string value: type: string is_secret: type: boolean description: type: string responses: '200': description: variable updated content: text/plain: schema: type: string /w/{workspace}/variables/get/{path}: get: summary: get variable operationId: getVariable tags: - variable parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 - 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 responses: '200': description: variable content: application/json: schema: type: object properties: &ref_16 workspace_id: type: string path: type: string value: type: string is_secret: type: boolean description: type: string account: type: integer is_oauth: type: boolean extra_perms: type: object additionalProperties: type: boolean is_expired: type: boolean refresh_error: type: string is_linked: type: boolean is_refreshed: type: boolean required: &ref_17 - workspace_id - path - is_secret - extra_perms /w/{workspace}/variables/get_value/{path}: get: summary: get variable value operationId: getVariableValue tags: - variable parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '200': description: variable content: application/json: schema: type: string /w/{workspace}/variables/exists/{path}: get: summary: does variable exists at path operationId: existsVariable tags: - variable parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '200': description: variable content: application/json: schema: type: boolean /w/{workspace}/variables/list: get: summary: list variables operationId: listVariable tags: - variable parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: variable list content: application/json: schema: type: array items: type: object properties: *ref_16 required: *ref_17 /w/{workspace}/variables/list_contextual: get: summary: list contextual variables operationId: listContextualVariables tags: - variable parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: contextual variable list content: application/json: schema: type: array items: type: object properties: &ref_116 name: type: string value: type: string description: type: string required: &ref_117 - name - value - description /oauth/login_callback/{client_name}: post: security: [] summary: login with oauth authorization flow operationId: loginWithOauth tags: - user parameters: - name: client_name in: path required: true schema: &ref_18 type: string requestBody: description: Partially filled script required: true content: application/json: schema: type: object properties: code: type: string state: type: string responses: '200': description: > Successfully authenticated. The session ID is returned in a cookie named `token` and as plaintext response. Preferred method of authorization is through the bearer token. The cookie is only for browser convenience. headers: Set-Cookie: schema: type: string example: token=abcde12345; Path=/; HttpOnly content: text/plain: schema: type: string /w/{workspace}/oauth/connect_slack_callback: post: summary: connect slack callback operationId: connectSlackCallback tags: - oauth parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: code endpoint required: true content: application/json: schema: type: object properties: code: type: string state: type: string required: - code - state responses: '200': description: slack token content: text/plain: schema: type: string /oauth/connect_callback/{client_name}: post: summary: connect callback operationId: connectCallback tags: - oauth parameters: - name: client_name in: path required: true schema: *ref_18 requestBody: description: code endpoint required: true content: application/json: schema: type: object properties: code: type: string state: type: string required: - code - state responses: '200': description: oauth token content: application/json: schema: type: object properties: &ref_152 access_token: type: string expires_in: type: integer refresh_token: type: string scope: type: array items: type: string required: &ref_153 - access_token /w/{workspace}/oauth/create_account: post: summary: create OAuth account operationId: createAccount tags: - oauth parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: code endpoint required: true content: application/json: schema: type: object properties: refresh_token: type: string expires_in: type: integer owner: type: string client: type: string required: - expires_in - owner - client responses: '200': description: account set content: text/plain: schema: type: string /w/{workspace}/oauth/refresh_token/{id}: post: summary: refresh token operationId: refreshToken tags: - oauth parameters: - name: workspace in: path required: true schema: *ref_0 - name: id in: path required: true schema: &ref_19 type: integer requestBody: description: variable path required: true content: application/json: schema: type: object properties: path: type: string required: - path responses: '200': description: token refreshed content: text/plain: schema: type: string /w/{workspace}/oauth/disconnect/{id}: post: summary: disconnect account operationId: disconnectAccount tags: - oauth parameters: - name: workspace in: path required: true schema: *ref_0 - name: id in: path required: true schema: *ref_19 responses: '200': description: disconnected client content: text/plain: schema: type: string /w/{workspace}/oauth/disconnect_slack: post: summary: disconnect slack operationId: disconnectSlack tags: - oauth parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: disconnected slack content: text/plain: schema: type: string /oauth/list_logins: get: summary: list oauth logins operationId: listOAuthLogins tags: - oauth responses: '200': description: list of oauth and saml login clients content: application/json: schema: type: object properties: oauth: type: array items: type: string saml: type: string required: - oauth /oauth/list_connects: get: summary: list oauth connects operationId: listOAuthConnects tags: - oauth responses: '200': description: list of oauth connects clients content: application/json: schema: additionalProperties: type: object properties: extra_params: additionalProperties: type: string scopes: type: array items: type: string /w/{workspace}/resources/create: post: summary: create resource operationId: createResource tags: - resource parameters: - name: workspace in: path required: true schema: *ref_0 - name: update_if_exists in: query schema: type: boolean requestBody: description: new resource required: true content: application/json: schema: type: object properties: &ref_123 path: type: string value: {} description: type: string resource_type: type: string required: &ref_124 - path - value - resource_type responses: '201': description: resource created content: text/plain: schema: type: string /w/{workspace}/resources/delete/{path}: delete: summary: delete resource operationId: deleteResource tags: - resource parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '200': description: resource deleted content: text/plain: schema: type: string /w/{workspace}/resources/update/{path}: post: summary: update resource operationId: updateResource tags: - resource parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 requestBody: description: updated resource required: true content: application/json: schema: type: object properties: &ref_125 path: type: string description: type: string value: {} responses: '200': description: resource updated content: text/plain: schema: type: string /w/{workspace}/resources/update_value/{path}: post: summary: update resource value operationId: updateResourceValue tags: - resource parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 requestBody: description: updated resource required: true content: application/json: schema: type: object properties: value: {} responses: '200': description: resource value updated content: text/plain: schema: type: string /w/{workspace}/resources/get/{path}: get: summary: get resource operationId: getResource tags: - resource parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '200': description: resource content: application/json: schema: type: object properties: &ref_126 workspace_id: type: string path: type: string description: type: string resource_type: type: string value: {} is_oauth: type: boolean extra_perms: type: object additionalProperties: type: boolean required: &ref_127 - path - resource_type - is_oauth /w/{workspace}/resources/get_value_interpolated/{path}: get: summary: get resource interpolated (variables and resources are fully unrolled) operationId: getResourceValueInterpolated tags: - resource parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 - name: job_id description: job id in: query schema: type: string format: uuid responses: '200': description: resource value content: application/json: schema: {} /w/{workspace}/resources/get_value/{path}: get: summary: get resource value operationId: getResourceValue tags: - resource parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '200': description: resource value content: application/json: schema: {} /w/{workspace}/resources/exists/{path}: get: summary: does resource exists operationId: existsResource tags: - resource parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '200': description: does resource exists content: application/json: schema: type: boolean /w/{workspace}/resources/list: get: summary: list resources operationId: listResource tags: - resource parameters: - name: workspace in: path required: true schema: *ref_0 - name: page description: which page to return (start at 1, default 1) in: query schema: *ref_3 - name: per_page description: number of items to return for a given page (default 30, max 100) in: query schema: *ref_4 - name: resource_type description: resource_types to list from, separated by ',', in: query schema: type: string - name: resource_type_exclude description: resource_types to not list from, separated by ',', in: query schema: type: string responses: '200': description: resource list content: application/json: schema: type: array items: type: object properties: &ref_128 workspace_id: type: string path: type: string description: type: string resource_type: type: string value: {} is_oauth: type: boolean extra_perms: type: object additionalProperties: type: boolean is_expired: type: boolean refresh_error: type: string is_linked: type: boolean is_refreshed: type: boolean account: type: number required: &ref_129 - path - resource_type - is_oauth - is_linked - is_refreshed /w/{workspace}/resources/list_search: get: summary: list resources for search operationId: listSearchResource tags: - resource parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: resource list content: application/json: schema: type: array items: type: object properties: path: type: string value: {} required: - path - value /w/{workspace}/resources/list_names/{name}: get: summary: list resource names operationId: listResourceNames tags: - resource parameters: - name: workspace in: path required: true schema: *ref_0 - name: name in: path required: true schema: &ref_75 type: string responses: '200': description: resource list names content: application/json: schema: type: array items: type: object properties: name: type: string path: type: string required: - name - path /w/{workspace}/resources/type/create: post: summary: create resource_type operationId: createResourceType tags: - resource parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: new resource_type required: true content: application/json: schema: type: object properties: &ref_20 workspace_id: type: string name: type: string schema: {} description: type: string required: &ref_21 - name responses: '201': description: resource_type created content: text/plain: schema: type: string /w/{workspace}/resources/type/delete/{path}: delete: summary: delete resource_type operationId: deleteResourceType tags: - resource parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '200': description: resource_type deleted content: text/plain: schema: type: string /w/{workspace}/resources/type/update/{path}: post: summary: update resource_type operationId: updateResourceType tags: - resource parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 requestBody: description: updated resource_type required: true content: application/json: schema: type: object properties: &ref_130 schema: {} description: type: string responses: '200': description: resource_type updated content: text/plain: schema: type: string /w/{workspace}/resources/type/get/{path}: get: summary: get resource_type operationId: getResourceType tags: - resource parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '200': description: resource_type deleted content: application/json: schema: type: object properties: *ref_20 required: *ref_21 /w/{workspace}/resources/type/exists/{path}: get: summary: does resource_type exists operationId: existsResourceType tags: - resource parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '200': description: does resource_type exist content: application/json: schema: type: boolean /w/{workspace}/resources/type/list: get: summary: list resource_types operationId: listResourceType tags: - resource parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: resource_type list content: application/json: schema: type: array items: type: object properties: *ref_20 required: *ref_21 /w/{workspace}/resources/type/listnames: get: summary: list resource_types names operationId: listResourceTypeNames tags: - resource parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: resource_type list content: application/json: schema: type: array items: type: string /w/{workspace}/embeddings/query_resource_types: get: summary: query resource types by similarity operationId: queryResourceTypes tags: - resource parameters: - name: workspace in: path required: true schema: *ref_0 - name: text description: query text in: query required: true schema: type: string - name: limit description: query limit in: query required: false schema: type: number responses: '200': description: resource type details content: application/json: schema: type: array items: type: object properties: name: type: string score: type: number schema: {} required: - name - score /integrations/hub/list: get: summary: list hub integrations operationId: listHubIntegrations tags: - integration parameters: - name: kind description: query integrations kind in: query required: false schema: type: string responses: '200': description: integrations details content: application/json: schema: type: array items: type: object properties: name: type: string required: - name /flows/hub/list: get: summary: list all hub flows operationId: listHubFlows tags: - flow responses: '200': description: hub flows list content: application/json: schema: type: object properties: flows: type: array items: type: object properties: id: type: number flow_id: type: number summary: type: string apps: type: array items: type: string approved: type: boolean votes: type: number required: - id - flow_id - summary - apps - approved - votes /flows/hub/get/{id}: get: summary: get hub flow by id operationId: getHubFlowById tags: - flow parameters: - name: id in: path required: true schema: *ref_22 responses: '200': description: flow content: application/json: schema: type: object properties: flow: type: object properties: &ref_40 summary: type: string description: type: string value: type: object properties: &ref_47 modules: type: array items: type: object properties: &ref_25 id: type: string value: oneOf: &ref_174 - type: object properties: &ref_158 input_transforms: type: object additionalProperties: oneOf: &ref_23 - type: object properties: &ref_154 value: {} type: type: string enum: - javascript required: &ref_155 - expr - type - type: object properties: &ref_156 expr: type: string type: type: string enum: - javascript required: &ref_157 - expr - type discriminator: &ref_24 propertyName: type mapping: static: '#/components/schemas/StaticTransform' javascript: '#/components/schemas/JavascriptTransform' content: type: string language: type: string enum: - deno - bun - python3 - go - bash - powershell - postgresql - mysql - bigquery - snowflake - graphql - nativets path: type: string lock: type: string type: type: string enum: - rawscript tag: type: string concurrent_limit: type: number concurrency_time_window_s: type: number required: &ref_159 - type - content - language - input_transforms - type: object properties: &ref_160 input_transforms: type: object additionalProperties: oneOf: *ref_23 discriminator: *ref_24 path: type: string hash: type: string type: type: string enum: - script required: &ref_161 - type - path - input_transforms - type: object properties: &ref_162 input_transforms: type: object additionalProperties: oneOf: *ref_23 discriminator: *ref_24 path: type: string type: type: string enum: - flow required: &ref_163 - type - path - input_transforms - type: object properties: &ref_164 modules: type: array items: type: object properties: *ref_25 required: &ref_26 - value - id iterator: oneOf: *ref_23 discriminator: *ref_24 skip_failures: type: boolean type: type: string enum: - forloopflow parallel: type: boolean parallelism: type: integer required: &ref_165 - modules - iterator - skip_failures - type - type: object properties: &ref_166 branches: type: array items: type: object properties: summary: type: string expr: type: string modules: type: array items: type: object properties: *ref_25 required: *ref_26 required: - modules - expr default: type: array items: type: object properties: *ref_25 required: *ref_26 required: - modules type: type: string enum: - branchone required: &ref_167 - branches - default - type - type: object properties: &ref_168 branches: type: array items: type: object properties: summary: type: string skip_failure: type: boolean modules: type: array items: type: object properties: *ref_25 required: *ref_26 required: - modules - expr type: type: string enum: - branchall parallel: type: boolean required: &ref_169 - branches - type - type: object properties: &ref_170 type: type: string enum: - identity flow: type: boolean required: &ref_171 - type - type: object properties: &ref_172 type: type: string enum: - graphql required: &ref_173 - type discriminator: &ref_175 propertyName: type mapping: rawscript: '#/components/schemas/RawScript' script: '#/components/schemas/PathScript' flow: '#/components/schemas/PathFlow' forloopflow: '#/components/schemas/ForloopFlow' branchone: '#/components/schemas/BranchOne' branchall: '#/components/schemas/BranchAll' identity: '#/components/schemas/Identity' graphql: '#/components/schemas/Graphql' stop_after_if: type: object properties: skip_if_stopped: type: boolean expr: type: string required: - expr sleep: oneOf: *ref_23 discriminator: *ref_24 cache_ttl: type: number timeout: type: number summary: type: string mock: type: object properties: enabled: type: boolean return_value: {} suspend: type: object properties: required_events: type: integer timeout: type: integer resume_form: type: object properties: schema: type: object user_auth_required: type: boolean user_groups_required: oneOf: *ref_23 discriminator: *ref_24 priority: type: number retry: type: object properties: &ref_176 constant: type: object properties: attempts: type: integer seconds: type: integer exponential: type: object properties: attempts: type: integer multiplier: type: integer seconds: type: integer required: *ref_26 failure_module: type: object properties: *ref_25 required: *ref_26 same_worker: type: boolean concurrent_limit: type: number concurrency_time_window_s: type: number skip_expr: type: string cache_ttl: type: number priority: type: number required: &ref_48 - modules schema: type: object required: &ref_41 - summary - value /apps/hub/list: get: summary: list all hub apps operationId: listHubApps tags: - app responses: '200': description: hub apps list content: application/json: schema: type: object properties: apps: type: array items: type: object properties: id: type: number app_id: type: number summary: type: string apps: type: array items: type: string approved: type: boolean votes: type: number required: - id - app_id - summary - apps - approved - votes /apps/hub/get/{id}: get: summary: get hub app by id operationId: getHubAppById tags: - app parameters: - name: id in: path required: true schema: *ref_22 responses: '200': description: app content: application/json: schema: type: object properties: app: type: object properties: summary: type: string value: {} required: - summary - value required: - app /scripts/hub/get/{path}: get: summary: get hub script content by path operationId: getHubScriptContentByPath tags: - script parameters: - name: path in: path required: true schema: &ref_27 type: string responses: '200': description: script details content: text/plain: schema: type: string /scripts/hub/get_full/{path}: get: summary: get full hub script by path operationId: getHubScriptByPath tags: - script parameters: - name: path in: path required: true schema: *ref_27 responses: '200': description: script details content: application/json: schema: type: object properties: content: type: string lockfile: type: string schema: {} language: type: string summary: type: string required: - content - language /scripts/hub/top: get: summary: get top hub scripts operationId: getTopHubScripts tags: - script parameters: - name: limit description: query limit in: query required: false schema: type: number - name: app description: query scripts app in: query required: false schema: type: string - name: kind description: query scripts kind in: query required: false schema: type: string responses: '200': description: hub scripts list content: application/json: schema: type: object properties: asks: type: array items: type: object properties: id: type: number ask_id: type: number summary: type: string app: type: string version_id: type: number kind: name: kind schema: &ref_28 type: string enum: - script - failure - trigger - approval votes: type: number views: type: number required: - id - ask_id - summary - app - version_id - kind - views - votes /embeddings/query_hub_scripts: get: summary: query hub scripts by similarity operationId: queryHubScripts tags: - script parameters: - name: text description: query text in: query required: true schema: type: string - name: kind description: query scripts kind in: query required: false schema: type: string - name: limit description: query limit in: query required: false schema: type: number - name: app description: query scripts app in: query required: false schema: type: string responses: '200': description: script details content: application/json: schema: type: array items: type: object properties: ask_id: type: number id: type: number version_id: type: number summary: type: string app: type: string kind: name: kind schema: *ref_28 score: type: number required: - ask_id - id - version_id - summary - app - kind - score /w/{workspace}/scripts/list_search: get: summary: list scripts for search operationId: listSearchScript tags: - script parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: script list content: application/json: schema: type: array items: type: object properties: path: type: string content: type: string required: - path - content /w/{workspace}/scripts/list: get: summary: list all scripts operationId: listScripts tags: - script parameters: - name: workspace in: path required: true schema: *ref_0 - name: page description: which page to return (start at 1, default 1) in: query schema: *ref_3 - name: per_page description: number of items to return for a given page (default 30, max 100) in: query schema: *ref_4 - name: order_desc description: order by desc order (default true) in: query schema: &ref_38 type: boolean - name: created_by description: mask to filter exact matching user creator in: query schema: &ref_39 type: string - name: path_start description: mask to filter matching starting path in: query schema: type: string - name: path_exact description: mask to filter exact matching path in: query schema: type: string - name: first_parent_hash description: mask to filter scripts whom first direct parent has exact hash in: query schema: type: string - name: last_parent_hash description: > mask to filter scripts whom last parent in the chain has exact hash. Beware that each script stores only a limited number of parents. Hence the last parent hash for a script is not necessarily its top-most parent. To find the top-most parent you will have to jump from last to last hash until finding the parent in: query schema: type: string - name: parent_hash description: > is the hash present in the array of stored parent hashes for this script. The same warning applies than for last_parent_hash. A script only store a limited number of direct parent in: query schema: type: string - name: show_archived description: > (default false) show also the archived files. when multiple archived hash share the same path, only the ones with the latest create_at are ed. in: query schema: type: boolean - name: is_template description: | (default regardless) if true show only the templates if false show only the non templates if not defined, show all regardless of if the script is a template in: query schema: type: boolean - name: kinds description: | (default regardless) script kinds to filter, split by comma in: query schema: type: string - name: starred_only description: | (default false) show only the starred items in: query schema: type: boolean responses: '200': description: All scripts content: application/json: schema: type: array items: type: object properties: &ref_29 workspace_id: type: string hash: type: string path: type: string parent_hashes: type: array description: > The first element is the direct parent of the script, the second is the parent of the first, etc items: type: string summary: type: string description: type: string content: type: string created_by: type: string created_at: type: string format: date-time archived: type: boolean schema: type: object deleted: type: boolean is_template: type: boolean extra_perms: type: object additionalProperties: type: boolean lock: type: string lock_error_logs: type: string language: type: string enum: - python3 - deno - go - bash - powershell - postgresql - mysql - bigquery - snowflake - graphql - nativets - bun kind: type: string enum: - script - failure - trigger - command - approval starred: type: boolean tag: type: string has_draft: type: boolean draft_only: type: boolean envs: type: array items: type: string concurrent_limit: type: integer concurrency_time_window_s: type: integer cache_ttl: type: number dedicated_worker: type: boolean ws_error_handler_muted: type: boolean priority: type: integer required: &ref_30 - hash - path - summary - description - content - created_by - created_at - archived - deleted - is_template - extra_perms - language - kind - starred /w/{workspace}/scripts/list_paths: get: summary: list all scripts paths operationId: listScriptPaths tags: - script parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: list of script paths content: text/plain: schema: type: array items: type: string /w/{workspace}/drafts/create: post: summary: create draft operationId: createDraft tags: - draft parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: required: true content: application/json: schema: type: object properties: path: type: string typ: type: string enum: - flow - script - app value: {} required: - path - typ - enum responses: '201': description: draft created content: text/plain: schema: type: string /w/{workspace}/drafts/delete/{kind}/{path}: delete: summary: delete draft operationId: deleteDraft tags: - draft parameters: - name: workspace in: path required: true schema: *ref_0 - name: kind in: path required: true schema: type: string enum: - script - flow - app - name: path in: path required: true schema: *ref_27 responses: '200': description: draft deleted content: text/plain: schema: type: string /w/{workspace}/scripts/create: post: summary: create script operationId: createScript tags: - script parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: Partially filled script required: true content: application/json: schema: type: object properties: &ref_32 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: array items: type: string language: type: string enum: - python3 - deno - go - bash - powershell - postgresql - mysql - bigquery - snowflake - graphql - nativets - bun kind: type: string enum: - script - failure - trigger - command - approval tag: type: string draft_only: type: boolean envs: type: array items: type: string concurrent_limit: type: integer concurrency_time_window_s: type: integer cache_ttl: type: number dedicated_worker: type: boolean ws_error_handler_muted: type: boolean priority: type: integer required: &ref_33 - path - summary - description - content - language responses: '201': description: script created content: text/plain: schema: type: string /w/{workspace}/scripts/toggle_workspace_error_handler/p/{path}: post: summary: Toggle ON and OFF the workspace error handler for a given script operationId: toggleWorkspaceErrorHandlerForScript tags: - script parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 requestBody: description: Workspace error handler enabled required: true content: application/json: schema: type: object properties: muted: type: boolean responses: '200': description: error handler toggled content: text/plain: schema: type: string /workers/custom_tags: get: summary: >- get all instance custom tags (tags are used to dispatch jobs to different worker groups) operationId: getCustomTags tags: - worker responses: '200': description: list of custom tags content: application/json: schema: type: array items: type: string /w/{workspace}/scripts/archive/p/{path}: post: summary: archive script by path operationId: archiveScriptByPath tags: - script parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 responses: '200': description: script archived content: text/plain: schema: type: string /w/{workspace}/scripts/archive/h/{hash}: post: summary: archive script by hash operationId: archiveScriptByHash tags: - script parameters: - name: workspace in: path required: true schema: *ref_0 - name: hash in: path required: true schema: &ref_31 type: string responses: '200': description: script details content: application/json: schema: type: object properties: *ref_29 required: *ref_30 /w/{workspace}/scripts/delete/h/{hash}: post: summary: delete script by hash (erase content but keep hash, require admin) operationId: deleteScriptByHash tags: - script parameters: - name: workspace in: path required: true schema: *ref_0 - name: hash in: path required: true schema: *ref_31 responses: '200': description: script details content: application/json: schema: type: object properties: *ref_29 required: *ref_30 /w/{workspace}/scripts/delete/p/{path}: post: summary: delete all scripts at a given path (require admin) operationId: deleteScriptByPath tags: - script parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 responses: '200': description: script path content: application/json: schema: type: string /w/{workspace}/scripts/get/p/{path}: get: summary: get script by path operationId: getScriptByPath tags: - script parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 responses: '200': description: script details content: application/json: schema: type: object properties: *ref_29 required: *ref_30 /w/{workspace}/scripts/get/draft/{path}: get: summary: get script by path with draft operationId: getScriptByPathWithDraft tags: - script parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 responses: '200': description: script details content: application/json: schema: allOf: &ref_99 - type: object properties: *ref_32 required: *ref_33 - type: object properties: draft: type: object properties: *ref_32 required: *ref_33 hash: type: string required: - hash /w/{workspace}/scripts/raw/p/{path}: get: summary: raw script by path operationId: rawScriptByPath tags: - script parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 responses: '200': description: script content content: text/plain: schema: type: string /scripts_u/tokened_raw/{workspace}/{token}/{path}: get: summary: >- raw script by path with a token (mostly used by lsp to be used with import maps to resolve scripts) operationId: rawScriptByPathTokened tags: - script parameters: - name: workspace in: path required: true schema: *ref_0 - name: token in: path required: true schema: &ref_87 type: string - name: path in: path required: true schema: *ref_27 responses: '200': description: script content content: text/plain: schema: type: string /w/{workspace}/scripts/exists/p/{path}: get: summary: exists script by path operationId: existsScriptByPath tags: - script parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 responses: '200': description: does it exists content: application/json: schema: type: boolean /w/{workspace}/scripts/get/h/{hash}: get: summary: get script by hash operationId: getScriptByHash tags: - script parameters: - name: workspace in: path required: true schema: *ref_0 - name: hash in: path required: true schema: *ref_31 responses: '200': description: script details content: application/json: schema: type: object properties: *ref_29 required: *ref_30 /w/{workspace}/scripts/raw/h/{path}: get: summary: raw script by hash operationId: rawScriptByHash tags: - script parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 responses: '200': description: script content content: text/plain: schema: type: string /w/{workspace}/scripts/deployment_status/h/{hash}: get: summary: get script deployment status operationId: getScriptDeploymentStatus tags: - script parameters: - name: workspace in: path required: true schema: *ref_0 - name: hash in: path required: true schema: *ref_31 responses: '200': description: script details content: application/json: schema: type: object properties: lock: type: string lock_error_logs: type: string /w/{workspace}/jobs/run/p/{path}: post: summary: run script by path operationId: runScriptByPath tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 - name: scheduled_for description: when to schedule this job (leave empty for immediate run) in: query schema: type: string format: date-time - name: scheduled_in_secs description: schedule the script to execute in the number of seconds starting now in: query schema: type: integer - name: parent_job description: >- The parent job that is at the origin and responsible for the execution of this script if any in: query schema: &ref_34 type: string format: uuid - name: job_id description: >- The job id to assign to the created job. if missing, job is chosen randomly using the ULID scheme. If a job id already exists in the queue or as a completed job, the request to create one will fail (Bad Request) in: query schema: &ref_35 type: string format: uuid - name: invisible_to_owner description: make the run invisible to the the script owner (default false) in: query schema: type: boolean requestBody: description: script args required: true content: application/json: schema: type: object additionalProperties: *ref_14 responses: '201': description: job created content: text/plain: schema: type: string format: uuid /w/{workspace}/jobs/openai_sync/p/{path}: post: summary: run script by path in openai format operationId: openaiSyncScriptByPath tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 - name: parent_job description: >- The parent job that is at the origin and responsible for the execution of this script if any in: query schema: *ref_34 - name: job_id description: >- The job id to assign to the created job. if missing, job is chosen randomly using the ULID scheme. If a job id already exists in the queue or as a completed job, the request to create one will fail (Bad Request) in: query schema: *ref_35 - name: include_header description: > List of headers's keys (separated with ',') whove value are added to the args Header's key lowercased and '-'' replaced to '_' such that 'Content-Type' becomes the 'content_type' arg key in: query schema: &ref_36 type: string - name: queue_limit description: > The maximum size of the queue for which the request would get rejected if that job would push it above that limit in: query schema: &ref_37 type: string requestBody: description: script args required: true content: application/json: schema: type: object additionalProperties: *ref_14 responses: '200': description: job result content: application/json: schema: {} /w/{workspace}/jobs/run_wait_result/p/{path}: post: summary: run script by path operationId: runWaitResultScriptByPath tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 - name: parent_job description: >- The parent job that is at the origin and responsible for the execution of this script if any in: query schema: *ref_34 - name: job_id description: >- The job id to assign to the created job. if missing, job is chosen randomly using the ULID scheme. If a job id already exists in the queue or as a completed job, the request to create one will fail (Bad Request) in: query schema: *ref_35 - name: include_header description: > List of headers's keys (separated with ',') whove value are added to the args Header's key lowercased and '-'' replaced to '_' such that 'Content-Type' becomes the 'content_type' arg key in: query schema: *ref_36 - name: queue_limit description: > The maximum size of the queue for which the request would get rejected if that job would push it above that limit in: query schema: *ref_37 requestBody: description: script args required: true content: application/json: schema: type: object additionalProperties: *ref_14 responses: '200': description: job result content: application/json: schema: {} get: summary: run script by path with get operationId: runWaitResultScriptByPathGet tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 - name: parent_job description: >- The parent job that is at the origin and responsible for the execution of this script if any in: query schema: *ref_34 - name: job_id description: >- The job id to assign to the created job. if missing, job is chosen randomly using the ULID scheme. If a job id already exists in the queue or as a completed job, the request to create one will fail (Bad Request) in: query schema: *ref_35 - name: include_header description: > List of headers's keys (separated with ',') whove value are added to the args Header's key lowercased and '-'' replaced to '_' such that 'Content-Type' becomes the 'content_type' arg key in: query schema: *ref_36 - name: queue_limit description: > The maximum size of the queue for which the request would get rejected if that job would push it above that limit in: query schema: *ref_37 - name: payload description: > The base64 encoded payload that has been encoded as a JSON. e.g how to encode such payload encodeURIComponent `encodeURIComponent(btoa(JSON.stringify({a: 2})))` in: query schema: &ref_72 type: string responses: '200': description: job result content: application/json: schema: {} /w/{workspace}/jobs/openai_sync/f/{path}: post: summary: run flow by path and wait until completion in openai format operationId: openaiSyncFlowByPath tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 - name: include_header description: > List of headers's keys (separated with ',') whove value are added to the args Header's key lowercased and '-'' replaced to '_' such that 'Content-Type' becomes the 'content_type' arg key in: query schema: *ref_36 - name: queue_limit description: > The maximum size of the queue for which the request would get rejected if that job would push it above that limit in: query schema: *ref_37 - name: job_id description: >- The job id to assign to the created job. if missing, job is chosen randomly using the ULID scheme. If a job id already exists in the queue or as a completed job, the request to create one will fail (Bad Request) in: query schema: *ref_35 requestBody: description: script args required: true content: application/json: schema: type: object additionalProperties: *ref_14 responses: '200': description: job result content: application/json: schema: {} /w/{workspace}/jobs/run_wait_result/f/{path}: post: summary: run flow by path and wait until completion operationId: runWaitResultFlowByPath tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 - name: include_header description: > List of headers's keys (separated with ',') whove value are added to the args Header's key lowercased and '-'' replaced to '_' such that 'Content-Type' becomes the 'content_type' arg key in: query schema: *ref_36 - name: queue_limit description: > The maximum size of the queue for which the request would get rejected if that job would push it above that limit in: query schema: *ref_37 - name: job_id description: >- The job id to assign to the created job. if missing, job is chosen randomly using the ULID scheme. If a job id already exists in the queue or as a completed job, the request to create one will fail (Bad Request) in: query schema: *ref_35 requestBody: description: script args required: true content: application/json: schema: type: object additionalProperties: *ref_14 responses: '200': description: job result content: application/json: schema: {} /w/{workspace}/jobs/result_by_id/{flow_job_id}/{node_id}: get: summary: get job result by id operationId: resultById tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: flow_job_id in: path required: true schema: type: string - name: node_id in: path required: true schema: type: string responses: '200': description: job result content: application/json: schema: {} /w/{workspace}/flows/list_paths: get: summary: list all flow paths operationId: listFlowPaths tags: - flow parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: list of flow paths content: text/plain: schema: type: array items: type: string /w/{workspace}/flows/list_search: get: summary: list flows for search operationId: listSearchFlow tags: - flow parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: flow list content: application/json: schema: type: array items: type: object properties: path: type: string value: {} required: - path - value /w/{workspace}/flows/list: get: summary: list all flows operationId: listFlows tags: - flow parameters: - name: workspace in: path required: true schema: *ref_0 - name: page description: which page to return (start at 1, default 1) in: query schema: *ref_3 - name: per_page description: number of items to return for a given page (default 30, max 100) in: query schema: *ref_4 - name: order_desc description: order by desc order (default true) in: query schema: *ref_38 - name: created_by description: mask to filter exact matching user creator in: query schema: *ref_39 - name: path_start description: mask to filter matching starting path in: query schema: type: string - name: path_exact description: mask to filter exact matching path in: query schema: type: string - name: show_archived description: > (default false) show also the archived files. when multiple archived hash share the same path, only the ones with the latest create_at are displayed. in: query schema: type: boolean - name: starred_only description: | (default false) show only the starred items in: query schema: type: boolean responses: '200': description: All flow content: application/json: schema: type: array items: allOf: - allOf: &ref_42 - type: object properties: *ref_40 required: *ref_41 - type: object properties: &ref_142 workspace_id: type: string path: type: string edited_by: type: string edited_at: type: string format: date-time archived: type: boolean extra_perms: type: object additionalProperties: type: boolean starred: type: boolean draft_only: type: boolean tag: type: string ws_error_handler_muted: type: boolean priority: type: integer required: &ref_143 - path - edited_by - edited_at - archived - extra_perms - type: object properties: has_draft: type: boolean draft_only: type: boolean /w/{workspace}/flows/get/{path}: get: summary: get flow by path operationId: getFlowByPath tags: - flow parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 responses: '200': description: flow details content: application/json: schema: allOf: *ref_42 /w/{workspace}/flows/toggle_workspace_error_handler/{path}: post: summary: Toggle ON and OFF the workspace error handler for a given flow operationId: toggleWorkspaceErrorHandlerForFlow tags: - flow parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 requestBody: description: Workspace error handler enabled required: true content: application/json: schema: type: object properties: muted: type: boolean responses: '200': description: error handler toggled content: text/plain: schema: type: string /w/{workspace}/flows/get/draft/{path}: get: summary: get flow by path with draft operationId: getFlowByPathWithDraft tags: - flow parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 responses: '200': description: flow details with draft content: application/json: schema: allOf: - allOf: *ref_42 - type: object properties: draft: allOf: *ref_42 /w/{workspace}/flows/exists/{path}: get: summary: exists flow by path operationId: existsFlowByPath tags: - flow parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 responses: '200': description: flow details content: application/json: schema: type: boolean /w/{workspace}/flows/create: post: summary: create flow operationId: createFlow tags: - flow parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: Partially filled flow required: true content: application/json: schema: allOf: - allOf: &ref_43 - type: object properties: *ref_40 required: *ref_41 - type: object properties: path: type: string tag: type: string ws_error_handler_muted: type: boolean priority: type: integer required: - path - type: object properties: draft_only: type: boolean responses: '201': description: flow created content: text/plain: schema: type: string /w/{workspace}/flows/update/{path}: post: summary: update flow operationId: updateFlow tags: - flow parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 requestBody: description: Partially filled flow required: true content: application/json: schema: allOf: *ref_43 responses: '200': description: flow updated content: text/plain: schema: type: string /w/{workspace}/flows/archive/{path}: post: summary: archive flow by path operationId: archiveFlowByPath tags: - flow parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 requestBody: description: archiveFlow required: true content: application/json: schema: type: object properties: archived: type: boolean responses: '200': description: flow archived content: text/plain: schema: type: string /w/{workspace}/flows/delete/{path}: delete: summary: delete flow by path operationId: deleteFlowByPath tags: - flow parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 responses: '200': description: flow delete content: text/plain: schema: type: string /w/{workspace}/flows/input_history/p/{path}: get: summary: list inputs for previous completed flow jobs operationId: getFlowInputHistoryByPath tags: - flow parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 - name: page description: which page to return (start at 1, default 1) in: query schema: *ref_3 - name: per_page description: number of items to return for a given page (default 30, max 100) in: query schema: *ref_4 responses: '200': description: input history for completed jobs with this flow path content: application/json: schema: type: array items: type: object properties: &ref_82 id: type: string name: type: string args: type: object created_by: type: string created_at: type: string format: date-time is_public: type: boolean success: type: boolean required: &ref_83 - id - name - args - created_by - created_at - is_public /w/{workspace}/raw_apps/list: get: summary: list all raw apps operationId: listRawApps tags: - raw_app parameters: - name: workspace in: path required: true schema: *ref_0 - name: page description: which page to return (start at 1, default 1) in: query schema: *ref_3 - name: per_page description: number of items to return for a given page (default 30, max 100) in: query schema: *ref_4 - name: order_desc description: order by desc order (default true) in: query schema: *ref_38 - name: created_by description: mask to filter exact matching user creator in: query schema: *ref_39 - name: path_start description: mask to filter matching starting path in: query schema: type: string - name: path_exact description: mask to filter exact matching path in: query schema: type: string - name: starred_only description: | (default false) show only the starred items in: query schema: type: boolean responses: '200': description: All raw apps content: application/json: schema: type: array items: type: object properties: &ref_149 workspace_id: type: string path: type: string summary: type: string extra_perms: type: object additionalProperties: type: boolean starred: type: boolean version: type: number edited_at: type: string format: date-time required: &ref_150 - workspace_id - path - summary - extra_perms - version - edited_at /w/{workspace}/raw_apps/exists/{path}: get: summary: does an app exisst at path operationId: existsRawApp tags: - raw_app parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '200': description: app exists content: application/json: schema: type: boolean /w/{workspace}/apps/get_data/{version}/{path}: get: summary: get app by path operationId: getRawAppData tags: - raw_app parameters: - name: workspace in: path required: true schema: *ref_0 - name: version in: path required: true schema: &ref_86 type: number - name: path in: path required: true schema: *ref_27 responses: '200': description: app details content: text/javascript: schema: type: string /w/{workspace}/apps/list_search: get: summary: list apps for search operationId: listSearchApp tags: - app parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: app list content: application/json: schema: type: array items: type: object properties: path: type: string value: {} required: - path - value /w/{workspace}/apps/list: get: summary: list all apps operationId: listApps tags: - app parameters: - name: workspace in: path required: true schema: *ref_0 - name: page description: which page to return (start at 1, default 1) in: query schema: *ref_3 - name: per_page description: number of items to return for a given page (default 30, max 100) in: query schema: *ref_4 - name: order_desc description: order by desc order (default true) in: query schema: *ref_38 - name: created_by description: mask to filter exact matching user creator in: query schema: *ref_39 - name: path_start description: mask to filter matching starting path in: query schema: type: string - name: path_exact description: mask to filter exact matching path in: query schema: type: string - name: starred_only description: | (default false) show only the starred items in: query schema: type: boolean responses: '200': description: All apps content: application/json: schema: type: array items: type: object properties: &ref_147 id: type: integer workspace_id: type: string path: type: string summary: type: string version: type: integer extra_perms: type: object additionalProperties: type: boolean starred: type: boolean edited_at: type: string format: date-time execution_mode: type: string enum: - viewer - publisher - anonymous required: &ref_148 - id - workspace_id - path - summary - version - extra_perms - edited_at - execution_mode /w/{workspace}/apps/create: post: summary: create app operationId: createApp tags: - app parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: new app required: true content: application/json: schema: type: object properties: path: type: string value: {} summary: type: string policy: type: object properties: &ref_44 triggerables: type: object additionalProperties: type: object execution_mode: type: string enum: - viewer - publisher - anonymous on_behalf_of: type: string on_behalf_of_email: type: string draft_only: type: boolean required: - path - value - summary - policy responses: '201': description: app created content: text/plain: schema: type: string /w/{workspace}/apps/exists/{path}: get: summary: does an app exisst at path operationId: existsApp tags: - app parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '200': description: app exists content: application/json: schema: type: boolean /w/{workspace}/apps/get/p/{path}: get: summary: get app by path operationId: getAppByPath tags: - app parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 responses: '200': description: app details content: application/json: schema: type: object properties: &ref_45 id: type: integer workspace_id: type: string path: type: string summary: type: string versions: type: array items: type: integer created_by: type: string created_at: type: string format: date-time value: {} policy: type: object properties: *ref_44 execution_mode: type: string enum: - viewer - publisher - anonymous extra_perms: type: object additionalProperties: type: boolean required: &ref_46 - id - workspace_id - path - summary - versions - created_by - created_at - value - policy - execution_mode - extra_perms /w/{workspace}/apps/get/draft/{path}: get: summary: get app by path with draft operationId: getAppByPathWithDraft tags: - app parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 responses: '200': description: app details with draft content: application/json: schema: allOf: &ref_151 - type: object properties: *ref_45 required: *ref_46 - type: object properties: draft_only: type: boolean draft: {} /w/{workspace}/apps_u/public_app/{path}: get: summary: get public app by secret operationId: getPublicAppBySecret tags: - app parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '200': description: app details content: application/json: schema: type: object properties: *ref_45 required: *ref_46 /w/{workspace}/apps_u/public_resource/{path}: get: summary: get public resource operationId: get public resource tags: - app parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '200': description: resource value content: application/json: schema: {} /w/{workspace}/apps/secret_of/{path}: get: summary: get public secret of app operationId: getPublicSecretOfApp tags: - app parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '200': description: app secret content: text/plain: schema: type: string /w/{workspace}/apps/get/v/{id}: get: summary: get app by version operationId: getAppByVersion tags: - app parameters: - name: workspace in: path required: true schema: *ref_0 - name: id in: path required: true schema: *ref_22 responses: '200': description: app details content: application/json: schema: type: object properties: *ref_45 required: *ref_46 /w/{workspace}/raw_apps/create: post: summary: create raw app operationId: createRawApp tags: - raw_app parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: new raw app required: true content: application/json: schema: type: object properties: path: type: string value: type: string summary: type: string required: - path - value - summary responses: '201': description: raw app created content: text/plain: schema: type: string /w/{workspace}/raw_apps/update/{path}: post: summary: update app operationId: updateRawApp tags: - raw_app parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 requestBody: description: updateraw app required: true content: application/json: schema: type: object properties: path: type: string summary: type: string value: type: string responses: '200': description: app updated content: text/plain: schema: type: string /w/{workspace}/raw_apps/delete/{path}: delete: summary: delete raw app operationId: deleteRawApp tags: - raw_app parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '200': description: app deleted content: text/plain: schema: type: string /w/{workspace}/apps/delete/{path}: delete: summary: delete app operationId: deleteApp tags: - app parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '200': description: app deleted content: text/plain: schema: type: string /w/{workspace}/apps/update/{path}: post: summary: update app operationId: updateApp tags: - app parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 requestBody: description: update app required: true content: application/json: schema: type: object properties: path: type: string summary: type: string value: {} policy: type: object properties: *ref_44 responses: '200': description: app updated content: text/plain: schema: type: string /w/{workspace}/apps_u/execute_component/{path}: post: summary: executeComponent operationId: executeComponent tags: - app parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 requestBody: description: update app required: true content: application/json: schema: type: object properties: component: type: string path: type: string args: {} raw_code: type: object properties: content: type: string language: type: string path: type: string cache_ttl: type: integer required: - content - language force_viewer_static_fields: type: object required: - args - component responses: '200': description: job uuid content: text/plain: schema: type: string /w/{workspace}/jobs/run/f/{path}: post: summary: run flow by path operationId: runFlowByPath tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_27 - name: scheduled_for description: when to schedule this job (leave empty for immediate run) in: query schema: type: string format: date-time - name: scheduled_in_secs description: schedule the script to execute in the number of seconds starting now in: query schema: type: integer - name: parent_job description: >- The parent job that is at the origin and responsible for the execution of this script if any in: query schema: *ref_34 - name: job_id description: >- The job id to assign to the created job. if missing, job is chosen randomly using the ULID scheme. If a job id already exists in the queue or as a completed job, the request to create one will fail (Bad Request) in: query schema: *ref_35 - name: include_header description: > List of headers's keys (separated with ',') whove value are added to the args Header's key lowercased and '-'' replaced to '_' such that 'Content-Type' becomes the 'content_type' arg key in: query schema: *ref_36 - name: invisible_to_owner description: make the run invisible to the the flow owner (default false) in: query schema: type: boolean requestBody: description: flow args required: true content: application/json: schema: type: object additionalProperties: *ref_14 responses: '201': description: job created content: text/plain: schema: type: string format: uuid /w/{workspace}/jobs/restart/f/{id}/from/{step_id}/{branch_or_iteration_n}: post: summary: restart a completed flow at a given step operationId: restartFlowAtStep tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: id in: path required: true schema: &ref_69 type: string format: uuid - name: step_id description: step id to restart the flow from required: true in: path schema: type: string - name: branch_or_iteration_n description: >- for branchall or loop, the iteration at which the flow should restart required: true in: path schema: type: integer - name: scheduled_for description: when to schedule this job (leave empty for immediate run) in: query schema: type: string format: date-time - name: scheduled_in_secs description: schedule the script to execute in the number of seconds starting now in: query schema: type: integer - name: parent_job description: >- The parent job that is at the origin and responsible for the execution of this script if any in: query schema: *ref_34 - name: job_id description: >- The job id to assign to the created job. if missing, job is chosen randomly using the ULID scheme. If a job id already exists in the queue or as a completed job, the request to create one will fail (Bad Request) in: query schema: *ref_35 - name: include_header description: > List of headers's keys (separated with ',') whove value are added to the args Header's key lowercased and '-'' replaced to '_' such that 'Content-Type' becomes the 'content_type' arg key in: query schema: *ref_36 - name: invisible_to_owner description: make the run invisible to the the flow owner (default false) in: query schema: type: boolean requestBody: description: flow args required: true content: application/json: schema: type: object additionalProperties: *ref_14 responses: '201': description: job created content: text/plain: schema: type: string format: uuid /w/{workspace}/jobs/run/h/{hash}: post: summary: run script by hash operationId: runScriptByHash tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: hash in: path required: true schema: *ref_31 - name: scheduled_for description: when to schedule this job (leave empty for immediate run) in: query schema: type: string format: date-time - name: scheduled_in_secs description: schedule the script to execute in the number of seconds starting now in: query schema: type: integer - name: parent_job description: >- The parent job that is at the origin and responsible for the execution of this script if any in: query schema: *ref_34 - name: job_id description: >- The job id to assign to the created job. if missing, job is chosen randomly using the ULID scheme. If a job id already exists in the queue or as a completed job, the request to create one will fail (Bad Request) in: query schema: *ref_35 - name: include_header description: > List of headers's keys (separated with ',') whove value are added to the args Header's key lowercased and '-'' replaced to '_' such that 'Content-Type' becomes the 'content_type' arg key in: query schema: *ref_36 - name: invisible_to_owner description: make the run invisible to the the script owner (default false) in: query schema: type: boolean requestBody: description: Partially filled args required: true content: application/json: schema: type: object responses: '201': description: job created content: text/plain: schema: type: string format: uuid /w/{workspace}/jobs/run/preview: post: summary: run script preview operationId: runScriptPreview tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: include_header description: > List of headers's keys (separated with ',') whove value are added to the args Header's key lowercased and '-'' replaced to '_' such that 'Content-Type' becomes the 'content_type' arg key in: query schema: *ref_36 - name: invisible_to_owner description: make the run invisible to the the script owner (default false) in: query schema: type: boolean - name: job_id description: >- The job id to assign to the created job. if missing, job is chosen randomly using the ULID scheme. If a job id already exists in the queue or as a completed job, the request to create one will fail (Bad Request) in: query schema: *ref_35 requestBody: description: preview required: true content: application/json: schema: type: object properties: &ref_121 content: type: string path: type: string args: type: object additionalProperties: *ref_14 language: type: string enum: - python3 - deno - go - bash - powershell - postgresql - mysql - bigquery - snowflake - graphql - nativets - bun tag: type: string kind: type: string enum: - code - identity - http dedicated_worker: type: boolean required: &ref_122 - args responses: '201': description: job created content: text/plain: schema: type: string format: uuid /w/{workspace}/jobs/run/preview_flow: post: summary: run flow preview operationId: runFlowPreview tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: include_header description: > List of headers's keys (separated with ',') whove value are added to the args Header's key lowercased and '-'' replaced to '_' such that 'Content-Type' becomes the 'content_type' arg key in: query schema: *ref_36 - name: invisible_to_owner description: make the run invisible to the the script owner (default false) in: query schema: type: boolean - name: job_id description: >- The job id to assign to the created job. if missing, job is chosen randomly using the ULID scheme. If a job id already exists in the queue or as a completed job, the request to create one will fail (Bad Request) in: query schema: *ref_35 requestBody: description: preview required: true content: application/json: schema: type: object properties: &ref_144 value: type: object properties: *ref_47 required: *ref_48 path: type: string args: type: object additionalProperties: *ref_14 tag: type: string restarted_from: type: object properties: &ref_146 flow_job_id: type: string format: uuid step_id: type: string branch_or_iteration_n: type: integer required: &ref_145 - value - content - args responses: '201': description: job created content: text/plain: schema: type: string format: uuid /w/{workspace}/jobs/queue/list: get: summary: list all queued jobs operationId: listQueue tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: order_desc description: order by desc order (default true) in: query schema: *ref_38 - name: created_by description: mask to filter exact matching user creator in: query schema: *ref_39 - name: parent_job description: >- The parent job that is at the origin and responsible for the execution of this script if any in: query schema: *ref_34 - name: script_path_exact description: mask to filter exact matching path in: query schema: &ref_51 type: string - name: script_path_start description: mask to filter matching starting path in: query schema: &ref_52 type: string - name: schedule_path description: mask to filter by schedule path in: query schema: &ref_53 type: string - name: script_hash description: mask to filter exact matching path in: query schema: &ref_54 type: string - name: started_before description: filter on started before (inclusive) timestamp in: query schema: &ref_55 type: string format: date-time - name: started_after description: filter on started after (exclusive) timestamp in: query schema: &ref_56 type: string format: date-time - name: success description: filter on successful jobs in: query schema: &ref_57 type: boolean - name: job_kinds description: >- filter on job kind (values 'preview', 'script', 'dependencies', 'flow') separated by, in: query schema: &ref_58 type: string - name: suspended description: filter on suspended jobs in: query schema: &ref_90 type: boolean - name: running description: filter on running jobs in: query schema: &ref_64 type: boolean - name: args description: >- filter on jobs containing those args as a json subset (@> in postgres) in: query schema: &ref_59 type: string - name: result description: >- filter on jobs containing those result as a json subset (@> in postgres) in: query schema: &ref_60 type: string - name: tag description: filter on jobs with a given tag/worker group in: query schema: &ref_61 type: string responses: '200': description: All queued jobs content: application/json: schema: type: array items: type: object properties: &ref_67 workspace_id: type: string id: type: string format: uuid parent_job: type: string format: uuid created_by: type: string created_at: type: string format: date-time started_at: type: string format: date-time scheduled_for: type: string format: date-time running: type: boolean script_path: type: string script_hash: type: string args: type: object additionalProperties: *ref_14 logs: type: string raw_code: type: string canceled: type: boolean canceled_by: type: string canceled_reason: type: string last_ping: type: string format: date-time job_kind: type: string enum: - script - preview - dependencies - flowdependencies - appdependencies - flow - flowpreview - script_hub - identity schedule_path: type: string permissioned_as: type: string description: > The user (u/userfoo) or group (g/groupfoo) whom the execution of this script will be permissioned_as and by extension its DT_TOKEN. flow_status: type: object properties: &ref_62 step: type: integer modules: type: array items: type: object properties: &ref_49 type: type: string enum: - WaitingForPriorSteps - WaitingForEvents - WaitingForExecutor - InProgress - Success - Failure id: type: string job: type: string format: uuid count: type: integer iterator: type: object properties: index: type: integer itered: type: array items: {} args: {} flow_jobs: type: array items: type: string branch_chosen: type: object properties: type: type: string enum: - branch - default branch: type: integer required: - type branchall: type: object properties: branch: type: integer len: type: integer required: - branch - len approvers: type: array items: type: object properties: resume_id: type: integer approver: type: string required: - resume_id - approver required: &ref_50 - type failure_module: allOf: - type: object properties: *ref_49 required: *ref_50 - type: object properties: parent_module: type: string retry: type: object properties: fail_count: type: integer failed_jobs: type: array items: type: string format: uuid required: &ref_63 - step - modules - failure_module raw_flow: type: object properties: *ref_47 required: *ref_48 is_flow_step: type: boolean language: type: string enum: - python3 - deno - go - bash - powershell - postgresql - mysql - bigquery - snowflake - graphql - nativets - bun email: type: string visible_to_owner: type: boolean mem_peak: type: integer tag: type: string priority: type: integer required: &ref_68 - id - running - canceled - job_kind - permissioned_as - is_flow_step - email - visible_to_owner - tag /w/{workspace}/jobs/queue/count: get: summary: get queue count operationId: getQueueCount tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: queue count content: application/json: schema: type: object properties: database_length: type: integer required: - database_length /w/{workspace}/jobs/completed/count: get: summary: get completed count operationId: getCompletedCount tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: completed count content: application/json: schema: type: object properties: database_length: type: integer required: - database_length /w/{workspace}/jobs/queue/cancel_all: post: summary: cancel all jobs operationId: cancelAll tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 responses: '200': description: uuids of canceled jobs content: application/json: schema: type: array items: type: string /w/{workspace}/jobs/completed/list: get: summary: list all completed jobs operationId: listCompletedJobs tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: order_desc description: order by desc order (default true) in: query schema: *ref_38 - name: created_by description: mask to filter exact matching user creator in: query schema: *ref_39 - name: parent_job description: >- The parent job that is at the origin and responsible for the execution of this script if any in: query schema: *ref_34 - name: script_path_exact description: mask to filter exact matching path in: query schema: *ref_51 - name: script_path_start description: mask to filter matching starting path in: query schema: *ref_52 - name: schedule_path description: mask to filter by schedule path in: query schema: *ref_53 - name: script_hash description: mask to filter exact matching path in: query schema: *ref_54 - name: started_before description: filter on started before (inclusive) timestamp in: query schema: *ref_55 - name: started_after description: filter on started after (exclusive) timestamp in: query schema: *ref_56 - name: success description: filter on successful jobs in: query schema: *ref_57 - name: job_kinds description: >- filter on job kind (values 'preview', 'script', 'dependencies', 'flow') separated by, in: query schema: *ref_58 - name: args description: >- filter on jobs containing those args as a json subset (@> in postgres) in: query schema: *ref_59 - name: result description: >- filter on jobs containing those result as a json subset (@> in postgres) in: query schema: *ref_60 - name: tag description: filter on jobs with a given tag/worker group in: query schema: *ref_61 - name: is_skipped description: is the job skipped in: query schema: type: boolean - name: is_flow_step description: is the job a flow step in: query schema: type: boolean responses: '200': description: All completed jobs content: application/json: schema: type: array items: type: object properties: &ref_65 workspace_id: type: string id: type: string format: uuid parent_job: type: string format: uuid created_by: type: string created_at: type: string format: date-time started_at: type: string format: date-time duration_ms: type: integer success: type: boolean script_path: type: string script_hash: type: string args: type: object additionalProperties: *ref_14 result: {} logs: type: string deleted: type: boolean raw_code: type: string canceled: type: boolean canceled_by: type: string canceled_reason: type: string job_kind: type: string enum: - script - preview - dependencies - flow - flowdependencies - appdependencies - flowpreview - script_hub - identity schedule_path: type: string permissioned_as: type: string description: > The user (u/userfoo) or group (g/groupfoo) whom the execution of this script will be permissioned_as and by extension its DT_TOKEN. flow_status: type: object properties: *ref_62 required: *ref_63 raw_flow: type: object properties: *ref_47 required: *ref_48 is_flow_step: type: boolean language: type: string enum: - python3 - deno - go - bash - powershell - postgresql - mysql - bigquery - snowflake - graphql - nativets - bun is_skipped: type: boolean email: type: string visible_to_owner: type: boolean mem_peak: type: integer tag: type: string priority: type: integer required: &ref_66 - id - created_by - duration_ms - created_at - started_at - success - canceled - job_kind - permissioned_as - is_flow_step - is_skipped - email - visible_to_owner - tag /w/{workspace}/jobs/list: get: summary: list all jobs operationId: listJobs tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: created_by description: mask to filter exact matching user creator in: query schema: *ref_39 - name: parent_job description: >- The parent job that is at the origin and responsible for the execution of this script if any in: query schema: *ref_34 - name: script_path_exact description: mask to filter exact matching path in: query schema: *ref_51 - name: script_path_start description: mask to filter matching starting path in: query schema: *ref_52 - name: schedule_path description: mask to filter by schedule path in: query schema: *ref_53 - name: script_hash description: mask to filter exact matching path in: query schema: *ref_54 - name: started_before description: filter on started before (inclusive) timestamp in: query schema: *ref_55 - name: started_after description: filter on started after (exclusive) timestamp in: query schema: *ref_56 - name: created_or_started_before description: >- filter on created_at for non non started job and started_at otherwise before (inclusive) timestamp in: query schema: &ref_89 type: string format: date-time - name: running description: filter on running jobs in: query schema: *ref_64 - name: created_or_started_after description: >- filter on created_at for non non started job and started_at otherwise after (exclusive) timestamp in: query schema: &ref_88 type: string format: date-time - name: job_kinds description: >- filter on job kind (values 'preview', 'script', 'dependencies', 'flow') separated by, in: query schema: *ref_58 - name: args description: >- filter on jobs containing those args as a json subset (@> in postgres) in: query schema: *ref_59 - name: tag description: filter on jobs with a given tag/worker group in: query schema: *ref_61 - name: result description: >- filter on jobs containing those result as a json subset (@> in postgres) in: query schema: *ref_60 - name: is_skipped description: is the job skipped in: query schema: type: boolean - name: is_flow_step description: is the job a flow step in: query schema: type: boolean - name: success description: filter on successful jobs in: query schema: type: boolean responses: '200': description: All jobs content: application/json: schema: type: array items: allOf: &ref_70 - oneOf: - type: object properties: *ref_65 required: *ref_66 - type: object properties: *ref_67 required: *ref_68 - type: object properties: type: type: string enum: - CompletedJob - QueuedJob discriminator: &ref_71 propertyName: type /jobs/db_clock: get: summary: get db clock operationId: getDbClock tags: - job responses: '200': description: the timestamp of the db that can be used to compute the drift content: application/json: schema: type: integer /w/{workspace}/jobs_u/get/{id}: get: summary: get job operationId: getJob tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: id in: path required: true schema: *ref_69 responses: '200': description: job details content: application/json: schema: allOf: *ref_70 discriminator: *ref_71 /w/{workspace}/jobs_u/get_logs/{id}: get: summary: get job logs operationId: getJob logs tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: id in: path required: true schema: *ref_69 responses: '200': description: job details content: text/plain: schema: type: string /w/{workspace}/jobs_u/getupdate/{id}: get: summary: get job updates operationId: getJobUpdates tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: id in: path required: true schema: *ref_69 - name: running in: query schema: type: boolean - name: log_offset in: query schema: type: integer responses: '200': description: job details content: application/json: schema: type: object properties: running: type: boolean completed: type: boolean new_logs: type: string mem_peak: type: integer /w/{workspace}/jobs_u/completed/get/{id}: get: summary: get completed job operationId: getCompletedJob tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: id in: path required: true schema: *ref_69 responses: '200': description: job details content: application/json: schema: type: object properties: *ref_65 required: *ref_66 /w/{workspace}/jobs_u/completed/get_result/{id}: get: summary: get completed job result operationId: getCompletedJobResult tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: id in: path required: true schema: *ref_69 responses: '200': description: result content: application/json: schema: {} /w/{workspace}/jobs_u/completed/get_result_maybe/{id}: get: summary: get completed job result if job is completed operationId: getCompletedJobResultMaybe tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: id in: path required: true schema: *ref_69 - name: get_started in: query schema: &ref_98 type: boolean responses: '200': description: result content: application/json: schema: type: object properties: completed: type: boolean result: {} started: type: boolean required: - completed - result /w/{workspace}/jobs/completed/delete/{id}: post: summary: delete completed job (erase content but keep run id) operationId: deleteCompletedJob tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: id in: path required: true schema: *ref_69 responses: '200': description: job details content: application/json: schema: type: object properties: *ref_65 required: *ref_66 /w/{workspace}/jobs_u/queue/cancel/{id}: post: summary: cancel queued job operationId: cancelQueuedJob tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: id in: path required: true schema: *ref_69 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/force_cancel/{id}: post: summary: force cancel queued job operationId: forceCancelQueuedJob tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: id in: path required: true schema: *ref_69 requestBody: description: reason required: true content: application/json: schema: type: object properties: reason: type: string responses: '200': description: job canceled content: text/plain: schema: type: string /w/{workspace}/jobs/job_signature/{id}/{resume_id}: get: summary: create an HMac signature given a job id and a resume id operationId: createJobSignature tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: id in: path required: true schema: *ref_69 - name: resume_id in: path required: true schema: type: integer - name: approver in: query schema: type: string responses: '200': description: job signature content: text/plain: schema: type: string /w/{workspace}/jobs/resume_urls/{id}/{resume_id}: get: summary: get resume urls given a job_id, resume_id and a nonce to resume a flow operationId: getResumeUrls tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: id in: path required: true schema: *ref_69 - name: resume_id in: path required: true schema: type: integer - name: approver in: query schema: type: string responses: '200': description: url endpoints content: application/json: schema: type: object properties: approvalPage: type: string resume: type: string cancel: type: string required: - approvalPage - resume - cancel /w/{workspace}/jobs_u/resume/{id}/{resume_id}/{signature}: get: summary: resume a job for a suspended flow operationId: resumeSuspendedJobGet tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: id in: path required: true schema: *ref_69 - name: payload description: > The base64 encoded payload that has been encoded as a JSON. e.g how to encode such payload encodeURIComponent `encodeURIComponent(btoa(JSON.stringify({a: 2})))` in: query schema: *ref_72 - name: resume_id in: path required: true schema: type: integer - name: signature in: path required: true schema: type: string - name: approver in: query schema: type: string responses: '201': description: job resumed content: text/plain: schema: type: string post: summary: resume a job for a suspended flow operationId: resumeSuspendedJobPost tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: id in: path required: true schema: *ref_69 - name: resume_id in: path required: true schema: type: integer - name: signature in: path required: true schema: type: string - name: approver in: query schema: type: string requestBody: required: true content: application/json: schema: type: object responses: '201': description: job resumed content: text/plain: schema: type: string /w/{workspace}/jobs/flow/resume/{id}: post: summary: resume a job for a suspended flow as an owner operationId: resumeSuspendedFlowAsOwner tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: id in: path required: true schema: *ref_69 requestBody: required: true content: application/json: schema: type: object responses: '201': description: job resumed content: text/plain: schema: type: string /w/{workspace}/jobs_u/cancel/{id}/{resume_id}/{signature}: get: summary: cancel a job for a suspended flow operationId: cancelSuspendedJobGet tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: id in: path required: true schema: *ref_69 - name: resume_id in: path required: true schema: type: integer - name: signature in: path required: true schema: type: string - name: approver in: query schema: type: string responses: '201': description: job canceled content: text/plain: schema: type: string post: summary: cancel a job for a suspended flow operationId: cancelSuspendedJobPost tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: id in: path required: true schema: *ref_69 - name: resume_id in: path required: true schema: type: integer - name: signature in: path required: true schema: type: string - name: approver in: query schema: type: string requestBody: required: true content: application/json: schema: type: object responses: '201': description: job canceled content: text/plain: schema: type: string /w/{workspace}/jobs_u/get_flow/{id}/{resume_id}/{signature}: get: summary: get parent flow job of suspended job operationId: getSuspendedJobFlow tags: - job parameters: - name: workspace in: path required: true schema: *ref_0 - name: id in: path required: true schema: *ref_69 - name: resume_id in: path required: true schema: type: integer - name: signature in: path required: true schema: type: string - name: approver in: query schema: type: string responses: '200': description: parent flow details content: application/json: schema: type: object properties: job: allOf: *ref_70 discriminator: *ref_71 approvers: type: array items: type: object properties: resume_id: type: integer approver: type: string required: - resume_id - approver required: - job - approvers /schedules/preview: post: summary: preview schedule operationId: previewSchedule tags: - schedule requestBody: description: schedule required: true content: application/json: schema: type: object properties: schedule: type: string timezone: type: string required: - schedule - timezone responses: '200': description: List of 5 estimated upcoming execution events (in UTC) content: application/json: schema: type: array items: type: string format: date-time /w/{workspace}/schedules/create: post: summary: create schedule operationId: createSchedule tags: - schedule parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: new schedule required: true content: application/json: schema: type: object properties: &ref_132 path: type: string schedule: type: string timezone: type: string script_path: type: string is_flow: type: boolean args: type: object additionalProperties: *ref_14 enabled: type: boolean on_failure: type: string on_failure_times: type: number on_failure_exact: type: boolean on_failure_extra_args: type: object additionalProperties: *ref_14 on_recovery: type: string on_recovery_times: type: number on_recovery_extra_args: type: object additionalProperties: *ref_14 ws_error_handler_muted: type: boolean required: &ref_133 - path - schedule - timezone - script_path - is_flow - args responses: '201': description: schedule created content: text/plain: schema: type: string /w/{workspace}/schedules/update/{path}: post: summary: update schedule operationId: updateSchedule tags: - schedule parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 requestBody: description: updated schedule required: true content: application/json: schema: type: object properties: &ref_134 schedule: type: string timezone: type: string args: type: object additionalProperties: *ref_14 on_failure: type: string on_failure_times: type: number on_failure_exact: type: boolean on_failure_extra_args: type: object additionalProperties: *ref_14 on_recovery: type: string on_recovery_times: type: number on_recovery_extra_args: type: object additionalProperties: *ref_14 ws_error_handler_muted: type: boolean required: &ref_135 - schedule - timezone - script_path - is_flow - args responses: '200': description: schedule updated content: text/plain: schema: type: string /w/{workspace}/schedules/setenabled/{path}: post: summary: set enabled schedule operationId: setScheduleEnabled tags: - schedule parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 requestBody: description: updated schedule enable required: true content: application/json: schema: type: object properties: enabled: type: boolean required: - enabled responses: '200': description: schedule enabled set content: text/plain: schema: type: string /w/{workspace}/schedules/delete/{path}: delete: summary: delete schedule operationId: deleteSchedule tags: - schedule parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '200': description: schedule deleted content: text/plain: schema: type: string /w/{workspace}/schedules/get/{path}: get: summary: get schedule operationId: getSchedule tags: - schedule parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '200': description: schedule deleted content: application/json: schema: type: object properties: &ref_73 path: type: string edited_by: type: string edited_at: type: string format: date-time schedule: type: string timezone: type: string enabled: type: boolean script_path: type: string is_flow: type: boolean args: type: object additionalProperties: *ref_14 extra_perms: type: object additionalProperties: type: boolean email: type: string error: type: string on_failure: type: string on_failure_times: type: number on_failure_exact: type: boolean on_failure_extra_args: type: object additionalProperties: *ref_14 on_recovery: type: string on_recovery_times: type: number on_recovery_extra_args: type: object additionalProperties: *ref_14 ws_error_handler_muted: type: boolean required: &ref_74 - path - edited_by - edited_at - schedule - script_path - timezone - extra_perms - is_flow - enabled - email /w/{workspace}/schedules/exists/{path}: get: summary: does schedule exists operationId: existsSchedule tags: - schedule parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '200': description: schedule exists content: application/json: schema: type: boolean /w/{workspace}/schedules/list: get: summary: list schedules operationId: listSchedules tags: - schedule parameters: - name: workspace in: path required: true schema: *ref_0 - name: page description: which page to return (start at 1, default 1) in: query schema: *ref_3 - name: per_page description: number of items to return for a given page (default 30, max 100) in: query schema: *ref_4 - name: path description: filter by path in: query schema: type: string - name: is_flow in: query schema: type: boolean responses: '200': description: schedule list content: application/json: schema: type: array items: type: object properties: *ref_73 required: *ref_74 /w/{workspace}/schedules/list_with_jobs: get: summary: list schedules with last 20 jobs operationId: listSchedulesWithJobs tags: - schedule parameters: - name: workspace in: path required: true schema: *ref_0 - name: page description: which page to return (start at 1, default 1) in: query schema: *ref_3 - name: per_page description: number of items to return for a given page (default 30, max 100) in: query schema: *ref_4 responses: '200': description: schedule list content: application/json: schema: type: array items: allOf: &ref_131 - type: object properties: *ref_73 required: *ref_74 - type: object properties: jobs: type: array items: type: object properties: id: type: string success: type: boolean duration_ms: type: number required: - id - success - duration_ms /w/{workspace}/schedules/setdefaulthandler: post: summary: Set default error or recoevery handler operationId: setDefaultErrorOrRecoveryHandler tags: - schedule parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: Handler description required: true content: application/json: schema: type: object properties: handler_type: type: string enum: - error - recovery override_existing: type: boolean path: type: string extra_args: type: object number_of_occurence: type: integer number_of_occurence_exact: type: boolean workspace_handler_muted: type: boolean required: - handler_type - override_existing - path responses: '201': description: default error handler set /groups/list: get: summary: list instance groups operationId: listInstanceGroups tags: - group responses: '200': description: instance group list content: application/json: schema: type: array items: type: object properties: &ref_76 name: type: string emails: type: array items: type: string required: &ref_77 - name /groups/get/{name}: get: summary: get instance group operationId: getInstanceGroup tags: - group parameters: - name: name in: path required: true schema: *ref_75 responses: '200': description: instance group content: application/json: schema: type: object properties: *ref_76 required: *ref_77 /w/{workspace}/groups/list: get: summary: list groups operationId: listGroups tags: - group parameters: - name: workspace in: path required: true schema: *ref_0 - name: page description: which page to return (start at 1, default 1) in: query schema: *ref_3 - name: per_page description: number of items to return for a given page (default 30, max 100) in: query schema: *ref_4 responses: '200': description: group list content: application/json: schema: type: array items: type: object properties: &ref_78 name: type: string summary: type: string members: type: array items: type: string extra_perms: type: object additionalProperties: type: boolean required: &ref_79 - name /w/{workspace}/groups/listnames: get: summary: list group names operationId: listGroupNames tags: - group parameters: - name: workspace in: path required: true schema: *ref_0 - name: only_member_of in: query description: only list the groups the user is member of (default false) schema: type: boolean responses: '200': description: group list content: application/json: schema: type: array items: type: string /w/{workspace}/groups/create: post: summary: create group operationId: createGroup tags: - group parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: create group required: true content: application/json: schema: type: object properties: name: type: string summary: type: string required: - name responses: '200': description: group created content: text/plain: schema: type: string /w/{workspace}/groups/update/{name}: post: summary: update group operationId: updateGroup tags: - group parameters: - name: workspace in: path required: true schema: *ref_0 - name: name in: path required: true schema: *ref_75 requestBody: description: updated group required: true content: application/json: schema: type: object properties: summary: type: string responses: '200': description: group updated content: text/plain: schema: type: string /w/{workspace}/groups/delete/{name}: delete: summary: delete group operationId: deleteGroup tags: - group parameters: - name: workspace in: path required: true schema: *ref_0 - name: name in: path required: true schema: *ref_75 responses: '200': description: group deleted content: text/plain: schema: type: string /w/{workspace}/groups/get/{name}: get: summary: get group operationId: getGroup tags: - group parameters: - name: workspace in: path required: true schema: *ref_0 - name: name in: path required: true schema: *ref_75 responses: '200': description: group content: application/json: schema: type: object properties: *ref_78 required: *ref_79 /w/{workspace}/groups/adduser/{name}: post: summary: add user to group operationId: addUserToGroup tags: - group parameters: - name: workspace in: path required: true schema: *ref_0 - name: name in: path required: true schema: *ref_75 requestBody: description: added user to group required: true content: application/json: schema: type: object properties: username: type: string responses: '200': description: user added to group content: text/plain: schema: type: string /w/{workspace}/groups/removeuser/{name}: post: summary: remove user to group operationId: removeUserToGroup tags: - group parameters: - name: workspace in: path required: true schema: *ref_0 - name: name in: path required: true schema: *ref_75 requestBody: description: added user to group required: true content: application/json: schema: type: object properties: username: type: string responses: '200': description: user removed from group content: text/plain: schema: type: string /w/{workspace}/folders/list: get: summary: list folders operationId: listFolders tags: - folder parameters: - name: workspace in: path required: true schema: *ref_0 - name: page description: which page to return (start at 1, default 1) in: query schema: *ref_3 - name: per_page description: number of items to return for a given page (default 30, max 100) in: query schema: *ref_4 responses: '200': description: folder list content: application/json: schema: type: array items: type: object properties: &ref_80 name: type: string owners: type: array items: type: string extra_perms: type: object additionalProperties: type: boolean required: &ref_81 - name - owners - extra_perms /w/{workspace}/folders/listnames: get: summary: list folder names operationId: listFolderNames tags: - folder parameters: - name: workspace in: path required: true schema: *ref_0 - name: only_member_of in: query description: only list the folders the user is member of (default false) schema: type: boolean responses: '200': description: folder list content: application/json: schema: type: array items: type: string /w/{workspace}/folders/create: post: summary: create folder operationId: createFolder tags: - folder parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: create folder required: true content: application/json: schema: type: object properties: name: type: string owners: type: array items: type: string extra_perms: additionalProperties: type: boolean required: - name responses: '200': description: folder created content: text/plain: schema: type: string /w/{workspace}/folders/update/{name}: post: summary: update folder operationId: updateFolder tags: - folder parameters: - name: workspace in: path required: true schema: *ref_0 - name: name in: path required: true schema: *ref_75 requestBody: description: update folder required: true content: application/json: schema: type: object properties: owners: type: array items: type: string extra_perms: additionalProperties: type: boolean responses: '200': description: folder updated content: text/plain: schema: type: string /w/{workspace}/folders/delete/{name}: delete: summary: delete folder operationId: deleteFolder tags: - folder parameters: - name: workspace in: path required: true schema: *ref_0 - name: name in: path required: true schema: *ref_75 responses: '200': description: folder deleted content: text/plain: schema: type: string /w/{workspace}/folders/get/{name}: get: summary: get folder operationId: getFolder tags: - folder parameters: - name: workspace in: path required: true schema: *ref_0 - name: name in: path required: true schema: *ref_75 responses: '200': description: folder content: application/json: schema: type: object properties: *ref_80 required: *ref_81 /w/{workspace}/folders/getusage/{name}: get: summary: get folder usage operationId: getFolderUsage tags: - folder parameters: - name: workspace in: path required: true schema: *ref_0 - name: name in: path required: true schema: *ref_75 responses: '200': description: folder content: application/json: schema: type: object properties: scripts: type: number flows: type: number apps: type: number resources: type: number variables: type: number schedules: type: number required: - scripts - flows - apps - resources - variables - schedules /w/{workspace}/folders/addowner/{name}: post: summary: add owner to folder operationId: addOwnerToFolder tags: - folder parameters: - name: workspace in: path required: true schema: *ref_0 - name: name in: path required: true schema: *ref_75 requestBody: description: owner user to folder required: true content: application/json: schema: type: object properties: owner: type: string responses: '200': description: owner added to folder content: text/plain: schema: type: string /w/{workspace}/folders/removeowner/{name}: post: summary: remove owner to folder operationId: removeOwnerToFolder tags: - folder parameters: - name: workspace in: path required: true schema: *ref_0 - name: name in: path required: true schema: *ref_75 requestBody: description: added owner to folder required: true content: application/json: schema: type: object properties: owner: type: string responses: '200': description: owner removed from folder content: text/plain: schema: type: string /workers/list: get: summary: list workers operationId: listWorkers tags: - worker parameters: - name: page description: which page to return (start at 1, default 1) in: query schema: *ref_3 - name: per_page description: number of items to return for a given page (default 30, max 100) in: query schema: *ref_4 responses: '200': description: a list of workers content: application/json: schema: type: array items: type: object properties: &ref_136 worker: type: string worker_instance: type: string last_ping: type: number started_at: type: string format: date-time ip: type: string jobs_executed: type: integer custom_tags: type: array items: type: string worker_group: type: string wm_version: type: string required: &ref_137 - worker - worker_instance - ping_at - started_at - ip - jobs_executed - worker_group - wm_version /configs/list_worker_groups: get: summary: list worker groups operationId: listWorkerGroups tags: - config responses: '200': description: a list of worker group configs content: application/json: schema: type: array items: type: object properties: name: type: string config: {} required: - name - config /configs/get/{name}: get: summary: get config operationId: get config tags: - config parameters: - name: name in: path required: true schema: *ref_75 responses: '200': description: a config content: application/json: schema: {} /configs/update/{name}: post: summary: Update config operationId: updateConfig tags: - config parameters: - name: name in: path required: true schema: *ref_75 requestBody: description: worker group required: true content: application/json: schema: {} responses: '200': description: Update a worker group content: text/plain: schema: type: string delete: summary: Delete Config operationId: deleteConfig tags: - config parameters: - name: name in: path required: true schema: *ref_75 responses: '200': description: Delete config content: text/plain: schema: type: string /w/{workspace}/acls/get/{kind}/{path}: get: summary: get granular acls operationId: getGranularAcls tags: - granular_acl parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 - name: kind in: path required: true schema: type: string enum: - script - group_ - resource - schedule - variable - flow - folder - app - raw_app responses: '200': description: acls content: application/json: schema: type: object additionalProperties: type: boolean /w/{workspace}/acls/add/{kind}/{path}: post: summary: add granular acls operationId: addGranularAcls tags: - granular_acl parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 - name: kind in: path required: true schema: type: string enum: - script - group_ - resource - schedule - variable - flow - folder - app - raw_app requestBody: description: acl to add required: true content: application/json: schema: type: object properties: owner: type: string write: type: boolean required: - owner responses: '200': description: granular acl added content: text/plain: schema: type: string /w/{workspace}/acls/remove/{kind}/{path}: post: summary: remove granular acls operationId: removeGranularAcls tags: - granular_acl parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 - name: kind in: path required: true schema: type: string enum: - script - group_ - resource - schedule - variable - flow - folder - app - raw_app requestBody: description: acl to add required: true content: application/json: schema: type: object properties: owner: type: string required: - owner responses: '200': description: granular acl removed content: text/plain: schema: type: string /w/{workspace}/capture_u/{path}: post: summary: update flow preview capture operationId: updateCapture tags: - capture parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '204': description: flow preview captured /w/{workspace}/capture/{path}: put: summary: create flow preview capture operationId: createCapture tags: - capture parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '201': description: flow preview capture created get: summary: get flow preview capture operationId: getCapture tags: - capture parameters: - name: workspace in: path required: true schema: *ref_0 - name: path in: path required: true schema: *ref_15 responses: '200': description: captured flow preview content: application/json: schema: {} '404': description: capture does not exist for this flow /w/{workspace}/favorites/star: post: summary: star item operationId: star tags: - favorite parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: content: application/json: schema: type: object properties: path: type: string favorite_kind: type: string enum: - flow - app - script - raw_app responses: '200': description: star item /w/{workspace}/favorites/unstar: post: summary: unstar item operationId: unstar tags: - favorite parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: content: application/json: schema: type: object properties: path: type: string favorite_kind: type: string enum: - flow - app - script - raw_app responses: '200': description: unstar item /w/{workspace}/inputs/history: get: summary: List Inputs used in previously completed jobs operationId: getInputHistory tags: - input parameters: - name: workspace in: path required: true schema: *ref_0 - name: runnable_id in: query schema: &ref_84 type: string - name: runnable_type in: query schema: &ref_85 type: string enum: &ref_104 - ScriptHash - ScriptPath - FlowPath - name: page description: which page to return (start at 1, default 1) in: query schema: *ref_3 - name: per_page description: number of items to return for a given page (default 30, max 100) in: query schema: *ref_4 responses: '200': description: Input history for completed jobs content: application/json: schema: type: array items: type: object properties: *ref_82 required: *ref_83 /w/{workspace}/inputs/list: get: summary: List saved Inputs for a Runnable operationId: listInputs tags: - input parameters: - name: workspace in: path required: true schema: *ref_0 - name: runnable_id in: query schema: *ref_84 - name: runnable_type in: query schema: *ref_85 - name: page description: which page to return (start at 1, default 1) in: query schema: *ref_3 - name: per_page description: number of items to return for a given page (default 30, max 100) in: query schema: *ref_4 responses: '200': description: Saved Inputs for a Runnable content: application/json: schema: type: array items: type: object properties: *ref_82 required: *ref_83 /w/{workspace}/inputs/create: post: summary: Create an Input for future use in a script or flow operationId: createInput tags: - input parameters: - name: workspace in: path required: true schema: *ref_0 - name: runnable_id in: query schema: *ref_84 - name: runnable_type in: query schema: *ref_85 requestBody: description: Input required: true content: application/json: schema: type: object properties: &ref_100 name: type: string args: type: object required: &ref_101 - name - args - created_by responses: '201': description: Input created content: text/plain: schema: type: string format: uuid /w/{workspace}/inputs/update: post: summary: Update an Input operationId: updateInput tags: - input parameters: - name: workspace in: path required: true schema: *ref_0 requestBody: description: UpdateInput required: true content: application/json: schema: type: object properties: &ref_102 id: type: string name: type: string is_public: type: boolean required: &ref_103 - id - name - is_public responses: '201': description: Input updated content: text/plain: schema: type: string format: uuid /w/{workspace}/inputs/delete/{input}: post: summary: Delete a Saved Input operationId: deleteInput tags: - input parameters: - name: workspace in: path required: true schema: *ref_0 - name: input in: path required: true schema: &ref_97 type: string responses: '200': description: Input deleted content: text/plain: schema: type: string format: uuid components: securitySchemes: bearerAuth: type: http scheme: bearer cookieAuth: type: apiKey in: cookie name: token parameters: Key: name: key in: path required: true schema: *ref_7 WorkspaceId: name: workspace in: path required: true schema: *ref_0 VersionId: name: version in: path required: true schema: *ref_86 Token: name: token in: path required: true schema: *ref_87 AccountId: name: id in: path required: true schema: *ref_19 ClientName: name: client_name in: path required: true schema: *ref_18 ScriptPath: name: path in: path required: true schema: *ref_27 ScriptHash: name: hash in: path required: true schema: *ref_31 JobId: name: id in: path required: true schema: *ref_69 Path: name: path in: path required: true schema: *ref_15 PathId: name: id in: path required: true schema: *ref_22 Name: name: name in: path required: true schema: *ref_75 Page: name: page description: which page to return (start at 1, default 1) in: query schema: *ref_3 PerPage: name: per_page description: number of items to return for a given page (default 30, max 100) in: query schema: *ref_4 OrderDesc: name: order_desc description: order by desc order (default true) in: query schema: *ref_38 CreatedBy: name: created_by description: mask to filter exact matching user creator in: query schema: *ref_39 ParentJob: name: parent_job description: >- The parent job that is at the origin and responsible for the execution of this script if any in: query schema: *ref_34 NewJobId: name: job_id description: >- The job id to assign to the created job. if missing, job is chosen randomly using the ULID scheme. If a job id already exists in the queue or as a completed job, the request to create one will fail (Bad Request) in: query schema: *ref_35 IncludeHeader: name: include_header description: > List of headers's keys (separated with ',') whove value are added to the args Header's key lowercased and '-'' replaced to '_' such that 'Content-Type' becomes the 'content_type' arg key in: query schema: *ref_36 QueueLimit: name: queue_limit description: > The maximum size of the queue for which the request would get rejected if that job would push it above that limit in: query schema: *ref_37 Payload: name: payload description: > The base64 encoded payload that has been encoded as a JSON. e.g how to encode such payload encodeURIComponent `encodeURIComponent(btoa(JSON.stringify({a: 2})))` in: query schema: *ref_72 ScriptStartPath: name: script_path_start description: mask to filter matching starting path in: query schema: *ref_52 SchedulePath: name: schedule_path description: mask to filter by schedule path in: query schema: *ref_53 ScriptExactPath: name: script_path_exact description: mask to filter exact matching path in: query schema: *ref_51 ScriptExactHash: name: script_hash description: mask to filter exact matching path in: query schema: *ref_54 StartedBefore: name: started_before description: filter on started before (inclusive) timestamp in: query schema: *ref_55 StartedAfter: name: started_after description: filter on started after (exclusive) timestamp in: query schema: *ref_56 CreatedOrStartedAfter: name: created_or_started_after description: >- filter on created_at for non non started job and started_at otherwise after (exclusive) timestamp in: query schema: *ref_88 CreatedOrStartedBefore: name: created_or_started_before description: >- filter on created_at for non non started job and started_at otherwise before (inclusive) timestamp in: query schema: *ref_89 Success: name: success description: filter on successful jobs in: query schema: *ref_57 Suspended: name: suspended description: filter on suspended jobs in: query schema: *ref_90 Running: name: running description: filter on running jobs in: query schema: *ref_64 ArgsFilter: name: args description: filter on jobs containing those args as a json subset (@> in postgres) in: query schema: *ref_59 Tag: name: tag description: filter on jobs with a given tag/worker group in: query schema: *ref_61 ResultFilter: name: result description: filter on jobs containing those result as a json subset (@> in postgres) in: query schema: *ref_60 After: name: after description: filter on created after (exclusive) timestamp in: query schema: *ref_91 Before: name: before description: filter on created before (exclusive) timestamp in: query schema: *ref_92 Username: name: username description: filter on exact username of user in: query schema: *ref_93 Operation: name: operation description: filter on exact or prefix name of operation in: query schema: *ref_94 ResourceName: name: resource description: filter on exact or prefix name of resource in: query schema: *ref_95 ActionKind: name: action_kind description: filter on type of operation in: query schema: *ref_96 JobKinds: name: job_kinds description: >- filter on job kind (values 'preview', 'script', 'dependencies', 'flow') separated by, in: query schema: *ref_58 RunnableId: name: runnable_id in: query schema: *ref_84 RunnableTypeQuery: name: runnable_type in: query schema: *ref_85 InputId: name: input in: path required: true schema: *ref_97 GetStarted: name: get_started in: query schema: *ref_98 schemas: Script: type: object properties: *ref_29 required: *ref_30 NewScript: type: object properties: *ref_32 required: *ref_33 NewScriptWithDraft: allOf: *ref_99 ScriptArgs: type: object additionalProperties: *ref_14 Input: type: object properties: *ref_82 required: *ref_83 CreateInput: type: object properties: *ref_100 required: *ref_101 UpdateInput: type: object properties: *ref_102 required: *ref_103 RunnableType: type: string enum: *ref_104 QueuedJob: type: object properties: *ref_67 required: *ref_68 CompletedJob: type: object properties: *ref_65 required: *ref_66 Job: allOf: *ref_70 discriminator: *ref_71 User: type: object properties: *ref_8 required: *ref_9 Usage: type: object properties: *ref_105 Login: type: object properties: *ref_106 required: *ref_107 NewUser: type: object properties: *ref_108 required: *ref_109 EditWorkspaceUser: type: object properties: *ref_110 TruncatedToken: type: object properties: *ref_111 required: *ref_112 NewToken: type: object properties: *ref_113 NewTokenImpersonate: type: object properties: *ref_114 required: *ref_115 ListableVariable: type: object properties: *ref_16 required: *ref_17 ContextualVariable: type: object properties: *ref_116 required: *ref_117 CreateVariable: type: object properties: *ref_118 required: *ref_119 EditVariable: type: object properties: *ref_120 AuditLog: type: object properties: *ref_1 required: *ref_2 MainArgSignature: type: object properties: type: type: string enum: - Valid - Invalid error: type: string star_args: type: boolean star_kwargs: type: boolean args: type: array items: type: object properties: name: type: string typ: oneOf: - type: string enum: - float - int - bool - email - unknown - bytes - dict - datetime - sql - type: object properties: resource: type: string nullable: true required: - resource - type: object properties: str: type: array items: type: string nullable: true required: - str - type: object properties: object: type: array items: type: object properties: key: type: string typ: oneOf: - type: string enum: - float - int - bool - email - unknown - bytes - dict - datetime - sql - type: object properties: str: {} required: - str required: - key - typ required: - object - type: object properties: list: oneOf: - type: string enum: - float - int - bool - email - unknown - bytes - dict - datetime - sql - type: object properties: str: {} required: - str nullable: true required: - list has_default: type: boolean default: {} required: - name - typ required: - star_args - start_kwargs - args - type - error Preview: type: object properties: *ref_121 required: *ref_122 CreateResource: type: object properties: *ref_123 required: *ref_124 EditResource: type: object properties: *ref_125 Resource: type: object properties: *ref_126 required: *ref_127 ListableResource: type: object properties: *ref_128 required: *ref_129 ResourceType: type: object properties: *ref_20 required: *ref_21 EditResourceType: type: object properties: *ref_130 Schedule: type: object properties: *ref_73 required: *ref_74 ScheduleWJobs: allOf: *ref_131 NewSchedule: type: object properties: *ref_132 required: *ref_133 EditSchedule: type: object properties: *ref_134 required: *ref_135 Group: type: object properties: *ref_78 required: *ref_79 InstanceGroup: type: object properties: *ref_76 required: *ref_77 Folder: type: object properties: *ref_80 required: *ref_81 WorkerPing: type: object properties: *ref_136 required: *ref_137 UserWorkspaceList: type: object properties: *ref_138 required: *ref_139 CreateWorkspace: type: object properties: *ref_140 required: *ref_141 Workspace: type: object properties: *ref_5 required: *ref_6 WorkspaceInvite: type: object properties: *ref_12 required: *ref_13 GlobalUserInfo: type: object properties: *ref_10 required: *ref_11 Flow: allOf: *ref_42 FlowMetadata: type: object properties: *ref_142 required: *ref_143 OpenFlowWPath: allOf: *ref_43 FlowPreview: type: object properties: *ref_144 required: *ref_145 RestartedFrom: type: object properties: *ref_146 Policy: type: object properties: *ref_44 ListableApp: type: object properties: *ref_147 required: *ref_148 ListableRawApp: type: object properties: *ref_149 required: *ref_150 AppWithLastVersion: type: object properties: *ref_45 required: *ref_46 AppWithLastVersionWDraft: allOf: *ref_151 SlackToken: type: object properties: access_token: type: string team_id: type: string team_name: type: string bot: type: object properties: bot_access_token: type: string required: - access_token - team_id - team_name - bot TokenResponse: type: object properties: *ref_152 required: *ref_153 HubScriptKind: name: kind schema: *ref_28 StaticTransform: type: object properties: *ref_154 required: *ref_155 JavascriptTransform: type: object properties: *ref_156 required: *ref_157 InputTransform: oneOf: *ref_23 discriminator: *ref_24 RawScript: type: object properties: *ref_158 required: *ref_159 PathScript: type: object properties: *ref_160 required: *ref_161 PathFlow: type: object properties: *ref_162 required: *ref_163 FlowModule: type: object properties: *ref_25 required: *ref_26 ForloopFlow: type: object properties: *ref_164 required: *ref_165 BranchOne: type: object properties: *ref_166 required: *ref_167 BranchAll: type: object properties: *ref_168 required: *ref_169 Identity: type: object properties: *ref_170 required: *ref_171 Graphql: type: object properties: *ref_172 required: *ref_173 FlowModuleValue: oneOf: *ref_174 discriminator: *ref_175 Retry: type: object properties: *ref_176 FlowValue: type: object properties: *ref_47 required: *ref_48 OpenFlow: type: object properties: *ref_40 required: *ref_41 FlowStatusModule: type: object properties: *ref_49 required: *ref_50 FlowStatus: type: object properties: *ref_62 required: *ref_63 Http: type: object properties: type: type: string enum: - http required: - type