diff --git a/backend/windmill-api/openapi-deref.yaml b/backend/windmill-api/openapi-deref.yaml index e69de29bb2..02fc0b0eb0 100644 --- a/backend/windmill-api/openapi-deref.yaml +++ b/backend/windmill-api/openapi-deref.yaml @@ -0,0 +1,8907 @@ +openapi: 3.0.3 +info: + version: 1.142.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_20 + 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_openai_resource_path + - 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_88 + type: string + format: date-time + - name: after + description: filter on created after (exclusive) timestamp + in: query + schema: &ref_87 + type: string + format: date-time + - name: username + description: filter on exact username of user + in: query + schema: &ref_89 + type: string + - name: operation + description: filter on exact or prefix name of operation + in: query + schema: &ref_90 + type: string + - name: resource + description: filter on exact or prefix name of resource + in: query + schema: &ref_91 + type: string + - name: action_kind + description: filter on type of operation + in: query + schema: &ref_92 + 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_101 + email: + type: string + password: + type: string + required: &ref_102 + - 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_103 + email: + type: string + username: + type: string + is_admin: + type: boolean + required: &ref_104 + - 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_105 + 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_13 + 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_133 + 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_134 + - 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_135 + id: + type: string + name: + type: string + username: + type: string + required: &ref_136 + - 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 + /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/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_9 + 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_10 + - 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_11 + workspace_id: + type: string + email: + type: string + is_admin: + type: boolean + operator: + type: boolean + required: &ref_12 + - 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_7 + 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_100 + executions: + type: number + required: &ref_8 + - 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_7 + required: *ref_8 + /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_9 + required: *ref_10 + /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_11 + required: *ref_12 + /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 + error_handler: + type: string + /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/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_openai_resource_path: + post: + summary: edit OpenAI resource path + operationId: editOpenaiResourcePath + tags: + - workspace + parameters: + - name: workspace + in: path + required: true + schema: *ref_0 + requestBody: + description: WorkspaceOpenaiResourcePath + required: true + content: + application/json: + schema: + type: object + properties: + openai_resource_path: + type: string + responses: + '200': + description: status + content: + text/plain: + schema: + type: string + /w/{workspace}/workspaces/exists_openai_resource_path: + get: + summary: OpenAI resource path exists + operationId: existsOpenaiResourcePath + tags: + - workspace + parameters: + - name: workspace + in: path + required: true + schema: *ref_0 + responses: + '200': + description: status + content: + text/plain: + schema: + type: boolean + /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 + 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_7 + required: *ref_8 + /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_108 + 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_109 + label: + type: string + expiration: + type: string + format: date-time + impersonate_email: + type: string + required: &ref_110 + - 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_106 + 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_107 + - 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_113 + path: + type: string + value: + type: string + is_secret: + type: boolean + description: + type: string + account: + type: integer + is_oauth: + type: boolean + required: &ref_114 + - 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_13 + 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_13 + - name: already_encrypted + in: query + schema: + type: boolean + requestBody: + description: updated variable + required: true + content: + application/json: + schema: + type: object + properties: &ref_115 + 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_13 + - 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_14 + 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_15 + - workspace_id + - path + - is_secret + - extra_perms + /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_13 + 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_14 + required: *ref_15 + /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_111 + name: + type: string + value: + type: string + description: + type: string + required: &ref_112 + - 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_16 + 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_16 + 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_146 + access_token: + type: string + expires_in: + type: integer + refresh_token: + type: string + scope: + type: array + items: + type: string + required: &ref_147 + - 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_17 + 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_17 + 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_118 + path: + type: string + value: {} + description: + type: string + resource_type: + type: string + required: &ref_119 + - 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_13 + 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_13 + requestBody: + description: updated resource + required: true + content: + application/json: + schema: + type: object + properties: &ref_120 + 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_13 + 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_13 + responses: + '200': + description: resource + content: + application/json: + schema: + type: object + properties: &ref_121 + 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_122 + - path + - resource_type + - is_oauth + /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_13 + 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_13 + 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_123 + 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_124 + - path + - resource_type + - is_oauth + - is_linked + - is_refreshed + /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_18 + workspace_id: + type: string + name: + type: string + schema: {} + description: + type: string + required: &ref_19 + - 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_13 + 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_13 + requestBody: + description: updated resource_type + required: true + content: + application/json: + schema: + type: object + properties: &ref_125 + 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_13 + responses: + '200': + description: resource_type deleted + content: + application/json: + schema: + type: object + properties: *ref_18 + required: *ref_19 + /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_13 + 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_18 + required: *ref_19 + /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 + /scripts/hub/list: + get: + summary: list all available hub scripts + operationId: listHubScripts + tags: + - script + 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 + approved: + type: boolean + kind: + type: string + enum: + - script + - failure + - trigger + - command + - approval + votes: + type: number + views: + type: number + required: + - id + - ask_id + - summary + - app + - approved + - kind + - views + - votes + /flows/hub/list: + get: + summary: list all available 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_20 + responses: + '200': + description: flow + content: + application/json: + schema: + type: object + properties: + flow: + type: object + properties: &ref_38 + summary: + type: string + description: + type: string + value: + type: object + properties: &ref_45 + modules: + type: array + items: + type: object + properties: &ref_23 + id: + type: string + value: + oneOf: &ref_168 + - type: object + properties: &ref_152 + input_transforms: + type: object + additionalProperties: + oneOf: &ref_21 + - type: object + properties: &ref_148 + value: {} + type: + type: string + enum: + - javascript + required: &ref_149 + - expr + - type + - type: object + properties: &ref_150 + expr: + type: string + type: + type: string + enum: + - javascript + required: &ref_151 + - expr + - type + discriminator: &ref_22 + propertyName: type + mapping: + static: '#/components/schemas/StaticTransform' + javascript: '#/components/schemas/JavascriptTransform' + content: + type: string + language: + type: string + enum: + - deno + - python3 + - go + - bash + - 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_153 + - type + - content + - language + - input_transforms + - type: object + properties: &ref_154 + input_transforms: + type: object + additionalProperties: + oneOf: *ref_21 + discriminator: *ref_22 + path: + type: string + hash: + type: string + type: + type: string + enum: + - script + required: &ref_155 + - type + - path + - input_transforms + - type: object + properties: &ref_156 + input_transforms: + type: object + additionalProperties: + oneOf: *ref_21 + discriminator: *ref_22 + path: + type: string + type: + type: string + enum: + - flow + required: &ref_157 + - type + - path + - input_transforms + - type: object + properties: &ref_158 + modules: + type: array + items: + type: object + properties: *ref_23 + required: &ref_24 + - value + - id + iterator: + oneOf: *ref_21 + discriminator: *ref_22 + skip_failures: + type: boolean + type: + type: string + enum: + - forloopflow + parallel: + type: boolean + required: &ref_159 + - modules + - iterator + - skip_failures + - type + - type: object + properties: &ref_160 + branches: + type: array + items: + type: object + properties: + summary: + type: string + expr: + type: string + modules: + type: array + items: + type: object + properties: *ref_23 + required: *ref_24 + required: + - modules + - expr + default: + type: array + items: + type: object + properties: *ref_23 + required: *ref_24 + required: + - modules + type: + type: string + enum: + - branchone + required: &ref_161 + - branches + - default + - type + - type: object + properties: &ref_162 + branches: + type: array + items: + type: object + properties: + summary: + type: string + skip_failure: + type: boolean + modules: + type: array + items: + type: object + properties: *ref_23 + required: *ref_24 + required: + - modules + - expr + type: + type: string + enum: + - branchall + parallel: + type: boolean + required: &ref_163 + - branches + - type + - type: object + properties: &ref_164 + type: + type: string + enum: + - identity + flow: + type: boolean + required: &ref_165 + - type + - type: object + properties: &ref_166 + type: + type: string + enum: + - graphql + required: &ref_167 + - type + discriminator: &ref_169 + 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_21 + discriminator: *ref_22 + 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 + retry: + type: object + properties: &ref_170 + 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_24 + failure_module: + type: object + properties: *ref_23 + required: *ref_24 + same_worker: + type: boolean + required: &ref_46 + - modules + schema: + type: object + required: &ref_39 + - summary + - value + /apps/hub/list: + get: + summary: list all available 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_20 + 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_25 + 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_25 + 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 + /w/{workspace}/scripts/list: + get: + summary: list all available 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_36 + type: boolean + - name: created_by + description: mask to filter exact matching user creator + in: query + schema: &ref_37 + 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: kind + description: | + (default regardless) + script kind + 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 available scripts + content: + application/json: + schema: + type: array + items: + type: object + properties: &ref_26 + 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 + - 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: array + items: + type: integer + concurrency_time_window_s: + type: array + items: + type: integer + required: &ref_27 + - 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 available 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_25 + 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_29 + 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 + - 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: array + items: + type: integer + concurrency_time_window_s: + type: array + items: + type: integer + required: &ref_30 + - path + - summary + - description + - content + - language + responses: + '201': + description: script created + 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_25 + 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_28 + type: string + responses: + '200': + description: script details + content: + application/json: + schema: + type: object + properties: *ref_26 + required: *ref_27 + /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_28 + responses: + '200': + description: script details + content: + application/json: + schema: + type: object + properties: *ref_26 + required: *ref_27 + /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_25 + 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_25 + responses: + '200': + description: script details + content: + application/json: + schema: + type: object + properties: *ref_26 + required: *ref_27 + /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_25 + responses: + '200': + description: script details + content: + application/json: + schema: + allOf: &ref_94 + - type: object + properties: *ref_29 + required: *ref_30 + - type: object + properties: + draft: + type: object + properties: *ref_29 + required: *ref_30 + 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_25 + 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_84 + type: string + - name: path + in: path + required: true + schema: *ref_25 + 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_25 + 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_28 + responses: + '200': + description: script details + content: + application/json: + schema: + type: object + properties: *ref_26 + required: *ref_27 + /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_25 + 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_28 + 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_25 + - 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_31 + 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_32 + 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_33 {} + 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_25 + - 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_31 + - 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_32 + - 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_34 + 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_35 + type: string + requestBody: + description: script args + required: true + content: + application/json: + schema: + type: object + additionalProperties: *ref_33 + 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_25 + - 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_31 + - 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_32 + - 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_34 + - 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_35 + requestBody: + description: script args + required: true + content: + application/json: + schema: + type: object + additionalProperties: *ref_33 + 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_25 + - 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_31 + - 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_32 + - 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_34 + - 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_35 + - 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_69 + 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_25 + - 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_34 + - 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_35 + - 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_32 + requestBody: + description: script args + required: true + content: + application/json: + schema: + type: object + additionalProperties: *ref_33 + 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_25 + - 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_34 + - 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_35 + - 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_32 + requestBody: + description: script args + required: true + content: + application/json: + schema: + type: object + additionalProperties: *ref_33 + 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 available 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: + get: + summary: list all available 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_36 + - name: created_by + description: mask to filter exact matching user creator + in: query + schema: *ref_37 + - 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 available flow + content: + application/json: + schema: + type: array + items: + allOf: + - allOf: &ref_40 + - type: object + properties: *ref_38 + required: *ref_39 + - type: object + properties: &ref_137 + 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 + required: &ref_138 + - 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_25 + responses: + '200': + description: flow details + content: + application/json: + schema: + allOf: *ref_40 + /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_25 + responses: + '200': + description: flow details with draft + content: + application/json: + schema: + allOf: + - allOf: *ref_40 + - type: object + properties: + draft: + allOf: *ref_40 + /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_25 + 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_41 + - type: object + properties: *ref_38 + required: *ref_39 + - type: object + properties: + path: + type: string + tag: + type: string + 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_25 + requestBody: + description: Partially filled flow + required: true + content: + application/json: + schema: + allOf: *ref_41 + 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_25 + 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_25 + 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_25 + - 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_79 + 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_80 + - id + - name + - args + - created_by + - created_at + - is_public + /w/{workspace}/raw_apps/list: + get: + summary: list all available 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_36 + - name: created_by + description: mask to filter exact matching user creator + in: query + schema: *ref_37 + - 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 available raw apps + content: + application/json: + schema: + type: array + items: + type: object + properties: &ref_143 + 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_144 + - 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_13 + 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_83 + type: number + - name: path + in: path + required: true + schema: *ref_25 + responses: + '200': + description: app details + content: + text/javascript: + schema: + type: string + /w/{workspace}/apps/list: + get: + summary: list all available 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_36 + - name: created_by + description: mask to filter exact matching user creator + in: query + schema: *ref_37 + - 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 available apps + content: + application/json: + schema: + type: array + items: + type: object + properties: &ref_141 + 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_142 + - 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_42 + 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_13 + 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_25 + responses: + '200': + description: app details + content: + application/json: + schema: + type: object + properties: &ref_43 + 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_42 + execution_mode: + type: string + enum: + - viewer + - publisher + - anonymous + extra_perms: + type: object + additionalProperties: + type: boolean + required: &ref_44 + - 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_25 + responses: + '200': + description: app details with draft + content: + application/json: + schema: + allOf: &ref_145 + - type: object + properties: *ref_43 + required: *ref_44 + - 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_13 + responses: + '200': + description: app details + content: + application/json: + schema: + type: object + properties: *ref_43 + required: *ref_44 + /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_13 + 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_20 + responses: + '200': + description: app details + content: + application/json: + schema: + type: object + properties: *ref_43 + required: *ref_44 + /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_25 + 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_13 + 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_13 + 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_25 + 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_42 + 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_25 + 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 + 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_25 + - 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_31 + - 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_32 + - 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_34 + - 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_33 + 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_28 + - 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_31 + - 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_32 + - 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_34 + - 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_34 + - 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_32 + requestBody: + description: preview + required: true + content: + application/json: + schema: + type: object + properties: &ref_116 + content: + type: string + path: + type: string + args: + type: object + additionalProperties: *ref_33 + language: + type: string + enum: + - python3 + - deno + - go + - bash + - postgresql + - mysql + - bigquery + - snowflake + - graphql + - nativets + - bun + tag: + type: string + kind: + type: string + enum: + - code + - identity + - http + required: &ref_117 + - 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_34 + - 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_32 + requestBody: + description: preview + required: true + content: + application/json: + schema: + type: object + properties: &ref_139 + value: + type: object + properties: *ref_45 + required: *ref_46 + path: + type: string + args: + type: object + additionalProperties: *ref_33 + tag: + type: string + required: &ref_140 + - 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 available 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_36 + - name: created_by + description: mask to filter exact matching user creator + in: query + schema: *ref_37 + - 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_31 + - name: script_path_exact + description: mask to filter exact matching path + in: query + schema: &ref_49 + type: string + - name: script_path_start + description: mask to filter matching starting path + in: query + schema: &ref_50 + type: string + - name: schedule_path + description: mask to filter by schedule path + in: query + schema: &ref_51 + type: string + - name: script_hash + description: mask to filter exact matching path + in: query + schema: &ref_52 + type: string + - name: started_before + description: filter on created before (inclusive) timestamp + in: query + schema: &ref_53 + type: string + format: date-time + - name: started_after + description: filter on created after (exclusive) timestamp + in: query + schema: &ref_54 + type: string + format: date-time + - name: success + description: filter on successful jobs + in: query + schema: &ref_55 + type: boolean + - name: job_kinds + description: >- + filter on job kind (values 'preview', 'script', 'dependencies', + 'flow') separated by, + in: query + schema: &ref_56 + type: string + - name: suspended + description: filter on suspended jobs + in: query + schema: &ref_85 + type: boolean + - name: running + description: filter on running jobs + in: query + schema: &ref_86 + type: boolean + - name: args + description: >- + filter on jobs containing those args as a json subset (@> in + postgres) + in: query + schema: &ref_57 + type: string + - name: result + description: >- + filter on jobs containing those result as a json subset (@> in + postgres) + in: query + schema: &ref_58 + type: string + - name: tag + description: filter on jobs with a given tag/worker group + in: query + schema: &ref_59 + type: string + responses: + '200': + description: All available queued jobs + content: + application/json: + schema: + type: array + items: + type: object + properties: &ref_64 + 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_33 + 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 + - 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_60 + step: + type: integer + modules: + type: array + items: + type: object + properties: &ref_47 + 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_48 + - type + failure_module: + allOf: + - type: object + properties: *ref_47 + required: *ref_48 + - 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_61 + - step + - modules + - failure_module + raw_flow: + type: object + properties: *ref_45 + required: *ref_46 + is_flow_step: + type: boolean + language: + type: string + enum: + - python3 + - deno + - go + - bash + - postgresql + - mysql + - bigquery + - snowflake + - graphql + - nativets + - bun + email: + type: string + visible_to_owner: + type: boolean + mem_peak: + type: integer + tag: + type: string + required: &ref_65 + - id + - running + - canceled + - job_kind + - permissioned_as + - is_flow_step + - email + - visible_to_owner + - tag + /w/{workspace}/jobs/completed/list: + get: + summary: list all available 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_36 + - name: created_by + description: mask to filter exact matching user creator + in: query + schema: *ref_37 + - 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_31 + - name: script_path_exact + description: mask to filter exact matching path + in: query + schema: *ref_49 + - name: script_path_start + description: mask to filter matching starting path + in: query + schema: *ref_50 + - name: schedule_path + description: mask to filter by schedule path + in: query + schema: *ref_51 + - name: script_hash + description: mask to filter exact matching path + in: query + schema: *ref_52 + - name: started_before + description: filter on created before (inclusive) timestamp + in: query + schema: *ref_53 + - name: started_after + description: filter on created after (exclusive) timestamp + in: query + schema: *ref_54 + - name: success + description: filter on successful jobs + in: query + schema: *ref_55 + - name: job_kinds + description: >- + filter on job kind (values 'preview', 'script', 'dependencies', + 'flow') separated by, + in: query + schema: *ref_56 + - name: args + description: >- + filter on jobs containing those args as a json subset (@> in + postgres) + in: query + schema: *ref_57 + - name: result + description: >- + filter on jobs containing those result as a json subset (@> in + postgres) + in: query + schema: *ref_58 + - name: tag + description: filter on jobs with a given tag/worker group + in: query + schema: *ref_59 + - 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 available completed jobs + content: + application/json: + schema: + type: array + items: + type: object + properties: &ref_62 + 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_33 + 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 + - 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_60 + required: *ref_61 + raw_flow: + type: object + properties: *ref_45 + required: *ref_46 + is_flow_step: + type: boolean + language: + type: string + enum: + - python3 + - deno + - go + - bash + - 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 + required: &ref_63 + - 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 available 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_37 + - 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_31 + - name: script_path_exact + description: mask to filter exact matching path + in: query + schema: *ref_49 + - name: script_path_start + description: mask to filter matching starting path + in: query + schema: *ref_50 + - name: schedule_path + description: mask to filter by schedule path + in: query + schema: *ref_51 + - name: script_hash + description: mask to filter exact matching path + in: query + schema: *ref_52 + - name: started_before + description: filter on created before (inclusive) timestamp + in: query + schema: *ref_53 + - name: started_after + description: filter on created after (exclusive) timestamp + in: query + schema: *ref_54 + - name: job_kinds + description: >- + filter on job kind (values 'preview', 'script', 'dependencies', + 'flow') separated by, + in: query + schema: *ref_56 + - name: args + description: >- + filter on jobs containing those args as a json subset (@> in + postgres) + in: query + schema: *ref_57 + - name: tag + description: filter on jobs with a given tag/worker group + in: query + schema: *ref_59 + - name: result + description: >- + filter on jobs containing those result as a json subset (@> in + postgres) + in: query + schema: *ref_58 + - 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_66 + - oneOf: + - type: object + properties: *ref_62 + required: *ref_63 + - type: object + properties: *ref_64 + required: *ref_65 + - type: object + properties: + type: + type: string + enum: + - CompletedJob + - QueuedJob + discriminator: &ref_67 + propertyName: type + /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_68 + type: string + format: uuid + responses: + '200': + description: job details + content: + application/json: + schema: + allOf: *ref_66 + discriminator: *ref_67 + /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_68 + 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_68 + - 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_68 + responses: + '200': + description: job details + content: + application/json: + schema: + type: object + properties: *ref_62 + required: *ref_63 + /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_68 + 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_68 + responses: + '200': + description: result + content: + application/json: + schema: + type: object + properties: + completed: + type: boolean + result: {} + 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_68 + responses: + '200': + description: job details + content: + application/json: + schema: + type: object + properties: *ref_62 + required: *ref_63 + /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_68 + 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_68 + 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_68 + - 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_68 + - 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_68 + - 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_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 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_68 + - 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_68 + 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_68 + - 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_68 + - 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_68 + - 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_66 + discriminator: *ref_67 + 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_127 + path: + type: string + schedule: + type: string + timezone: + type: string + script_path: + type: string + is_flow: + type: boolean + args: + type: object + additionalProperties: *ref_33 + enabled: + type: boolean + on_failure: + type: string + required: &ref_128 + - 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_13 + requestBody: + description: updated schedule + required: true + content: + application/json: + schema: + type: object + properties: &ref_129 + schedule: + type: string + timezone: + type: string + args: + type: object + additionalProperties: *ref_33 + on_failure: + type: string + required: &ref_130 + - 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_13 + 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_13 + 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_13 + responses: + '200': + description: schedule deleted + content: + application/json: + schema: + type: object + properties: &ref_70 + 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_33 + extra_perms: + type: object + additionalProperties: + type: boolean + email: + type: string + error: + type: string + on_failure: + type: string + required: &ref_71 + - 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_13 + 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_70 + required: *ref_71 + /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_126 + - type: object + properties: *ref_70 + required: *ref_71 + - 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 + /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_72 + name: + type: string + emails: + type: array + items: + type: string + required: &ref_73 + - name + /groups/get/{name}: + get: + summary: get instance group + operationId: getInstanceGroup + tags: + - group + parameters: + - name: name + in: path + required: true + schema: &ref_74 + type: string + responses: + '200': + description: instance group + content: + application/json: + schema: + type: object + properties: *ref_72 + required: *ref_73 + /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_75 + name: + type: string + summary: + type: string + members: + type: array + items: + type: string + extra_perms: + type: object + additionalProperties: + type: boolean + required: &ref_76 + - 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_74 + 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_74 + 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_74 + responses: + '200': + description: group + content: + application/json: + schema: + type: object + properties: *ref_75 + required: *ref_76 + /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_74 + 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_74 + 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_77 + name: + type: string + owners: + type: array + items: + type: string + extra_perms: + type: object + additionalProperties: + type: boolean + required: &ref_78 + - 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_74 + 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_74 + 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_74 + responses: + '200': + description: folder + content: + application/json: + schema: + type: object + properties: *ref_77 + required: *ref_78 + /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_74 + 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_74 + 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_74 + 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_131 + 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 + required: &ref_132 + - worker + - worker_instance + - ping_at + - started_at + - ip + - jobs_executed + /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_13 + - 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_13 + - 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_13 + - 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_13 + 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_13 + 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_13 + 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_81 + type: string + - name: runnable_type + in: query + schema: &ref_82 + type: string + enum: &ref_99 + - 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_79 + required: *ref_80 + /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_81 + - name: runnable_type + in: query + schema: *ref_82 + - 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_79 + required: *ref_80 + /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_81 + - name: runnable_type + in: query + schema: *ref_82 + requestBody: + description: Input + required: true + content: + application/json: + schema: + type: object + properties: &ref_95 + name: + type: string + args: + type: object + required: &ref_96 + - 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_97 + id: + type: string + name: + type: string + is_public: + type: boolean + required: &ref_98 + - 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_93 + 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: + WorkspaceId: + name: workspace + in: path + required: true + schema: *ref_0 + VersionId: + name: version + in: path + required: true + schema: *ref_83 + Token: + name: token + in: path + required: true + schema: *ref_84 + AccountId: + name: id + in: path + required: true + schema: *ref_17 + ClientName: + name: client_name + in: path + required: true + schema: *ref_16 + ScriptPath: + name: path + in: path + required: true + schema: *ref_25 + ScriptHash: + name: hash + in: path + required: true + schema: *ref_28 + JobId: + name: id + in: path + required: true + schema: *ref_68 + Path: + name: path + in: path + required: true + schema: *ref_13 + PathId: + name: id + in: path + required: true + schema: *ref_20 + Name: + name: name + in: path + required: true + schema: *ref_74 + 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_36 + CreatedBy: + name: created_by + description: mask to filter exact matching user creator + in: query + schema: *ref_37 + 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_31 + 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_32 + 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_34 + 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_35 + 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_69 + ScriptStartPath: + name: script_path_start + description: mask to filter matching starting path + in: query + schema: *ref_50 + SchedulePath: + name: schedule_path + description: mask to filter by schedule path + in: query + schema: *ref_51 + ScriptExactPath: + name: script_path_exact + description: mask to filter exact matching path + in: query + schema: *ref_49 + ScriptExactHash: + name: script_hash + description: mask to filter exact matching path + in: query + schema: *ref_52 + StartedBefore: + name: started_before + description: filter on created before (inclusive) timestamp + in: query + schema: *ref_53 + StartedAfter: + name: started_after + description: filter on created after (exclusive) timestamp + in: query + schema: *ref_54 + Success: + name: success + description: filter on successful jobs + in: query + schema: *ref_55 + Suspended: + name: suspended + description: filter on suspended jobs + in: query + schema: *ref_85 + Running: + name: running + description: filter on running jobs + in: query + schema: *ref_86 + ArgsFilter: + name: args + description: filter on jobs containing those args as a json subset (@> in postgres) + in: query + schema: *ref_57 + Tag: + name: tag + description: filter on jobs with a given tag/worker group + in: query + schema: *ref_59 + ResultFilter: + name: result + description: filter on jobs containing those result as a json subset (@> in postgres) + in: query + schema: *ref_58 + After: + name: after + description: filter on created after (exclusive) timestamp + in: query + schema: *ref_87 + Before: + name: before + description: filter on created before (exclusive) timestamp + in: query + schema: *ref_88 + Username: + name: username + description: filter on exact username of user + in: query + schema: *ref_89 + Operation: + name: operation + description: filter on exact or prefix name of operation + in: query + schema: *ref_90 + ResourceName: + name: resource + description: filter on exact or prefix name of resource + in: query + schema: *ref_91 + ActionKind: + name: action_kind + description: filter on type of operation + in: query + schema: *ref_92 + JobKinds: + name: job_kinds + description: >- + filter on job kind (values 'preview', 'script', 'dependencies', 'flow') + separated by, + in: query + schema: *ref_56 + RunnableId: + name: runnable_id + in: query + schema: *ref_81 + RunnableTypeQuery: + name: runnable_type + in: query + schema: *ref_82 + InputId: + name: input + in: path + required: true + schema: *ref_93 + schemas: + Script: + type: object + properties: *ref_26 + required: *ref_27 + NewScript: + type: object + properties: *ref_29 + required: *ref_30 + NewScriptWithDraft: + allOf: *ref_94 + ScriptArgs: + type: object + additionalProperties: *ref_33 + Input: + type: object + properties: *ref_79 + required: *ref_80 + CreateInput: + type: object + properties: *ref_95 + required: *ref_96 + UpdateInput: + type: object + properties: *ref_97 + required: *ref_98 + RunnableType: + type: string + enum: *ref_99 + QueuedJob: + type: object + properties: *ref_64 + required: *ref_65 + CompletedJob: + type: object + properties: *ref_62 + required: *ref_63 + Job: + allOf: *ref_66 + discriminator: *ref_67 + User: + type: object + properties: *ref_7 + required: *ref_8 + Usage: + type: object + properties: *ref_100 + Login: + type: object + properties: *ref_101 + required: *ref_102 + NewUser: + type: object + properties: *ref_103 + required: *ref_104 + EditWorkspaceUser: + type: object + properties: *ref_105 + TruncatedToken: + type: object + properties: *ref_106 + required: *ref_107 + NewToken: + type: object + properties: *ref_108 + NewTokenImpersonate: + type: object + properties: *ref_109 + required: *ref_110 + ListableVariable: + type: object + properties: *ref_14 + required: *ref_15 + ContextualVariable: + type: object + properties: *ref_111 + required: *ref_112 + CreateVariable: + type: object + properties: *ref_113 + required: *ref_114 + EditVariable: + type: object + properties: *ref_115 + 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_116 + required: *ref_117 + CreateResource: + type: object + properties: *ref_118 + required: *ref_119 + EditResource: + type: object + properties: *ref_120 + Resource: + type: object + properties: *ref_121 + required: *ref_122 + ListableResource: + type: object + properties: *ref_123 + required: *ref_124 + ResourceType: + type: object + properties: *ref_18 + required: *ref_19 + EditResourceType: + type: object + properties: *ref_125 + Schedule: + type: object + properties: *ref_70 + required: *ref_71 + ScheduleWJobs: + allOf: *ref_126 + NewSchedule: + type: object + properties: *ref_127 + required: *ref_128 + EditSchedule: + type: object + properties: *ref_129 + required: *ref_130 + Group: + type: object + properties: *ref_75 + required: *ref_76 + InstanceGroup: + type: object + properties: *ref_72 + required: *ref_73 + Folder: + type: object + properties: *ref_77 + required: *ref_78 + WorkerPing: + type: object + properties: *ref_131 + required: *ref_132 + UserWorkspaceList: + type: object + properties: *ref_133 + required: *ref_134 + CreateWorkspace: + type: object + properties: *ref_135 + required: *ref_136 + Workspace: + type: object + properties: *ref_5 + required: *ref_6 + WorkspaceInvite: + type: object + properties: *ref_11 + required: *ref_12 + GlobalUserInfo: + type: object + properties: *ref_9 + required: *ref_10 + Flow: + allOf: *ref_40 + FlowMetadata: + type: object + properties: *ref_137 + required: *ref_138 + OpenFlowWPath: + allOf: *ref_41 + FlowPreview: + type: object + properties: *ref_139 + required: *ref_140 + Policy: + type: object + properties: *ref_42 + ListableApp: + type: object + properties: *ref_141 + required: *ref_142 + ListableRawApp: + type: object + properties: *ref_143 + required: *ref_144 + AppWithLastVersion: + type: object + properties: *ref_43 + required: *ref_44 + AppWithLastVersionWDraft: + allOf: *ref_145 + 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_146 + required: *ref_147 + StaticTransform: + type: object + properties: *ref_148 + required: *ref_149 + JavascriptTransform: + type: object + properties: *ref_150 + required: *ref_151 + InputTransform: + oneOf: *ref_21 + discriminator: *ref_22 + RawScript: + type: object + properties: *ref_152 + required: *ref_153 + PathScript: + type: object + properties: *ref_154 + required: *ref_155 + PathFlow: + type: object + properties: *ref_156 + required: *ref_157 + FlowModule: + type: object + properties: *ref_23 + required: *ref_24 + ForloopFlow: + type: object + properties: *ref_158 + required: *ref_159 + BranchOne: + type: object + properties: *ref_160 + required: *ref_161 + BranchAll: + type: object + properties: *ref_162 + required: *ref_163 + Identity: + type: object + properties: *ref_164 + required: *ref_165 + Graphql: + type: object + properties: *ref_166 + required: *ref_167 + FlowModuleValue: + oneOf: *ref_168 + discriminator: *ref_169 + Retry: + type: object + properties: *ref_170 + FlowValue: + type: object + properties: *ref_45 + required: *ref_46 + OpenFlow: + type: object + properties: *ref_38 + required: *ref_39 + FlowStatusModule: + type: object + properties: *ref_47 + required: *ref_48 + FlowStatus: + type: object + properties: *ref_60 + required: *ref_61 + Http: + type: object + properties: + type: + type: string + enum: + - http + required: + - type