openapi: 3.0.0
info:
title: Golem API
version: '1.0'
paths:
/v1/accounts:
get:
tags:
- Account
summary: Find accounts
description: Find matching accounts. Only your own account or accounts you have at least one grant from will be returned
operationId: find_accounts
parameters:
- in: query
name: email
deprecated: false
schema:
type: string
explode: true
style: form
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/FindAccountsResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Account not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
post:
tags:
- Account
summary: Create account
description: Create a new account. The response is the created account data.
operationId: create_account
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AccountData'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Account'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Account not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/accounts/{account_id}:
get:
tags:
- Account
summary: Get account
description: Retrieve an account for a given Account ID
operationId: get_account
parameters:
- in: path
name: account_id
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Account'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Account not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
put:
tags:
- Account
summary: Update account
description: |-
Allows the user to change the account details such as name and email.
Changing the planId is not allowed and the request will be rejected.
The response is the updated account data.
operationId: update_account
parameters:
- in: path
name: account_id
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AccountData'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Account'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Account not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
delete:
tags:
- Account
summary: Delete account
description: Delete an account.
operationId: delete_account
parameters:
- in: path
name: account_id
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/DeleteAccountResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Account not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/accounts/{account_id}/plan:
get:
tags:
- Account
summary: Get account's plan
operationId: get_account_plan
parameters:
- in: path
name: account_id
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Plan'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Account not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/admin/accounts:
get:
tags:
- AccountSummary
operationId: get_account_summary
parameters:
- in: query
name: skip
required: true
deprecated: false
schema:
type: integer
format: int32
explode: true
style: form
- in: query
name: limit
required: true
deprecated: false
schema:
type: integer
format: int32
explode: true
style: form
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: array
items:
$ref: '#/components/schemas/AccountSummary'
'401':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/admin/accounts/count:
get:
tags:
- AccountSummary
operationId: get_account_count
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: integer
format: int64
'401':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/accounts/{account_id}/grants:
get:
tags:
- Grant
operationId: get_account_grants
parameters:
- in: path
name: account_id
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: array
items:
$ref: '#/components/schemas/Role'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Account not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/accounts/{account_id}/grants/{role}:
get:
tags:
- Grant
operationId: get_account_grant
parameters:
- in: path
name: account_id
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
- in: path
name: role
required: true
deprecated: false
schema:
$ref: '#/components/schemas/Role'
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Role'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Account not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
put:
tags:
- Grant
operationId: create_account_grant
parameters:
- in: path
name: account_id
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
- in: path
name: role
required: true
deprecated: false
schema:
$ref: '#/components/schemas/Role'
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Role'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Account not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
delete:
tags:
- Grant
operationId: delete_account_grant
parameters:
- in: path
name: account_id
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
- in: path
name: role
required: true
deprecated: false
schema:
$ref: '#/components/schemas/Role'
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/DeleteGrantResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Account not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/resource-limits:
get:
tags:
- Limits
summary: Get resource limits for a given account.
operationId: get_resource_limits
parameters:
- in: query
name: account-id
description: The Account ID to check resource limits for.
required: true
deprecated: false
schema:
type: string
explode: true
style: form
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ResourceLimits'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
post:
tags:
- Limits
summary: Update resource limits for a given account.
operationId: update_resource_limits
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/BatchUpdateResourceLimits'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/UpdateResourceLimitsResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/oauth2:
post:
tags:
- Login
summary: Acquire token with OAuth2 authorization
description: |
Gets a token by authorizing with an external OAuth2 provider. Currently only github is supported.
In the response:
- `id` is the identifier of the token itself
- `accountId` is the account's identifier, can be used on the account API
- `secret` is the secret key to be sent in the Authorization header as a bearer token for all the other endpoints
operationId: login_oauth2
parameters:
- in: query
name: provider
description: Currently only `github` is supported.
required: true
deprecated: false
schema:
type: string
explode: true
style: form
- in: query
name: access-token
description: OAuth2 access token
required: true
deprecated: false
schema:
type: string
explode: true
style: form
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/UnsafeToken'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Failed to login
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: External service call failed during login
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
/v1/login/token:
get:
tags:
- Login
summary: Get information about a token
description: |-
Gets information about a token that is selected by the secret key passed in the Authorization header.
The JSON is the same as the data object in the oauth2 endpoint's response.
operationId: current_login_token
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Token'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Failed to login
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: External service call failed during login
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/login/oauth2/device/start:
post:
tags:
- Login
summary: Start GitHub OAuth2 interactive flow
description: |-
Starts an interactive authorization flow.
The user must open the returned url and enter the userCode in a form before the expires deadline.
Then the finish GitHub OAuth2 interactive flow endpoint must be called with the encoded session to finish the flow.
operationId: start_login_oauth2
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/OAuth2Data'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Failed to login
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: External service call failed during login
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
/login/oauth2/device/complete:
post:
tags:
- Login
summary: Finish GitHub OAuth2 interactive flow
description: |-
Finishes an interactive authorization flow. The returned JSON is equivalent to the oauth2 endpoint's response.
Returns a JSON string containing the encodedSession from the start endpoint's response.
operationId: complete_login_oauth2
requestBody:
content:
application/json; charset=utf-8:
schema:
type: string
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/UnsafeToken'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Failed to login
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: External service call failed during login
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
/v1/login/oauth2/web/authorize:
get:
tags:
- Login
summary: Initiate OAuth2 Web Flow
description: Starts the OAuth2 web flow authorization process by returning the authorization URL for the given provider.
operationId: oauth2_web_flow_start
parameters:
- in: query
name: provider
description: Currently only `github` is supported.
required: true
deprecated: false
schema:
type: string
explode: true
style: form
- in: query
name: redirect
description: The redirect URL to redirect to after the user has authorized the application
deprecated: false
schema:
type: string
explode: true
style: form
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WebFlowAuthorizeUrlResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Failed to login
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: External service call failed during login
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
/v1/login/oauth2/web/callback/github:
get:
tags:
- Login
summary: GitHub OAuth2 Web Flow callback
description: |-
This endpoint handles the callback from GitHub after the user has authorized the application.
It exchanges the code for an access token and then uses that to log the user in.
operationId: oauth2_web_flow_callback_github
parameters:
- in: query
name: code
description: The authorization code returned by GitHub
required: true
deprecated: false
schema:
type: string
explode: true
style: form
- in: query
name: state
description: The state parameter for CSRF protection
required: true
deprecated: false
schema:
type: string
explode: true
style: form
responses:
'302':
description: Redirect to the given URL specified in the web flow start
headers:
LOCATION:
style: simple
required: true
deprecated: false
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WebFlowCallbackSuccessResponse'
'200':
description: OAuth flow has completed
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WebFlowCallbackSuccessResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Failed to login
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: External service call failed during login
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
/v1/login/oauth2/web/poll:
get:
tags:
- Login
summary: Poll for OAuth2 Web Flow token
description: This endpoint is used by clients to poll for the token after the user has authorized the application via the web flow.
operationId: oauth2_web_flow_poll
parameters:
- in: query
name: state
description: The state parameter for identifying the session
required: true
deprecated: false
schema:
type: string
explode: true
style: form
responses:
'200':
description: OAuth flow has completed
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/UnsafeToken'
'202':
description: OAuth flow is pending
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/PendingFlowCompletionResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Failed to login
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: External service call failed during login
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
/healthcheck:
get:
tags:
- HealthCheck
operationId: healthcheck
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/HealthcheckResponse'
/version:
get:
tags:
- HealthCheck
operationId: version
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/VersionInfo'
/v1/projects/default:
get:
tags:
- Project
summary: Get the default project
description: |-
- name of the project can be used for lookup the project if the ID is now known
- defaultEnvironmentId is currently always default
- projectType is either Default
operationId: get_default_project
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Project'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of projects exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Project not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Project already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/projects:
get:
tags:
- Project
summary: List all projects
description: |-
Returns all projects of the account if no project-name is specified.
Otherwise, returns all projects of the account that has the given name.
As unique names are not enforced on the API level, the response may contain multiple entries.
operationId: get_projects
parameters:
- in: query
name: project-name
description: Filter by project name
deprecated: false
schema:
type: string
explode: true
style: form
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: array
items:
$ref: '#/components/schemas/Project'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of projects exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Project not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Project already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
post:
tags:
- Project
summary: Create project
description: Creates a new project. The ownerAccountId must be the caller's account ID.
operationId: create_project
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ProjectDataRequest'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Project'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of projects exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Project not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Project already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/projects/{project_id}:
get:
tags:
- Project
summary: Get project by ID
description: Gets a project by its identifier. Response is the same as for the default project.
operationId: get_project
parameters:
- in: path
name: project_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Project'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of projects exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Project not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Project already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
delete:
tags:
- Project
summary: Delete project
description: Deletes a project given by its identifier.
operationId: delete_project
parameters:
- in: path
name: project_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/DeleteProjectResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of projects exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Project not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Project already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/projects/{project_id}/actions:
get:
tags:
- Project
summary: Get project actions
description: Returns a list of actions that can be performed on the project.
operationId: get_project_actions
parameters:
- in: path
name: project_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: array
items:
$ref: '#/components/schemas/ProjectAction'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of projects exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Project not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Project already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/projects/{project_id}/plugins/installs:
get:
tags:
- Project
summary: Gets the list of plugins installed for the given project
operationId: get_installed_plugins_of_project
parameters:
- in: path
name: project_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: array
items:
$ref: '#/components/schemas/PluginInstallation'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of projects exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Project not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Project already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
post:
tags:
- Project
summary: Installs a new plugin for this project
operationId: install_plugin_to_project
parameters:
- in: path
name: project_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/PluginInstallationCreation'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/PluginInstallation'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of projects exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Project not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Project already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/projects/{project_id}/plugins/installs/{installation_id}:
put:
tags:
- Project
summary: Updates the priority or parameters of a plugin installation
operationId: update_installed_plugin_in_project
parameters:
- in: path
name: project_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: installation_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/PluginInstallationUpdate'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Empty'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of projects exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Project not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Project already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/projects/{project_id}/latest/plugins/installs/{installation_id}:
delete:
tags:
- Project
summary: Uninstalls a plugin from this project
operationId: uninstall_plugin_from_project
parameters:
- in: path
name: project_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: installation_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Empty'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of projects exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Project not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Project already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/projects/{project_id}/latest/plugins/installs/batch:
post:
tags:
- Project
summary: Applies a batch of changes to the installed plugins of a component
operationId: bath_update_installed_plugins_of_project
parameters:
- in: path
name: project_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/BatchPluginInstallationUpdates'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Empty'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of projects exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Project not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Project already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/projects/{project_id}/grants:
get:
tags:
- ProjectGrant
summary: Get a project's grants
description: |-
Returns all projects grants associated with the given project.
For each grant:
- `id`` is the identifier of the grant itself
- `granteeAccountId` the account that gets access for the project
- `grantorProjectId` the project ID
- `projectPolicyId` the associated policy - see the project policy API below
operationId: get_project_grants
parameters:
- in: path
name: project_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: array
items:
$ref: '#/components/schemas/ProjectGrant'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of projects exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Project not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Project already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
post:
tags:
- ProjectGrant
summary: Create a project grant
description: |-
Creates a new project grant from the following information:
- `granteeAccountId` the account that gets access for the project
- `projectPolicyId` the associated policy - see the project policy API below
The response describes the new project grant including its id that can be used to query specifically this grant in the future.
operationId: create_project_grant
parameters:
- in: path
name: project_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ProjectGrantDataRequest'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ProjectGrant'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of projects exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Project not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Project already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/projects/{project_id}/grants/{grant_id}:
get:
tags:
- ProjectGrant
summary: Get a specific grant of a project
description: Returns a specific grant of a specific project. The returned object is the same as the elements of the grants endpoint's response described above.
operationId: get_project_grant
parameters:
- in: path
name: project_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: grant_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ProjectGrant'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of projects exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Project not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Project already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
delete:
tags:
- ProjectGrant
summary: Delete a project grant
description: Deletes an existing grant of a specific project.
operationId: delete_project_grant
parameters:
- in: path
name: project_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: grant_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/DeleteProjectGrantResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of projects exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Project not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Project already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/project-policies/{project_policy_id}:
get:
tags:
- ProjectPolicy
summary: Get a project policy
description: Returns a given project policy by it's ID. Project policy identifiers are used in project grants.
operationId: get_project_policies
parameters:
- in: path
name: project_policy_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ProjectPolicy'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Account not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/project-policies:
post:
tags:
- ProjectPolicy
summary: Create a project policy
description: Creates a new project policy and returns the object describing it, including the newly created policy's id.
operationId: create_project_policy
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ProjectPolicyData'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ProjectPolicy'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Account not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/accounts/{account_id}/tokens:
get:
tags:
- Token
summary: Get all tokens
description: |-
Gets all created tokens of an account.
The format of each element is the same as the data object in the oauth2 endpoint's response.
operationId: get_tokens
parameters:
- in: path
name: account_id
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: array
items:
$ref: '#/components/schemas/Token'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Account not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
post:
tags:
- Token
summary: Create new token
description: |
Creates a new token with a given expiration date.
The response not only contains the token data but also the secret which can be passed as a bearer token to the Authorization header to the Golem Cloud REST API.
operationId: create_token
parameters:
- in: path
name: account_id
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/CreateTokenDTO'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/UnsafeToken'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Account not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/accounts/{account_id}/tokens/{token_id}:
get:
tags:
- Token
summary: Get a specific token
description: |-
Gets information about a token given by its identifier.
The JSON is the same as the data object in the oauth2 endpoint's response.
operationId: get_token
parameters:
- in: path
name: account_id
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
- in: path
name: token_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Token'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Account not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
delete:
tags:
- Token
summary: Delete a token
description: Deletes a previously created token given by its identifier.
operationId: delete_token
parameters:
- in: path
name: account_id
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
- in: path
name: token_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/DeleteTokenResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Account not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}:
get:
tags:
- Component
summary: Get the metadata for all component versions
description: |-
Each component can have multiple versions. Every time a new WASM is uploaded for a given component id, that creates a new version.
This endpoint returns a list of all versions for the component id provided as part of the URL. Each element of the response describes a single version of a component, but does not contain the binary (WASM) itself:
- `versionedComponentId` associates a specific version with the component id
- `componentName` is the human-readable name of the component
- `componentSize` is the WASM binary's size in bytes
- `metadata` contains information extracted from the WASM itself
- `metadata.exports` is a list of exported functions, including their parameter's and return value's types
- `metadata.producers` is a list of producer information added by tooling, each consisting of a list of fields associating one or more values to a given key. This contains information about what compilers and other WASM related tools were used to construct the Golem component.
operationId: get_component_metadata_all_versions
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: array
items:
$ref: '#/components/schemas/Component'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of components exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Component already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/upload:
put:
tags:
- Component
summary: Update a component
operationId: upload_component
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: query
name: component_type
description: |-
Type of the new version of the component - if not specified, the type of the previous version
is used.
deprecated: false
schema:
$ref: '#/components/schemas/ComponentType'
explode: true
style: form
requestBody:
content:
application/octet-stream:
schema:
type: string
format: binary
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Component'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of components exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Component already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/updates:
post:
tags:
- Component
summary: Update a component
operationId: update_component
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
componentType:
$ref: '#/components/schemas/ComponentType'
component:
type: string
format: binary
filesPermissions:
$ref: '#/components/schemas/ComponentFilePathWithPermissionsList'
files:
type: string
format: binary
dynamicLinking:
$ref: '#/components/schemas/DynamicLinking'
env:
$ref: '#/components/schemas/ComponentEnv'
required:
- component
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Component'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of components exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Component already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/components:
get:
tags:
- Component
summary: Get all components
description: Gets all components, optionally filtered by project and/or component name.
operationId: get_components
parameters:
- in: query
name: project-id
description: Project ID to filter by
deprecated: false
schema:
type: string
format: uuid
explode: true
style: form
- in: query
name: component-name
description: Component name to filter by
deprecated: false
schema:
type: string
explode: true
style: form
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: array
items:
$ref: '#/components/schemas/Component'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of components exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Component already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
post:
tags:
- Component
summary: Create a new component
description: |-
The request body is encoded as multipart/form-data containing metadata and the WASM binary.
If the component type is not specified, it will be considered as a `Durable` component.
operationId: create_component
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
query:
$ref: '#/components/schemas/ComponentQuery'
component:
type: string
format: binary
componentType:
$ref: '#/components/schemas/ComponentType'
filesPermissions:
$ref: '#/components/schemas/ComponentFilePathWithPermissionsList'
files:
type: string
format: binary
dynamicLinking:
$ref: '#/components/schemas/DynamicLinking'
env:
$ref: '#/components/schemas/ComponentEnv'
required:
- query
- component
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Component'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of components exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Component already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/download:
get:
tags:
- Component
summary: Download a component
description: Downloads a specific version of the component's WASM.
operationId: download_component
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: query
name: version
deprecated: false
schema:
type: integer
format: uint64
explode: true
style: form
responses:
'200':
description: ''
content:
application/octet-stream:
schema:
type: string
format: binary
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of components exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Component already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/versions/{version}:
get:
tags:
- Component
summary: Get the version of a given component
description: Gets the version of a component.
operationId: get_component_metadata
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: version
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Component'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of components exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Component already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/latest:
get:
tags:
- Component
summary: Get the latest version of a given component
description: Gets the latest version of a component.
operationId: get_latest_component_metadata
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Component'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of components exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Component already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/search:
post:
tags:
- Component
operationId: search_components
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ComponentSearch'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: array
items:
$ref: '#/components/schemas/Component'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of components exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Component already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/versions/{version}/plugins/installs:
get:
tags:
- Component
summary: Gets the list of plugins installed for the given component version
operationId: get_installed_plugins
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: version
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: array
items:
$ref: '#/components/schemas/PluginInstallation'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of components exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Component already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/latest/plugins/installs:
post:
tags:
- Component
summary: Installs a new plugin for this component
operationId: install_plugin
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/PluginInstallationCreation'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/PluginInstallation'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of components exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Component already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/versions/latest/plugins/installs/{installation_id}:
put:
tags:
- Component
summary: Updates the priority or parameters of a plugin installation
operationId: update_installed_plugin
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: installation_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/PluginInstallationUpdate'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Empty'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of components exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Component already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/latest/plugins/installs/{installation_id}:
delete:
tags:
- Component
summary: Uninstalls a plugin from this component
operationId: uninstall_plugin
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: installation_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Empty'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of components exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Component already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/versions/latest/plugins/installs/batch:
post:
tags:
- Component
summary: Applies a batch of changes to the installed plugins of a component
operationId: bath_update_installed_plugins
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/BatchPluginInstallationUpdates'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Empty'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of components exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Component already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/versions/{version}/file-contents/{file_path}:
get:
tags:
- Component
summary: Download file in a Component
operationId: download_component_file
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: version
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
- in: path
name: file_path
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/octet-stream:
schema:
type: string
format: binary
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of components exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Component already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/plugins:
get:
tags:
- Plugin
summary: Lists all the registered plugins (including all versions of each).
operationId: list_plugins
parameters:
- in: query
name: scope
deprecated: false
schema:
$ref: '#/components/schemas/CloudPluginScope'
explode: true
style: form
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: array
items:
$ref: '#/components/schemas/PluginDefinition_CloudPluginOwner_CloudPluginScope'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of components exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Component already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
post:
tags:
- Plugin
summary: Registers a new plugin
operationId: create_plugin
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/PluginDefinitionCreation_CloudPluginScope'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Empty'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of components exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Component already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/plugins/{name}:
get:
tags:
- Plugin
summary: Lists all the registered versions of a specific plugin identified by its name
operationId: list_plugin_versions
parameters:
- in: path
name: name
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: array
items:
$ref: '#/components/schemas/PluginDefinition_CloudPluginOwner_CloudPluginScope'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of components exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Component already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/plugins/library-plugins:
post:
tags:
- Plugin
summary: Registers a new library plugin
operationId: create_library_plugin
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
name:
type: string
version:
type: string
description:
type: string
icon:
type: string
format: binary
homepage:
type: string
scope:
$ref: '#/components/schemas/CloudPluginScope'
wasm:
type: string
format: binary
required:
- name
- version
- description
- icon
- homepage
- scope
- wasm
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Empty'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of components exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Component already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/plugins/app-plugins:
post:
tags:
- Plugin
summary: Registers a new app plugin
operationId: create_app_plugin
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
name:
type: string
version:
type: string
description:
type: string
icon:
type: string
format: binary
homepage:
type: string
scope:
$ref: '#/components/schemas/CloudPluginScope'
wasm:
type: string
format: binary
required:
- name
- version
- description
- icon
- homepage
- scope
- wasm
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Empty'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of components exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Component already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/plugins/{name}/{version}:
get:
tags:
- Plugin
summary: Gets a registered plugin by its name and version
operationId: get_plugin
parameters:
- in: path
name: name
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
- in: path
name: version
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/PluginDefinition_CloudPluginOwner_CloudPluginScope'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of components exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Component already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
delete:
tags:
- Plugin
summary: Deletes a registered plugin by its name and version
operationId: delete_plugin
parameters:
- in: path
name: name
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
- in: path
name: version
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Empty'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of components exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Component already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/workers:
get:
tags:
- Worker
summary: Get metadata of multiple workers
description: |-
### Filters
| Property | Comparator | Description | Example |
|-------------|------------------------|--------------------------------|----------------------------------|
| name | StringFilterComparator | Name of worker | `name = worker-name` |
| version | FilterComparator | Version of worker | `version >= 0` |
| status | FilterComparator | Status of worker | `status = Running` |
| env.\[key\] | StringFilterComparator | Environment variable of worker | `env.var1 = value` |
| createdAt | FilterComparator | Creation time of worker | `createdAt > 2024-04-01T12:10:00Z` |
### Comparators
- StringFilterComparator: `eq|equal|=|==`, `ne|notequal|!=`, `like`, `notlike`
- FilterComparator: `eq|equal|=|==`, `ne|notequal|!=`, `ge|greaterequal|>=`, `gt|greater|>`, `le|lessequal|<=`, `lt|less|<`
Returns metadata about an existing component workers:
- `workers` list of workers metadata
- `cursor` cursor for next request, if cursor is empty/null, there are no other values
operationId: get_workers_metadata
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: query
name: filter
description: Filter for worker metadata in form of `property op value`. Can be used multiple times (AND condition is applied between them)
deprecated: false
schema:
type: array
items:
type: string
explode: true
style: form
- in: query
name: cursor
description: 'Count of listed values, default: 50'
deprecated: false
schema:
type: string
explode: true
style: form
- in: query
name: count
description: Position where to start listing, if not provided, starts from the beginning. It is used to get the next page of results. To get next page, use the cursor returned in the response
deprecated: false
schema:
type: integer
format: uint64
explode: true
style: form
- in: query
name: precise
description: Precision in relation to worker status, if true, calculate the most up-to-date status for each worker, default is false
deprecated: false
schema:
type: boolean
explode: true
style: form
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkersMetadataResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of workers exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component / Worker / Promise not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Worker already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GolemErrorBody'
security:
- Cookie: []
- Token: []
post:
tags:
- Worker
summary: Launch a new worker.
description: |-
Creates a new worker. The worker initially is in `Idle`` status, waiting to be invoked.
The parameters in the request are the following:
- `name` is the name of the created worker. This has to be unique, but only for a given component
- `args` is a list of strings which appear as command line arguments for the worker
- `env` is a list of key-value pairs (represented by arrays) which appear as environment variables for the worker
operationId: launch_new_worker
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkerCreationRequest'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkerCreationResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of workers exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component / Worker / Promise not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Worker already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GolemErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/workers/{worker_name}:
get:
tags:
- Worker
summary: Get metadata of a worker
description: |-
Returns metadata about an existing worker:
- `workerId` is a combination of the used component and the worker's user specified name
- `accountId` the account the worker is created by
- `args` is the provided command line arguments passed to the worker
- `env` is the provided map of environment variables passed to the worker
- `componentVersion` is the version of the component used by the worker
- `retryCount` is the number of retries the worker did in case of a failure
- `status` is the worker's current status, one of the following:
- `Running` if the worker is currently executing
- `Idle` if the worker is waiting for an invocation
- `Suspended` if the worker was running but is now waiting to be resumed by an event (such as end of a sleep, a promise, etc)
- `Interrupted` if the worker was interrupted by the user
- `Retrying` if the worker failed, and an automatic retry was scheduled for it
- `Failed` if the worker failed and there are no more retries scheduled for it
- `Exited` if the worker explicitly exited using the exit WASI function
operationId: get_worker_metadata
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: worker_name
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkerMetadata'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of workers exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component / Worker / Promise not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Worker already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GolemErrorBody'
security:
- Cookie: []
- Token: []
delete:
tags:
- Worker
summary: Delete a worker
description: Interrupts and deletes an existing worker.
operationId: delete_worker
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: worker_name
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/DeleteWorkerResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of workers exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component / Worker / Promise not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Worker already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GolemErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/workers/{worker_name}/invoke-and-await:
post:
tags:
- Worker
summary: Invoke a function and await its resolution
description: Supply the parameters in the request body as JSON.
operationId: invoke_and_await_function
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: worker_name
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
- in: header
name: Idempotency-Key
deprecated: false
schema:
type: string
explode: true
style: simple
- in: query
name: function
required: true
deprecated: false
schema:
type: string
explode: true
style: form
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/InvokeParameters'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/InvokeResult'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of workers exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component / Worker / Promise not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Worker already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GolemErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/invoke-and-await:
post:
tags:
- Worker
summary: Invoke a function and await its resolution on a new worker with a random generated name
description: |-
Ideal for invoking ephemeral components, but works with durable ones as well.
Supply the parameters in the request body as JSON.
operationId: invoke_and_await_function_without_name
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: header
name: Idempotency-Key
deprecated: false
schema:
type: string
explode: true
style: simple
- in: query
name: function
required: true
deprecated: false
schema:
type: string
explode: true
style: form
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/InvokeParameters'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/InvokeResult'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of workers exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component / Worker / Promise not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Worker already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GolemErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/workers/{worker_name}/invoke:
post:
tags:
- Worker
summary: Invoke a function
description: A simpler version of the previously defined invoke and await endpoint just triggers the execution of a function and immediately returns.
operationId: invoke_function
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: worker_name
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
- in: header
name: Idempotency-Key
deprecated: false
schema:
type: string
explode: true
style: simple
- in: query
name: function
description: name of the exported function to be invoked
required: true
deprecated: false
schema:
type: string
explode: true
style: form
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/InvokeParameters'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/InvokeResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of workers exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component / Worker / Promise not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Worker already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GolemErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/invoke:
post:
tags:
- Worker
summary: Invoke a function on a new worker with a random generated name
description: |-
Ideal for invoking ephemeral components, but works with durable ones as well.
A simpler version of the previously defined invoke and await endpoint just triggers the execution of a function and immediately returns.
operationId: invoke_function_without_name
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: header
name: Idempotency-Key
deprecated: false
schema:
type: string
explode: true
style: simple
- in: query
name: function
description: name of the exported function to be invoked
required: true
deprecated: false
schema:
type: string
explode: true
style: form
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/InvokeParameters'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/InvokeResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of workers exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component / Worker / Promise not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Worker already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GolemErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/workers/{worker_name}/complete:
post:
tags:
- Worker
summary: Complete a promise
description: |-
Completes a promise with a given custom array of bytes.
The promise must be previously created from within the worker, and it's identifier (a combination of a worker identifier and an oplogIdx ) must be sent out to an external caller so it can use this endpoint to mark the promise completed.
The data field is sent back to the worker, and it has no predefined meaning.
operationId: complete_promise
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: worker_name
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/CompleteParameters'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: boolean
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of workers exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component / Worker / Promise not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Worker already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GolemErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/workers/{worker_name}/interrupt:
post:
tags:
- Worker
summary: Interrupt a worker
description: |-
Interrupts the execution of a worker.
The worker's status will be Interrupted unless the recover-immediately parameter was used, in which case it remains as it was.
An interrupted worker can be still used, and it is going to be automatically resumed the first time it is used.
For example in case of a new invocation, the previously interrupted invocation is continued before the new one gets processed.
operationId: interrupt_worker
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: worker_name
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
- in: query
name: recovery-immediately
description: if true will simulate a worker recovery. Defaults to false.
deprecated: false
schema:
type: boolean
explode: true
style: form
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/InterruptResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of workers exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component / Worker / Promise not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Worker already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GolemErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/workers/find:
post:
tags:
- Worker
summary: Advanced search for workers
description: |-
### Filter types
| Type | Comparator | Description | Example |
|-----------|------------------------|--------------------------------|-----------------------------------------------------------------------------------------------|
| Name | StringFilterComparator | Name of worker | `{ "type": "Name", "comparator": "Equal", "value": "worker-name" }` |
| Version | FilterComparator | Version of worker | `{ "type": "Version", "comparator": "GreaterEqual", "value": 0 }` |
| Status | FilterComparator | Status of worker | `{ "type": "Status", "comparator": "Equal", "value": "Running" }` |
| Env | StringFilterComparator | Environment variable of worker | `{ "type": "Env", "name": "var1", "comparator": "Equal", "value": "value" }` |
| CreatedAt | FilterComparator | Creation time of worker | `{ "type": "CreatedAt", "comparator": "Greater", "value": "2024-04-01T12:10:00Z" }` |
| And | | And filter combinator | `{ "type": "And", "filters": [ ... ] }` |
| Or | | Or filter combinator | `{ "type": "Or", "filters": [ ... ] }` |
| Not | | Negates the specified filter | `{ "type": "Not", "filter": { "type": "Version", "comparator": "GreaterEqual", "value": 0 } }`|
### Comparators
- StringFilterComparator: `Equal`, `NotEqual`, `Like`, `NotLike`
- FilterComparator: `Equal`, `NotEqual`, `GreaterEqual`, `Greater`, `LessEqual`, `Less`
Returns metadata about an existing component workers:
- `workers` list of workers metadata
- `cursor` cursor for next request, if cursor is empty/null, there are no other values
operationId: find_workers_metadata
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkersMetadataRequest'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkersMetadataResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of workers exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component / Worker / Promise not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Worker already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GolemErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/workers/{worker_name}/resume:
post:
tags:
- Worker
summary: Resume a worker
operationId: resume_worker
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: worker_name
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ResumeResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of workers exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component / Worker / Promise not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Worker already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GolemErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/workers/{worker_name}/update:
post:
tags:
- Worker
summary: Update a worker
operationId: update_worker
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: worker_name
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/UpdateWorkerRequest'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/UpdateWorkerResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of workers exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component / Worker / Promise not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Worker already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GolemErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/workers/{worker_name}/oplog:
get:
tags:
- Worker
summary: Get the oplog of a worker
operationId: get_oplog
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: worker_name
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
- in: query
name: from
deprecated: false
schema:
type: integer
format: uint64
explode: true
style: form
- in: query
name: count
required: true
deprecated: false
schema:
type: integer
format: uint64
explode: true
style: form
- in: query
name: cursor
deprecated: false
schema:
$ref: '#/components/schemas/OplogCursor'
explode: true
style: form
- in: query
name: query
deprecated: false
schema:
type: string
explode: true
style: form
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GetOplogResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of workers exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component / Worker / Promise not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Worker already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GolemErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/workers/{worker_name}/files/{file_name}:
get:
tags:
- Worker
summary: List files in a worker
operationId: get_files
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: worker_name
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
- in: path
name: file_name
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GetFilesResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of workers exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component / Worker / Promise not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Worker already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GolemErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/workers/{worker_name}/file-contents/{file_name}:
get:
tags:
- Worker
summary: Get contents of a file in a worker
operationId: get_file_content
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: worker_name
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
- in: path
name: file_name
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/octet-stream:
schema:
type: string
format: binary
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of workers exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component / Worker / Promise not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Worker already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GolemErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/workers/{worker_name}/activate-plugin:
post:
tags:
- Worker
summary: Activate a plugin
description: The plugin must be one of the installed plugins for the worker's current component version.
operationId: activate_plugin
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: worker_name
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
- in: query
name: plugin-installation-id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: form
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ActivatePluginResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of workers exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component / Worker / Promise not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Worker already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GolemErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/workers/{worker_name}/deactivate-plugin:
post:
tags:
- Worker
summary: Deactivate a plugin
description: The plugin must be one of the installed plugins for the worker's current component version.
operationId: deactivate_plugin
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: worker_name
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
- in: query
name: plugin-installation-id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: form
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/DeactivatePluginResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of workers exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component / Worker / Promise not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Worker already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GolemErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/workers/{worker_name}/revert:
post:
tags:
- Worker
summary: Revert a worker
description: Reverts a worker by undoing either the last few invocations or the last few recorded oplog entries.
operationId: revert_worker
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: worker_name
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/RevertWorkerTarget'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/RevertWorkerResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of workers exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component / Worker / Promise not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Worker already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GolemErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/workers/{worker_name}/invocations/{idempotency_key}:
delete:
tags:
- Worker
summary: Cancels a pending invocation if it has not started yet
description: The invocation to be cancelled is identified by the idempotency key passed to the invoke API.
operationId: cancel_invocation
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: worker_name
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
- in: path
name: idempotency_key
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/CancelInvocationResponse'
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of workers exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component / Worker / Promise not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Worker already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GolemErrorBody'
security:
- Cookie: []
- Token: []
/v1/components/{component_id}/workers/{worker_name}/connect:
get:
tags:
- Worker
summary: Connect to a worker using a websocket and stream events
operationId: worker_connect
parameters:
- in: path
name: component_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: worker_name
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'101':
description: A websocket response
'400':
description: Invalid request, returning with a list of issues detected in the request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorsBody'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: Maximum number of workers exceeded
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: Component / Worker / Promise not found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'409':
description: Worker already exists
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'500':
description: Internal server error
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/GolemErrorBody'
/v1/api/definitions/{project_id}/import:
put:
tags:
- ApiDefinition
summary: Upload an OpenAPI definition
description: |-
Uploads an OpenAPI JSON document and either creates a new one or updates an existing Golem
API definition using it.
operationId: import_open_api
parameters:
- in: path
name: project_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
requestBody:
content:
application/json:
schema:
title: API definition in OpenAPI format
description: API definition in OpenAPI format with required custom extensions
type: OpenAPI+WorkerBridgeCustomExtension
application/x-yaml:
schema:
title: API definition in OpenAPI format
description: API definition in OpenAPI format with required custom extensions
type: OpenAPI+WorkerBridgeCustomExtension
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/HttpApiDefinitionResponseData'
'400':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkerServiceErrorsBody'
'401':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/MessageBody'
'409':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'500':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/api/definitions/{project_id}:
get:
tags:
- ApiDefinition
summary: List API definitions
description: Lists all API definitions associated with the project.
operationId: list_definitions
parameters:
- in: path
name: project_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: query
name: api-definition-id
deprecated: false
schema:
type: string
explode: true
style: form
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: array
items:
$ref: '#/components/schemas/HttpApiDefinitionResponseData'
'400':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkerServiceErrorsBody'
'401':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/MessageBody'
'409':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'500':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
post:
tags:
- ApiDefinition
summary: Create a new API definition
description: |-
Creates a new API definition described by Golem's API definition JSON document.
If an API definition of the same version already exists, its an error.
operationId: create_definition
parameters:
- in: path
name: project_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/HttpApiDefinitionRequest'
application/x-yaml:
schema:
$ref: '#/components/schemas/HttpApiDefinitionRequest'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/HttpApiDefinitionResponseData'
'400':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkerServiceErrorsBody'
'401':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/MessageBody'
'409':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'500':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/api/definitions/{project_id}/{id}/{version}:
get:
tags:
- ApiDefinition
summary: Get an API definition
description: An API definition is selected by its API definition ID and version.
operationId: get_definition
parameters:
- in: path
name: project_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: id
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
- in: path
name: version
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/HttpApiDefinitionResponseData'
'400':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkerServiceErrorsBody'
'401':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/MessageBody'
'409':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'500':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
put:
tags:
- ApiDefinition
summary: Update an existing API definition.
description: Only draft API definitions can be updated.
operationId: update_definition
parameters:
- in: path
name: project_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: id
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
- in: path
name: version
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/HttpApiDefinitionRequest'
application/x-yaml:
schema:
$ref: '#/components/schemas/HttpApiDefinitionRequest'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/HttpApiDefinitionResponseData'
'400':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkerServiceErrorsBody'
'401':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/MessageBody'
'409':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'500':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
delete:
tags:
- ApiDefinition
summary: Delete an API definition
description: Deletes an API definition by its API definition ID and version.
operationId: delete_definition
parameters:
- in: path
name: project_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: id
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
- in: path
name: version
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'400':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkerServiceErrorsBody'
'401':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/MessageBody'
'409':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'500':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/api/deployments/deploy:
post:
tags:
- ApiDeployment
summary: Creates or updates a deployment
description: Deploys a set of API definitions to a site (specific host and subdomain).
operationId: deploy
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ApiDeploymentRequest'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ApiDeployment'
'400':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkerServiceErrorsBody'
'401':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/MessageBody'
'409':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'500':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/api/deployments:
get:
tags:
- ApiDeployment
summary: Get one or more API deployments
description: |-
If `api-definition-id` is not set, it lists all API deployments.
If `api-definition-id` is set, returns a single API deployment.
operationId: list_deployments
parameters:
- in: query
name: project-id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: form
- in: query
name: api-definition-id
required: true
deprecated: false
schema:
type: string
explode: true
style: form
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: array
items:
$ref: '#/components/schemas/ApiDeployment'
'400':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkerServiceErrorsBody'
'401':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/MessageBody'
'409':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'500':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/api/deployments/{site}:
get:
tags:
- ApiDeployment
summary: Get API deployment by site
description: Gets an API deployment by the host name (optionally with a subdomain) it is deployed to.
operationId: get_deployment
parameters:
- in: query
name: project-id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: form
- in: path
name: site
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ApiDeployment'
'400':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkerServiceErrorsBody'
'401':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/MessageBody'
'409':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'500':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
delete:
tags:
- ApiDeployment
summary: Delete API deployment by site
description: Deletes an API deployment by the host name (optionally with a subdomain) it is deployed to.
operationId: delete_deployment
parameters:
- in: query
name: project-id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: form
- in: path
name: site
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'400':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkerServiceErrorsBody'
'401':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/MessageBody'
'409':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'500':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/api/deployments/{site}/{id}/{version}:
delete:
tags:
- ApiDeployment
summary: Undeploy a single API definition from a site
description: Removes a specific API definition (by id and version) from a site without deleting the entire deployment.
operationId: undeploy_api
parameters:
- in: query
name: project-id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: form
- in: path
name: site
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
- in: path
name: id
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
- in: path
name: version
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'400':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkerServiceErrorsBody'
'401':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/MessageBody'
'409':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'500':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/api/certificates:
get:
tags:
- ApiCertificate
summary: Gets one or all certificates for a given project
description: |-
If `certificate-id` is not set, it returns all certificates associated with the project.
If `certificate-id` is set, it returns a single certificate if it exists.
operationId: get_certificates
parameters:
- in: query
name: project-id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: form
- in: query
name: certificate-id
deprecated: false
schema:
type: string
format: uuid
explode: true
style: form
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: array
items:
$ref: '#/components/schemas/Certificate'
'400':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkerServiceErrorsBody'
'401':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/MessageBody'
'409':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'500':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
post:
tags:
- ApiCertificate
summary: Creates a new certificate
description: |-
A certificate is associated with a given Golem project and domain, and consists of
a key pair.
The created certificate will be associated with a certificate ID returned by this endpoint.
operationId: create_certificate
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/CertificateRequest'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Certificate'
'400':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkerServiceErrorsBody'
'401':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/MessageBody'
'409':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'500':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
delete:
tags:
- ApiCertificate
summary: Deletes a certificate
description: Deletes the certificate associated with the given certificate ID and project ID.
operationId: delete_certificate
parameters:
- in: query
name: project-id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: form
- in: query
name: certificate-id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: form
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'400':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkerServiceErrorsBody'
'401':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/MessageBody'
'409':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'500':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/api/domains:
get:
tags:
- ApiDomain
summary: Get all API domains
description: Returns a list of API domains for the given project.
operationId: get_domains
parameters:
- in: query
name: project-id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: form
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: array
items:
$ref: '#/components/schemas/ApiDomain'
'400':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkerServiceErrorsBody'
'401':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/MessageBody'
'409':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'500':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
put:
tags:
- ApiDomain
summary: Create or update an API domain
operationId: create_or_update_domain
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/DomainRequest'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ApiDomain'
'400':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkerServiceErrorsBody'
'401':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/MessageBody'
'409':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'500':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
delete:
tags:
- ApiDomain
summary: Delete an API domain
operationId: delete_domain
parameters:
- in: query
name: project-id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: form
- in: query
name: domain
required: true
deprecated: false
schema:
type: string
explode: true
style: form
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'400':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkerServiceErrorsBody'
'401':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/MessageBody'
'409':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'500':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/api/security/{project_id}/{security_scheme_identifier}:
get:
tags:
- ApiSecurity
summary: Get a security scheme
description: Get a security scheme by name
operationId: get
parameters:
- in: path
name: project_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
- in: path
name: security_scheme_identifier
required: true
deprecated: false
schema:
type: string
explode: true
style: simple
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/SecuritySchemeData'
'400':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkerServiceErrorsBody'
'401':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/MessageBody'
'409':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'500':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
/v1/api/security/{project_id}:
post:
tags:
- ApiSecurity
summary: Create a security scheme
operationId: create
parameters:
- in: path
name: project_id
required: true
deprecated: false
schema:
type: string
format: uuid
explode: true
style: simple
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/SecuritySchemeData'
required: true
responses:
'200':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/SecuritySchemeData'
'400':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/WorkerServiceErrorsBody'
'401':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'403':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
'404':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/MessageBody'
'409':
description: ''
content:
application/json; charset=utf-8:
schema:
type: string
'500':
description: ''
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorBody'
security:
- Cookie: []
- Token: []
components:
schemas:
Account:
type: object
properties:
id:
type: string
name:
type: string
email:
type: string
planId:
type: string
format: uuid
required:
- id
- name
- email
- planId
AccountData:
type: object
properties:
name:
type: string
email:
type: string
required:
- name
- email
AccountSummary:
type: object
properties:
id:
type: string
name:
type: string
email:
type: string
componentCount:
type: integer
format: int64
workerCount:
type: integer
format: int64
createdAt:
type: string
format: date-time
required:
- id
- name
- email
- componentCount
- workerCount
- createdAt
BatchPluginInstallationUpdates:
type: object
properties:
actions:
type: array
items:
$ref: '#/components/schemas/PluginInstallationAction'
required:
- actions
BatchUpdateResourceLimits:
type: object
properties:
updates:
type: object
additionalProperties:
type: integer
format: int64
required:
- updates
CreateTokenDTO:
type: object
properties:
expiresAt:
type: string
format: date-time
required:
- expiresAt
DeleteAccountResponse:
type: object
DeleteGrantResponse:
type: object
DeleteProjectGrantResponse:
type: object
DeleteProjectResponse:
type: object
DeleteTokenResponse:
type: object
Empty:
type: object
ErrorBody:
type: object
properties:
error:
type: string
required:
- error
ErrorsBody:
type: object
properties:
errors:
type: array
items:
type: string
required:
- errors
FindAccountsResponse:
type: object
properties:
values:
type: array
items:
$ref: '#/components/schemas/Account'
required:
- values
HealthcheckResponse:
type: object
OAuth2Data:
type: object
properties:
url:
type: string
userCode:
type: string
expires:
type: string
format: date-time
encodedSession:
type: string
required:
- url
- userCode
- expires
- encodedSession
PendingFlowCompletionResponse:
type: object
Plan:
type: object
properties:
planId:
type: string
format: uuid
planData:
$ref: '#/components/schemas/PlanData'
required:
- planId
- planData
PlanData:
type: object
properties:
projectLimit:
type: integer
format: int32
componentLimit:
type: integer
format: int32
workerLimit:
type: integer
format: int32
storageLimit:
type: integer
format: int32
monthlyGasLimit:
type: integer
format: int64
monthlyUploadLimit:
type: integer
format: int32
required:
- projectLimit
- componentLimit
- workerLimit
- storageLimit
- monthlyGasLimit
- monthlyUploadLimit
PluginInstallation:
type: object
properties:
id:
type: string
format: uuid
pluginName:
type: string
pluginVersion:
type: string
pluginRegistered:
description: Whether the referenced plugin is still registered. If false, the installation will still work but the plugin will not show up when listing plugins.
type: boolean
priority:
type: integer
format: int32
parameters:
type: object
additionalProperties:
type: string
required:
- id
- pluginName
- pluginVersion
- pluginRegistered
- priority
- parameters
PluginInstallationAction:
discriminator:
propertyName: type
mapping:
Install: '#/components/schemas/PluginInstallationAction_PluginInstallationCreation'
Update: '#/components/schemas/PluginInstallationAction_PluginInstallationUpdateWithId'
Uninstall: '#/components/schemas/PluginInstallationAction_PluginUninstallation'
type: object
oneOf:
- $ref: '#/components/schemas/PluginInstallationAction_PluginInstallationCreation'
- $ref: '#/components/schemas/PluginInstallationAction_PluginInstallationUpdateWithId'
- $ref: '#/components/schemas/PluginInstallationAction_PluginUninstallation'
PluginInstallationAction_PluginInstallationCreation:
allOf:
- type: object
properties:
type:
example: Install
type: string
enum:
- Install
required:
- type
- $ref: '#/components/schemas/PluginInstallationCreation'
PluginInstallationAction_PluginInstallationUpdateWithId:
allOf:
- type: object
properties:
type:
example: Update
type: string
enum:
- Update
required:
- type
- $ref: '#/components/schemas/PluginInstallationUpdateWithId'
PluginInstallationAction_PluginUninstallation:
allOf:
- type: object
properties:
type:
example: Uninstall
type: string
enum:
- Uninstall
required:
- type
- $ref: '#/components/schemas/PluginUninstallation'
PluginInstallationCreation:
type: object
properties:
name:
type: string
version:
type: string
priority:
description: Plugins will be applied in order of increasing priority
type: integer
format: int32
parameters:
type: object
additionalProperties:
type: string
required:
- name
- version
- priority
- parameters
PluginInstallationUpdate:
type: object
properties:
priority:
type: integer
format: int32
parameters:
type: object
additionalProperties:
type: string
required:
- priority
- parameters
PluginInstallationUpdateWithId:
type: object
properties:
installationId:
type: string
format: uuid
priority:
type: integer
format: int32
parameters:
type: object
additionalProperties:
type: string
required:
- installationId
- priority
- parameters
PluginUninstallation:
type: object
properties:
installationId:
type: string
format: uuid
required:
- installationId
Project:
type: object
properties:
projectId:
type: string
format: uuid
projectData:
$ref: '#/components/schemas/ProjectData'
required:
- projectId
- projectData
ProjectAction:
type: string
enum:
- ViewComponent
- CreateComponent
- UpdateComponent
- DeleteComponent
- ViewWorker
- CreateWorker
- UpdateWorker
- DeleteWorker
- ViewProjectGrants
- CreateProjectGrants
- DeleteProjectGrants
- ViewApiDefinition
- CreateApiDefinition
- UpdateApiDefinition
- DeleteApiDefinition
- DeleteProject
- ViewProject
- ViewPluginInstallations
- CreatePluginInstallation
- UpdatePluginInstallation
- DeletePluginInstallation
- UpsertApiDeployment
- ViewApiDeployment
- DeleteApiDeployment
- UpsertApiDomain
- ViewApiDomain
- DeleteApiDomain
- BatchUpdatePluginInstallations
ProjectActions:
type: object
properties:
actions:
type: array
items:
$ref: '#/components/schemas/ProjectAction'
required:
- actions
ProjectData:
type: object
properties:
name:
type: string
ownerAccountId:
type: string
description:
type: string
defaultEnvironmentId:
type: string
projectType:
$ref: '#/components/schemas/ProjectType'
required:
- name
- ownerAccountId
- description
- defaultEnvironmentId
- projectType
ProjectDataRequest:
type: object
properties:
name:
type: string
ownerAccountId:
type: string
description:
type: string
required:
- name
- ownerAccountId
- description
ProjectGrant:
type: object
properties:
id:
type: string
format: uuid
data:
$ref: '#/components/schemas/ProjectGrantData'
required:
- id
- data
ProjectGrantData:
type: object
properties:
granteeAccountId:
type: string
grantorProjectId:
type: string
format: uuid
projectPolicyId:
type: string
format: uuid
required:
- granteeAccountId
- grantorProjectId
- projectPolicyId
ProjectGrantDataRequest:
type: object
properties:
granteeAccountId:
type: string
granteeEmail:
type: string
projectPolicyId:
type: string
format: uuid
projectActions:
type: array
items:
$ref: '#/components/schemas/ProjectAction'
projectPolicyName:
type: string
required:
- projectActions
ProjectPolicy:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
projectActions:
$ref: '#/components/schemas/ProjectActions'
required:
- id
- name
- projectActions
ProjectPolicyData:
type: object
properties:
name:
type: string
projectActions:
$ref: '#/components/schemas/ProjectActions'
required:
- name
- projectActions
ProjectType:
type: string
enum:
- Default
- NonDefault
ResourceLimits:
type: object
properties:
availableFuel:
type: integer
format: int64
maxMemoryPerWorker:
type: integer
format: int64
required:
- availableFuel
- maxMemoryPerWorker
Role:
type: string
enum:
- Admin
- MarketingAdmin
Token:
type: object
properties:
id:
type: string
format: uuid
accountId:
type: string
createdAt:
type: string
format: date-time
expiresAt:
type: string
format: date-time
required:
- id
- accountId
- createdAt
- expiresAt
TokenSecret:
type: object
properties:
value:
type: string
format: uuid
required:
- value
UnsafeToken:
type: object
properties:
data:
$ref: '#/components/schemas/Token'
secret:
$ref: '#/components/schemas/TokenSecret'
required:
- data
- secret
UpdateResourceLimitsResponse:
type: object
VersionInfo:
type: object
properties:
version:
type: string
required:
- version
WebFlowAuthorizeUrlResponse:
type: object
properties:
url:
type: string
state:
type: string
required:
- url
- state
WebFlowCallbackSuccessResponse:
type: object
AnalysedExport:
discriminator:
propertyName: type
mapping:
Function: '#/components/schemas/AnalysedExport_AnalysedFunction'
Instance: '#/components/schemas/AnalysedExport_AnalysedInstance'
type: object
oneOf:
- $ref: '#/components/schemas/AnalysedExport_AnalysedFunction'
- $ref: '#/components/schemas/AnalysedExport_AnalysedInstance'
AnalysedExport_AnalysedFunction:
allOf:
- type: object
properties:
type:
example: Function
type: string
enum:
- Function
required:
- type
- $ref: '#/components/schemas/AnalysedFunction'
AnalysedExport_AnalysedInstance:
allOf:
- type: object
properties:
type:
example: Instance
type: string
enum:
- Instance
required:
- type
- $ref: '#/components/schemas/AnalysedInstance'
AnalysedFunction:
type: object
properties:
name:
type: string
parameters:
type: array
items:
$ref: '#/components/schemas/AnalysedFunctionParameter'
results:
type: array
items:
$ref: '#/components/schemas/AnalysedFunctionResult'
required:
- name
- parameters
- results
AnalysedFunctionParameter:
type: object
properties:
name:
type: string
typ:
$ref: '#/components/schemas/AnalysedType'
required:
- name
- typ
AnalysedFunctionResult:
type: object
properties:
name:
type: string
typ:
$ref: '#/components/schemas/AnalysedType'
required:
- typ
AnalysedInstance:
type: object
properties:
name:
type: string
functions:
type: array
items:
$ref: '#/components/schemas/AnalysedFunction'
required:
- name
- functions
AnalysedResourceMode:
type: string
enum:
- Owned
- Borrowed
AnalysedType:
discriminator:
propertyName: type
mapping:
Variant: '#/components/schemas/AnalysedType_TypeVariant'
Result: '#/components/schemas/AnalysedType_TypeResult'
Option: '#/components/schemas/AnalysedType_TypeOption'
Enum: '#/components/schemas/AnalysedType_TypeEnum'
Flags: '#/components/schemas/AnalysedType_TypeFlags'
Record: '#/components/schemas/AnalysedType_TypeRecord'
Tuple: '#/components/schemas/AnalysedType_TypeTuple'
List: '#/components/schemas/AnalysedType_TypeList'
Str: '#/components/schemas/AnalysedType_TypeStr'
Chr: '#/components/schemas/AnalysedType_TypeChr'
F64: '#/components/schemas/AnalysedType_TypeF64'
F32: '#/components/schemas/AnalysedType_TypeF32'
U64: '#/components/schemas/AnalysedType_TypeU64'
S64: '#/components/schemas/AnalysedType_TypeS64'
U32: '#/components/schemas/AnalysedType_TypeU32'
S32: '#/components/schemas/AnalysedType_TypeS32'
U16: '#/components/schemas/AnalysedType_TypeU16'
S16: '#/components/schemas/AnalysedType_TypeS16'
U8: '#/components/schemas/AnalysedType_TypeU8'
S8: '#/components/schemas/AnalysedType_TypeS8'
Bool: '#/components/schemas/AnalysedType_TypeBool'
Handle: '#/components/schemas/AnalysedType_TypeHandle'
type: object
oneOf:
- $ref: '#/components/schemas/AnalysedType_TypeVariant'
- $ref: '#/components/schemas/AnalysedType_TypeResult'
- $ref: '#/components/schemas/AnalysedType_TypeOption'
- $ref: '#/components/schemas/AnalysedType_TypeEnum'
- $ref: '#/components/schemas/AnalysedType_TypeFlags'
- $ref: '#/components/schemas/AnalysedType_TypeRecord'
- $ref: '#/components/schemas/AnalysedType_TypeTuple'
- $ref: '#/components/schemas/AnalysedType_TypeList'
- $ref: '#/components/schemas/AnalysedType_TypeStr'
- $ref: '#/components/schemas/AnalysedType_TypeChr'
- $ref: '#/components/schemas/AnalysedType_TypeF64'
- $ref: '#/components/schemas/AnalysedType_TypeF32'
- $ref: '#/components/schemas/AnalysedType_TypeU64'
- $ref: '#/components/schemas/AnalysedType_TypeS64'
- $ref: '#/components/schemas/AnalysedType_TypeU32'
- $ref: '#/components/schemas/AnalysedType_TypeS32'
- $ref: '#/components/schemas/AnalysedType_TypeU16'
- $ref: '#/components/schemas/AnalysedType_TypeS16'
- $ref: '#/components/schemas/AnalysedType_TypeU8'
- $ref: '#/components/schemas/AnalysedType_TypeS8'
- $ref: '#/components/schemas/AnalysedType_TypeBool'
- $ref: '#/components/schemas/AnalysedType_TypeHandle'
AnalysedType_TypeBool:
allOf:
- type: object
properties:
type:
example: Bool
type: string
enum:
- Bool
required:
- type
- $ref: '#/components/schemas/TypeBool'
AnalysedType_TypeChr:
allOf:
- type: object
properties:
type:
example: Chr
type: string
enum:
- Chr
required:
- type
- $ref: '#/components/schemas/TypeChr'
AnalysedType_TypeEnum:
allOf:
- type: object
properties:
type:
example: Enum
type: string
enum:
- Enum
required:
- type
- $ref: '#/components/schemas/TypeEnum'
AnalysedType_TypeF32:
allOf:
- type: object
properties:
type:
example: F32
type: string
enum:
- F32
required:
- type
- $ref: '#/components/schemas/TypeF32'
AnalysedType_TypeF64:
allOf:
- type: object
properties:
type:
example: F64
type: string
enum:
- F64
required:
- type
- $ref: '#/components/schemas/TypeF64'
AnalysedType_TypeFlags:
allOf:
- type: object
properties:
type:
example: Flags
type: string
enum:
- Flags
required:
- type
- $ref: '#/components/schemas/TypeFlags'
AnalysedType_TypeHandle:
allOf:
- type: object
properties:
type:
example: Handle
type: string
enum:
- Handle
required:
- type
- $ref: '#/components/schemas/TypeHandle'
AnalysedType_TypeList:
allOf:
- type: object
properties:
type:
example: List
type: string
enum:
- List
required:
- type
- $ref: '#/components/schemas/TypeList'
AnalysedType_TypeOption:
allOf:
- type: object
properties:
type:
example: Option
type: string
enum:
- Option
required:
- type
- $ref: '#/components/schemas/TypeOption'
AnalysedType_TypeRecord:
allOf:
- type: object
properties:
type:
example: Record
type: string
enum:
- Record
required:
- type
- $ref: '#/components/schemas/TypeRecord'
AnalysedType_TypeResult:
allOf:
- type: object
properties:
type:
example: Result
type: string
enum:
- Result
required:
- type
- $ref: '#/components/schemas/TypeResult'
AnalysedType_TypeS16:
allOf:
- type: object
properties:
type:
example: S16
type: string
enum:
- S16
required:
- type
- $ref: '#/components/schemas/TypeS16'
AnalysedType_TypeS32:
allOf:
- type: object
properties:
type:
example: S32
type: string
enum:
- S32
required:
- type
- $ref: '#/components/schemas/TypeS32'
AnalysedType_TypeS64:
allOf:
- type: object
properties:
type:
example: S64
type: string
enum:
- S64
required:
- type
- $ref: '#/components/schemas/TypeS64'
AnalysedType_TypeS8:
allOf:
- type: object
properties:
type:
example: S8
type: string
enum:
- S8
required:
- type
- $ref: '#/components/schemas/TypeS8'
AnalysedType_TypeStr:
allOf:
- type: object
properties:
type:
example: Str
type: string
enum:
- Str
required:
- type
- $ref: '#/components/schemas/TypeStr'
AnalysedType_TypeTuple:
allOf:
- type: object
properties:
type:
example: Tuple
type: string
enum:
- Tuple
required:
- type
- $ref: '#/components/schemas/TypeTuple'
AnalysedType_TypeU16:
allOf:
- type: object
properties:
type:
example: U16
type: string
enum:
- U16
required:
- type
- $ref: '#/components/schemas/TypeU16'
AnalysedType_TypeU32:
allOf:
- type: object
properties:
type:
example: U32
type: string
enum:
- U32
required:
- type
- $ref: '#/components/schemas/TypeU32'
AnalysedType_TypeU64:
allOf:
- type: object
properties:
type:
example: U64
type: string
enum:
- U64
required:
- type
- $ref: '#/components/schemas/TypeU64'
AnalysedType_TypeU8:
allOf:
- type: object
properties:
type:
example: U8
type: string
enum:
- U8
required:
- type
- $ref: '#/components/schemas/TypeU8'
AnalysedType_TypeVariant:
allOf:
- type: object
properties:
type:
example: Variant
type: string
enum:
- Variant
required:
- type
- $ref: '#/components/schemas/TypeVariant'
AppPluginDefinition:
type: object
properties:
blobStorageKey:
type: string
required:
- blobStorageKey
CloudPluginOwner:
type: object
properties:
accountId:
type: string
required:
- accountId
CloudPluginScope:
discriminator:
propertyName: type
mapping:
Global: '#/components/schemas/CloudPluginScope_Empty'
Component: '#/components/schemas/CloudPluginScope_ComponentPluginScope'
Project: '#/components/schemas/CloudPluginScope_ProjectPluginScope'
type: object
oneOf:
- $ref: '#/components/schemas/CloudPluginScope_Empty'
- $ref: '#/components/schemas/CloudPluginScope_ComponentPluginScope'
- $ref: '#/components/schemas/CloudPluginScope_ProjectPluginScope'
CloudPluginScope_ComponentPluginScope:
allOf:
- type: object
properties:
type:
example: Component
type: string
enum:
- Component
required:
- type
- $ref: '#/components/schemas/ComponentPluginScope'
CloudPluginScope_Empty:
allOf:
- type: object
properties:
type:
example: Global
type: string
enum:
- Global
required:
- type
- $ref: '#/components/schemas/Empty'
CloudPluginScope_ProjectPluginScope:
allOf:
- type: object
properties:
type:
example: Project
type: string
enum:
- Project
required:
- type
- $ref: '#/components/schemas/ProjectPluginScope'
Component:
type: object
properties:
versionedComponentId:
$ref: '#/components/schemas/VersionedComponentId'
componentName:
type: string
componentSize:
type: integer
format: uint64
metadata:
$ref: '#/components/schemas/ComponentMetadata'
accountId:
type: string
projectId:
type: string
format: uuid
createdAt:
type: string
format: date-time
componentType:
$ref: '#/components/schemas/ComponentType'
files:
type: array
items:
$ref: '#/components/schemas/InitialComponentFile'
installedPlugins:
type: array
items:
$ref: '#/components/schemas/PluginInstallation'
env:
type: object
additionalProperties:
type: string
required:
- versionedComponentId
- componentName
- componentSize
- metadata
- accountId
- projectId
- createdAt
- componentType
- files
- installedPlugins
- env
ComponentEnv:
type: object
properties:
keyValues:
type: object
additionalProperties:
type: string
required:
- keyValues
ComponentFilePathWithPermissions:
type: object
properties:
path:
description: Path inside a component filesystem. Must be absolute.
type: string
permissions:
$ref: '#/components/schemas/ComponentFilePermissions'
required:
- path
- permissions
ComponentFilePathWithPermissionsList:
type: object
properties:
values:
type: array
items:
$ref: '#/components/schemas/ComponentFilePathWithPermissions'
required:
- values
ComponentFilePermissions:
type: string
enum:
- read-only
- read-write
ComponentMetadata:
type: object
properties:
exports:
type: array
items:
$ref: '#/components/schemas/AnalysedExport'
producers:
type: array
items:
$ref: '#/components/schemas/Producers'
memories:
type: array
items:
$ref: '#/components/schemas/LinearMemory'
binaryWit:
type: string
format: bytes
rootPackageName:
type: string
rootPackageVersion:
type: string
dynamicLinking:
type: object
additionalProperties:
$ref: '#/components/schemas/DynamicLinkedInstance'
required:
- exports
- producers
- memories
- binaryWit
- dynamicLinking
ComponentPluginScope:
type: object
properties:
componentId:
type: string
format: uuid
required:
- componentId
ComponentQuery:
type: object
properties:
projectId:
type: string
format: uuid
componentName:
type: string
required:
- componentName
ComponentSearch:
type: object
properties:
projectId:
type: string
format: uuid
components:
type: array
items:
$ref: '#/components/schemas/ComponentSearchParameters'
required:
- components
ComponentSearchParameters:
type: object
properties:
name:
type: string
version:
type: integer
format: uint64
required:
- name
ComponentTransformerDefinition:
type: object
properties:
providedWitPackage:
type: string
jsonSchema:
type: string
validateUrl:
type: string
transformUrl:
type: string
required:
- validateUrl
- transformUrl
ComponentType:
type: string
enum:
- Durable
- Ephemeral
DynamicLinkedInstance:
discriminator:
propertyName: type
mapping:
WasmRpc: '#/components/schemas/DynamicLinkedInstance_DynamicLinkedWasmRpc'
type: object
oneOf:
- $ref: '#/components/schemas/DynamicLinkedInstance_DynamicLinkedWasmRpc'
DynamicLinkedInstance_DynamicLinkedWasmRpc:
allOf:
- type: object
properties:
type:
example: WasmRpc
type: string
enum:
- WasmRpc
required:
- type
- $ref: '#/components/schemas/DynamicLinkedWasmRpc'
DynamicLinkedWasmRpc:
type: object
properties:
targets:
description: Maps resource names within the dynamic linked interface to target information
type: object
additionalProperties:
$ref: '#/components/schemas/WasmRpcTarget'
required:
- targets
DynamicLinking:
type: object
properties:
dynamicLinking:
type: object
additionalProperties:
$ref: '#/components/schemas/DynamicLinkedInstance'
required:
- dynamicLinking
InitialComponentFile:
type: object
properties:
key:
title: |-
Key that can be used to identify a component file.
All files with the same content will have the same key.
type: string
path:
description: Path inside a component filesystem. Must be absolute.
type: string
permissions:
$ref: '#/components/schemas/ComponentFilePermissions'
required:
- key
- path
- permissions
LibraryPluginDefinition:
type: object
properties:
blobStorageKey:
type: string
required:
- blobStorageKey
LinearMemory:
type: object
properties:
initial:
description: Initial size of the linear memory in bytes
type: integer
format: uint64
maximum:
description: Optional maximal size of the linear memory in bytes
type: integer
format: uint64
required:
- initial
NameOptionTypePair:
type: object
properties:
name:
type: string
typ:
$ref: '#/components/schemas/AnalysedType'
required:
- name
NameTypePair:
type: object
properties:
name:
type: string
typ:
$ref: '#/components/schemas/AnalysedType'
required:
- name
- typ
OplogProcessorDefinition:
type: object
properties:
componentId:
type: string
format: uuid
componentVersion:
type: integer
format: uint64
required:
- componentId
- componentVersion
PluginDefinitionCreation_CloudPluginScope:
type: object
properties:
name:
type: string
version:
type: string
description:
type: string
icon:
type: array
items:
type: integer
format: uint8
homepage:
type: string
specs:
$ref: '#/components/schemas/PluginTypeSpecificCreation'
scope:
$ref: '#/components/schemas/CloudPluginScope'
required:
- name
- version
- description
- icon
- homepage
- specs
- scope
PluginDefinition_CloudPluginOwner_CloudPluginScope:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
version:
type: string
description:
type: string
icon:
type: array
items:
type: integer
format: uint8
homepage:
type: string
specs:
$ref: '#/components/schemas/PluginTypeSpecificDefinition'
scope:
$ref: '#/components/schemas/CloudPluginScope'
owner:
$ref: '#/components/schemas/CloudPluginOwner'
deleted:
type: boolean
required:
- id
- name
- version
- description
- icon
- homepage
- specs
- scope
- owner
- deleted
PluginTypeSpecificCreation:
discriminator:
propertyName: type
mapping:
ComponentTransformer: '#/components/schemas/PluginTypeSpecificCreation_ComponentTransformerDefinition'
OplogProcessor: '#/components/schemas/PluginTypeSpecificCreation_OplogProcessorDefinition'
type: object
oneOf:
- $ref: '#/components/schemas/PluginTypeSpecificCreation_ComponentTransformerDefinition'
- $ref: '#/components/schemas/PluginTypeSpecificCreation_OplogProcessorDefinition'
PluginTypeSpecificCreation_ComponentTransformerDefinition:
allOf:
- type: object
properties:
type:
example: ComponentTransformer
type: string
enum:
- ComponentTransformer
required:
- type
- $ref: '#/components/schemas/ComponentTransformerDefinition'
PluginTypeSpecificCreation_OplogProcessorDefinition:
allOf:
- type: object
properties:
type:
example: OplogProcessor
type: string
enum:
- OplogProcessor
required:
- type
- $ref: '#/components/schemas/OplogProcessorDefinition'
PluginTypeSpecificDefinition:
discriminator:
propertyName: type
mapping:
ComponentTransformer: '#/components/schemas/PluginTypeSpecificDefinition_ComponentTransformerDefinition'
OplogProcessor: '#/components/schemas/PluginTypeSpecificDefinition_OplogProcessorDefinition'
Library: '#/components/schemas/PluginTypeSpecificDefinition_LibraryPluginDefinition'
App: '#/components/schemas/PluginTypeSpecificDefinition_AppPluginDefinition'
type: object
oneOf:
- $ref: '#/components/schemas/PluginTypeSpecificDefinition_ComponentTransformerDefinition'
- $ref: '#/components/schemas/PluginTypeSpecificDefinition_OplogProcessorDefinition'
- $ref: '#/components/schemas/PluginTypeSpecificDefinition_LibraryPluginDefinition'
- $ref: '#/components/schemas/PluginTypeSpecificDefinition_AppPluginDefinition'
PluginTypeSpecificDefinition_AppPluginDefinition:
allOf:
- type: object
properties:
type:
example: App
type: string
enum:
- App
required:
- type
- $ref: '#/components/schemas/AppPluginDefinition'
PluginTypeSpecificDefinition_ComponentTransformerDefinition:
allOf:
- type: object
properties:
type:
example: ComponentTransformer
type: string
enum:
- ComponentTransformer
required:
- type
- $ref: '#/components/schemas/ComponentTransformerDefinition'
PluginTypeSpecificDefinition_LibraryPluginDefinition:
allOf:
- type: object
properties:
type:
example: Library
type: string
enum:
- Library
required:
- type
- $ref: '#/components/schemas/LibraryPluginDefinition'
PluginTypeSpecificDefinition_OplogProcessorDefinition:
allOf:
- type: object
properties:
type:
example: OplogProcessor
type: string
enum:
- OplogProcessor
required:
- type
- $ref: '#/components/schemas/OplogProcessorDefinition'
ProducerField:
type: object
properties:
name:
type: string
values:
type: array
items:
$ref: '#/components/schemas/VersionedName'
required:
- name
- values
Producers:
type: object
properties:
fields:
type: array
items:
$ref: '#/components/schemas/ProducerField'
required:
- fields
ProjectPluginScope:
type: object
properties:
projectId:
type: string
format: uuid
required:
- projectId
TypeBool:
type: object
TypeChr:
type: object
TypeEnum:
type: object
properties:
cases:
type: array
items:
type: string
required:
- cases
TypeF32:
type: object
TypeF64:
type: object
TypeFlags:
type: object
properties:
names:
type: array
items:
type: string
required:
- names
TypeHandle:
type: object
properties:
resource_id:
type: integer
format: uint64
mode:
$ref: '#/components/schemas/AnalysedResourceMode'
required:
- resource_id
- mode
TypeList:
type: object
properties:
inner:
$ref: '#/components/schemas/AnalysedType'
required:
- inner
TypeOption:
type: object
properties:
inner:
$ref: '#/components/schemas/AnalysedType'
required:
- inner
TypeRecord:
type: object
properties:
fields:
type: array
items:
$ref: '#/components/schemas/NameTypePair'
required:
- fields
TypeResult:
type: object
properties:
ok:
$ref: '#/components/schemas/AnalysedType'
err:
$ref: '#/components/schemas/AnalysedType'
TypeS16:
type: object
TypeS32:
type: object
TypeS64:
type: object
TypeS8:
type: object
TypeStr:
type: object
TypeTuple:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/AnalysedType'
required:
- items
TypeU16:
type: object
TypeU32:
type: object
TypeU64:
type: object
TypeU8:
type: object
TypeVariant:
type: object
properties:
cases:
type: array
items:
$ref: '#/components/schemas/NameOptionTypePair'
required:
- cases
VersionedComponentId:
type: object
properties:
componentId:
type: string
format: uuid
version:
type: integer
format: uint64
required:
- componentId
- version
VersionedName:
type: object
properties:
name:
type: string
version:
type: string
required:
- name
- version
WasmRpcTarget:
type: object
properties:
interfaceName:
type: string
componentName:
type: string
componentType:
$ref: '#/components/schemas/ComponentType'
required:
- interfaceName
- componentName
- componentType
ActivatePluginParameters:
type: object
properties:
timestamp:
type: string
format: date-time
plugin:
$ref: '#/components/schemas/PluginInstallationDescription'
required:
- timestamp
- plugin
ActivatePluginResponse:
type: object
ApiDefinitionInfo:
type: object
properties:
id:
type: string
version:
type: string
required:
- id
- version
ApiDeployment:
type: object
properties:
apiDefinitions:
type: array
items:
$ref: '#/components/schemas/ApiDefinitionInfo'
projectId:
type: string
format: uuid
site:
$ref: '#/components/schemas/ApiSite'
createdAt:
type: string
format: date-time
required:
- apiDefinitions
- projectId
- site
ApiDeploymentRequest:
type: object
properties:
apiDefinitions:
type: array
items:
$ref: '#/components/schemas/ApiDefinitionInfo'
projectId:
type: string
format: uuid
site:
$ref: '#/components/schemas/ApiSite'
required:
- apiDefinitions
- projectId
- site
ApiDomain:
type: object
properties:
projectId:
type: string
format: uuid
domainName:
type: string
nameServers:
type: array
items:
type: string
createdAt:
type: string
format: date-time
required:
- projectId
- domainName
- nameServers
ApiSite:
type: object
properties:
host:
type: string
subdomain:
type: string
required:
- host
CancelInvocationParameters:
type: object
properties:
timestamp:
type: string
format: date-time
idempotencyKey:
type: string
required:
- timestamp
- idempotencyKey
CancelInvocationResponse:
type: object
properties:
canceled:
type: boolean
required:
- canceled
Certificate:
type: object
properties:
id:
type: string
format: uuid
projectId:
type: string
format: uuid
domainName:
type: string
createdAt:
type: string
format: date-time
required:
- id
- projectId
- domainName
CertificateRequest:
type: object
properties:
projectId:
type: string
format: uuid
domainName:
type: string
certificateBody:
type: string
certificatePrivateKey:
type: string
required:
- projectId
- domainName
- certificateBody
- certificatePrivateKey
ChangePersistenceLevelParameters:
type: object
properties:
timestamp:
type: string
format: date-time
persistenceLevel:
$ref: '#/components/schemas/PersistenceLevel'
required:
- timestamp
- persistenceLevel
ChangeRetryPolicyParameters:
type: object
properties:
timestamp:
type: string
format: date-time
newPolicy:
$ref: '#/components/schemas/PublicRetryConfig'
required:
- timestamp
- newPolicy
CompleteParameters:
type: object
properties:
oplogIdx:
type: integer
format: uint64
data:
type: array
items:
type: integer
format: uint8
required:
- oplogIdx
- data
CreateParameters:
type: object
properties:
timestamp:
type: string
format: date-time
workerId:
$ref: '#/components/schemas/WorkerId'
componentVersion:
type: integer
format: uint64
args:
type: array
items:
type: string
env:
type: object
additionalProperties:
type: string
accountId:
type: string
parent:
$ref: '#/components/schemas/WorkerId'
componentSize:
type: integer
format: uint64
initialTotalLinearMemorySize:
type: integer
format: uint64
initialActivePlugins:
type: array
items:
$ref: '#/components/schemas/PluginInstallationDescription'
required:
- timestamp
- workerId
- componentVersion
- args
- env
- accountId
- componentSize
- initialTotalLinearMemorySize
- initialActivePlugins
DeactivatePluginParameters:
type: object
properties:
timestamp:
type: string
format: date-time
plugin:
$ref: '#/components/schemas/PluginInstallationDescription'
required:
- timestamp
- plugin
DeactivatePluginResponse:
type: object
DeleteWorkerResponse:
type: object
DescribeResourceParameters:
type: object
properties:
timestamp:
type: string
format: date-time
id:
type: integer
format: uint64
resourceName:
type: string
resourceParams:
type: array
items:
$ref: '#/components/schemas/ValueAndType'
required:
- timestamp
- id
- resourceName
- resourceParams
DomainRequest:
type: object
properties:
projectId:
type: string
format: uuid
domainName:
type: string
required:
- projectId
- domainName
EndRegionParameters:
type: object
properties:
timestamp:
type: string
format: date-time
beginIndex:
type: integer
format: uint64
required:
- timestamp
- beginIndex
ErrorParameters:
type: object
properties:
timestamp:
type: string
format: date-time
error:
type: string
required:
- timestamp
- error
ExportedFunctionCompletedParameters:
type: object
properties:
timestamp:
type: string
format: date-time
response:
$ref: '#/components/schemas/ValueAndType'
consumedFuel:
type: integer
format: int64
required:
- timestamp
- response
- consumedFuel
ExportedFunctionInvokedParameters:
type: object
properties:
timestamp:
type: string
format: date-time
functionName:
type: string
request:
type: array
items:
$ref: '#/components/schemas/ValueAndType'
idempotencyKey:
type: string
traceId:
type: string
traceStates:
type: array
items:
type: string
invocationContext:
type: array
items:
type: array
items:
$ref: '#/components/schemas/PublicSpanData'
required:
- timestamp
- functionName
- request
- idempotencyKey
- traceId
- traceStates
- invocationContext
ExportedFunctionParameters:
type: object
properties:
idempotencyKey:
type: string
fullFunctionName:
type: string
functionInput:
type: array
items:
$ref: '#/components/schemas/ValueAndType'
traceId:
type: string
traceStates:
type: array
items:
type: string
invocationContext:
type: array
items:
type: array
items:
$ref: '#/components/schemas/PublicSpanData'
required:
- idempotencyKey
- fullFunctionName
- traceId
- traceStates
- invocationContext
FailedUpdate:
type: object
properties:
timestamp:
type: string
format: date-time
targetVersion:
type: integer
format: uint64
details:
type: string
required:
- timestamp
- targetVersion
FailedUpdateParameters:
type: object
properties:
timestamp:
type: string
format: date-time
targetVersion:
type: integer
format: uint64
details:
type: string
required:
- timestamp
- targetVersion
FilterComparator:
type: string
enum:
- Equal
- NotEqual
- GreaterEqual
- Greater
- LessEqual
- Less
FinishSpanParameters:
type: object
properties:
timestamp:
type: string
format: date-time
spanId:
type: string
required:
- timestamp
- spanId
FlatComponentFileSystemNode:
type: object
properties:
name:
type: string
lastModified:
type: integer
format: uint64
kind:
$ref: '#/components/schemas/FlatComponentFileSystemNodeKind'
permissions:
$ref: '#/components/schemas/ComponentFilePermissions'
size:
type: integer
format: uint64
required:
- name
- lastModified
- kind
FlatComponentFileSystemNodeKind:
type: string
enum:
- directory
- file
GatewayBindingComponent:
type: object
properties:
name:
type: string
version:
description: |-
Version of the component. If not provided the latest version is used.
Note that the version is only used to typecheck the various rib scripts and prevent component updates.
During runtime, the actual version of the worker or the latest version (in case no worker was found) is used.
type: integer
format: uint64
required:
- name
GatewayBindingData:
type: object
properties:
bindingType:
$ref: '#/components/schemas/GatewayBindingType'
component:
$ref: '#/components/schemas/GatewayBindingComponent'
workerName:
type: string
idempotencyKey:
type: string
response:
type: string
invocationContext:
type: string
GatewayBindingResponseData:
type: object
properties:
component:
$ref: '#/components/schemas/ResolvedGatewayBindingComponent'
workerName:
type: string
idempotencyKey:
type: string
invocationContext:
type: string
response:
type: string
bindingType:
$ref: '#/components/schemas/GatewayBindingType'
responseMappingInput:
$ref: '#/components/schemas/RibInputTypeInfo'
workerNameInput:
$ref: '#/components/schemas/RibInputTypeInfo'
idempotencyKeyInput:
$ref: '#/components/schemas/RibInputTypeInfo'
corsPreflight:
$ref: '#/components/schemas/HttpCors'
responseMappingOutput:
$ref: '#/components/schemas/RibOutputTypeInfo'
GatewayBindingType:
type: string
enum:
- default
- file-server
- http-handler
- cors-preflight
GetFilesResponse:
type: object
properties:
nodes:
type: array
items:
$ref: '#/components/schemas/FlatComponentFileSystemNode'
required:
- nodes
GetOplogResponse:
type: object
properties:
entries:
type: array
items:
$ref: '#/components/schemas/PublicOplogEntryWithIndex'
next:
$ref: '#/components/schemas/OplogCursor'
firstIndexInChunk:
type: integer
format: uint64
lastIndex:
type: integer
format: uint64
required:
- entries
- firstIndexInChunk
- lastIndex
GolemError:
discriminator:
propertyName: type
mapping:
InvalidRequest: '#/components/schemas/GolemError_GolemErrorInvalidRequest'
WorkerAlreadyExists: '#/components/schemas/GolemError_GolemErrorWorkerAlreadyExists'
WorkerNotFound: '#/components/schemas/GolemError_GolemErrorWorkerNotFound'
WorkerCreationFailed: '#/components/schemas/GolemError_GolemErrorWorkerCreationFailed'
FailedToResumeWorker: '#/components/schemas/GolemError_GolemErrorFailedToResumeWorker'
ComponentDownloadFailed: '#/components/schemas/GolemError_GolemErrorComponentDownloadFailed'
ComponentParseFailed: '#/components/schemas/GolemError_GolemErrorComponentParseFailed'
GetLatestVersionOfComponentFailed: '#/components/schemas/GolemError_GolemErrorGetLatestVersionOfComponentFailed'
PromiseNotFound: '#/components/schemas/GolemError_GolemErrorPromiseNotFound'
PromiseDropped: '#/components/schemas/GolemError_GolemErrorPromiseDropped'
PromiseAlreadyCompleted: '#/components/schemas/GolemError_GolemErrorPromiseAlreadyCompleted'
Interrupted: '#/components/schemas/GolemError_GolemErrorInterrupted'
ParamTypeMismatch: '#/components/schemas/GolemError_GolemErrorParamTypeMismatch'
NoValueInMessage: '#/components/schemas/GolemError_GolemErrorNoValueInMessage'
ValueMismatch: '#/components/schemas/GolemError_GolemErrorValueMismatch'
UnexpectedOplogEntry: '#/components/schemas/GolemError_GolemErrorUnexpectedOplogEntry'
RuntimeError: '#/components/schemas/GolemError_GolemErrorRuntimeError'
InvalidShardId: '#/components/schemas/GolemError_GolemErrorInvalidShardId'
PreviousInvocationFailed: '#/components/schemas/GolemError_GolemErrorPreviousInvocationFailed'
PreviousInvocationExited: '#/components/schemas/GolemError_GolemErrorPreviousInvocationExited'
Unknown: '#/components/schemas/GolemError_GolemErrorUnknown'
InvalidAccount: '#/components/schemas/GolemError_GolemErrorInvalidAccount'
ShardingNotReady: '#/components/schemas/GolemError_GolemErrorShardingNotReady'
InitialComponentFileDownloadFailed: '#/components/schemas/GolemError_GolemErrorInitialComponentFileDownloadFailed'
FileSystemError: '#/components/schemas/GolemError_GolemErrorFileSystemError'
type: object
oneOf:
- $ref: '#/components/schemas/GolemError_GolemErrorInvalidRequest'
- $ref: '#/components/schemas/GolemError_GolemErrorWorkerAlreadyExists'
- $ref: '#/components/schemas/GolemError_GolemErrorWorkerNotFound'
- $ref: '#/components/schemas/GolemError_GolemErrorWorkerCreationFailed'
- $ref: '#/components/schemas/GolemError_GolemErrorFailedToResumeWorker'
- $ref: '#/components/schemas/GolemError_GolemErrorComponentDownloadFailed'
- $ref: '#/components/schemas/GolemError_GolemErrorComponentParseFailed'
- $ref: '#/components/schemas/GolemError_GolemErrorGetLatestVersionOfComponentFailed'
- $ref: '#/components/schemas/GolemError_GolemErrorPromiseNotFound'
- $ref: '#/components/schemas/GolemError_GolemErrorPromiseDropped'
- $ref: '#/components/schemas/GolemError_GolemErrorPromiseAlreadyCompleted'
- $ref: '#/components/schemas/GolemError_GolemErrorInterrupted'
- $ref: '#/components/schemas/GolemError_GolemErrorParamTypeMismatch'
- $ref: '#/components/schemas/GolemError_GolemErrorNoValueInMessage'
- $ref: '#/components/schemas/GolemError_GolemErrorValueMismatch'
- $ref: '#/components/schemas/GolemError_GolemErrorUnexpectedOplogEntry'
- $ref: '#/components/schemas/GolemError_GolemErrorRuntimeError'
- $ref: '#/components/schemas/GolemError_GolemErrorInvalidShardId'
- $ref: '#/components/schemas/GolemError_GolemErrorPreviousInvocationFailed'
- $ref: '#/components/schemas/GolemError_GolemErrorPreviousInvocationExited'
- $ref: '#/components/schemas/GolemError_GolemErrorUnknown'
- $ref: '#/components/schemas/GolemError_GolemErrorInvalidAccount'
- $ref: '#/components/schemas/GolemError_GolemErrorShardingNotReady'
- $ref: '#/components/schemas/GolemError_GolemErrorInitialComponentFileDownloadFailed'
- $ref: '#/components/schemas/GolemError_GolemErrorFileSystemError'
GolemErrorBody:
type: object
properties:
golemError:
$ref: '#/components/schemas/GolemError'
required:
- golemError
GolemErrorComponentDownloadFailed:
type: object
properties:
componentId:
$ref: '#/components/schemas/VersionedComponentId'
reason:
type: string
required:
- componentId
- reason
GolemErrorComponentParseFailed:
type: object
properties:
componentId:
$ref: '#/components/schemas/VersionedComponentId'
reason:
type: string
required:
- componentId
- reason
GolemErrorFailedToResumeWorker:
type: object
properties:
workerId:
$ref: '#/components/schemas/WorkerId'
reason:
$ref: '#/components/schemas/GolemError'
required:
- workerId
- reason
GolemErrorFileSystemError:
type: object
properties:
path:
type: string
reason:
type: string
required:
- path
- reason
GolemErrorGetLatestVersionOfComponentFailed:
type: object
properties:
componentId:
type: string
format: uuid
reason:
type: string
required:
- componentId
- reason
GolemErrorInitialComponentFileDownloadFailed:
type: object
properties:
path:
type: string
reason:
type: string
required:
- path
- reason
GolemErrorInterrupted:
type: object
properties:
recoverImmediately:
type: boolean
required:
- recoverImmediately
GolemErrorInvalidAccount:
type: object
GolemErrorInvalidRequest:
type: object
properties:
details:
type: string
required:
- details
GolemErrorInvalidShardId:
type: object
properties:
shardId:
$ref: '#/components/schemas/ShardId'
shardIds:
type: array
items:
$ref: '#/components/schemas/ShardId'
required:
- shardId
- shardIds
GolemErrorNoValueInMessage:
type: object
GolemErrorParamTypeMismatch:
type: object
properties:
details:
type: string
required:
- details
GolemErrorPreviousInvocationExited:
type: object
GolemErrorPreviousInvocationFailed:
type: object
properties:
details:
type: string
required:
- details
GolemErrorPromiseAlreadyCompleted:
type: object
properties:
promiseId:
$ref: '#/components/schemas/PromiseId'
required:
- promiseId
GolemErrorPromiseDropped:
type: object
properties:
promiseId:
$ref: '#/components/schemas/PromiseId'
required:
- promiseId
GolemErrorPromiseNotFound:
type: object
properties:
promiseId:
$ref: '#/components/schemas/PromiseId'
required:
- promiseId
GolemErrorRuntimeError:
type: object
properties:
details:
type: string
required:
- details
GolemErrorShardingNotReady:
type: object
GolemErrorUnexpectedOplogEntry:
type: object
properties:
expected:
type: string
got:
type: string
required:
- expected
- got
GolemErrorUnknown:
type: object
properties:
details:
type: string
required:
- details
GolemErrorValueMismatch:
type: object
properties:
details:
type: string
required:
- details
GolemErrorWorkerAlreadyExists:
type: object
properties:
workerId:
$ref: '#/components/schemas/WorkerId'
required:
- workerId
GolemErrorWorkerCreationFailed:
type: object
properties:
workerId:
$ref: '#/components/schemas/WorkerId'
details:
type: string
required:
- workerId
- details
GolemErrorWorkerNotFound:
type: object
properties:
workerId:
$ref: '#/components/schemas/WorkerId'
required:
- workerId
GolemError_GolemErrorComponentDownloadFailed:
allOf:
- type: object
properties:
type:
example: ComponentDownloadFailed
type: string
enum:
- ComponentDownloadFailed
required:
- type
- $ref: '#/components/schemas/GolemErrorComponentDownloadFailed'
GolemError_GolemErrorComponentParseFailed:
allOf:
- type: object
properties:
type:
example: ComponentParseFailed
type: string
enum:
- ComponentParseFailed
required:
- type
- $ref: '#/components/schemas/GolemErrorComponentParseFailed'
GolemError_GolemErrorFailedToResumeWorker:
allOf:
- type: object
properties:
type:
example: FailedToResumeWorker
type: string
enum:
- FailedToResumeWorker
required:
- type
- $ref: '#/components/schemas/GolemErrorFailedToResumeWorker'
GolemError_GolemErrorFileSystemError:
allOf:
- type: object
properties:
type:
example: FileSystemError
type: string
enum:
- FileSystemError
required:
- type
- $ref: '#/components/schemas/GolemErrorFileSystemError'
GolemError_GolemErrorGetLatestVersionOfComponentFailed:
allOf:
- type: object
properties:
type:
example: GetLatestVersionOfComponentFailed
type: string
enum:
- GetLatestVersionOfComponentFailed
required:
- type
- $ref: '#/components/schemas/GolemErrorGetLatestVersionOfComponentFailed'
GolemError_GolemErrorInitialComponentFileDownloadFailed:
allOf:
- type: object
properties:
type:
example: InitialComponentFileDownloadFailed
type: string
enum:
- InitialComponentFileDownloadFailed
required:
- type
- $ref: '#/components/schemas/GolemErrorInitialComponentFileDownloadFailed'
GolemError_GolemErrorInterrupted:
allOf:
- type: object
properties:
type:
example: Interrupted
type: string
enum:
- Interrupted
required:
- type
- $ref: '#/components/schemas/GolemErrorInterrupted'
GolemError_GolemErrorInvalidAccount:
allOf:
- type: object
properties:
type:
example: InvalidAccount
type: string
enum:
- InvalidAccount
required:
- type
- $ref: '#/components/schemas/GolemErrorInvalidAccount'
GolemError_GolemErrorInvalidRequest:
allOf:
- type: object
properties:
type:
example: InvalidRequest
type: string
enum:
- InvalidRequest
required:
- type
- $ref: '#/components/schemas/GolemErrorInvalidRequest'
GolemError_GolemErrorInvalidShardId:
allOf:
- type: object
properties:
type:
example: InvalidShardId
type: string
enum:
- InvalidShardId
required:
- type
- $ref: '#/components/schemas/GolemErrorInvalidShardId'
GolemError_GolemErrorNoValueInMessage:
allOf:
- type: object
properties:
type:
example: NoValueInMessage
type: string
enum:
- NoValueInMessage
required:
- type
- $ref: '#/components/schemas/GolemErrorNoValueInMessage'
GolemError_GolemErrorParamTypeMismatch:
allOf:
- type: object
properties:
type:
example: ParamTypeMismatch
type: string
enum:
- ParamTypeMismatch
required:
- type
- $ref: '#/components/schemas/GolemErrorParamTypeMismatch'
GolemError_GolemErrorPreviousInvocationExited:
allOf:
- type: object
properties:
type:
example: PreviousInvocationExited
type: string
enum:
- PreviousInvocationExited
required:
- type
- $ref: '#/components/schemas/GolemErrorPreviousInvocationExited'
GolemError_GolemErrorPreviousInvocationFailed:
allOf:
- type: object
properties:
type:
example: PreviousInvocationFailed
type: string
enum:
- PreviousInvocationFailed
required:
- type
- $ref: '#/components/schemas/GolemErrorPreviousInvocationFailed'
GolemError_GolemErrorPromiseAlreadyCompleted:
allOf:
- type: object
properties:
type:
example: PromiseAlreadyCompleted
type: string
enum:
- PromiseAlreadyCompleted
required:
- type
- $ref: '#/components/schemas/GolemErrorPromiseAlreadyCompleted'
GolemError_GolemErrorPromiseDropped:
allOf:
- type: object
properties:
type:
example: PromiseDropped
type: string
enum:
- PromiseDropped
required:
- type
- $ref: '#/components/schemas/GolemErrorPromiseDropped'
GolemError_GolemErrorPromiseNotFound:
allOf:
- type: object
properties:
type:
example: PromiseNotFound
type: string
enum:
- PromiseNotFound
required:
- type
- $ref: '#/components/schemas/GolemErrorPromiseNotFound'
GolemError_GolemErrorRuntimeError:
allOf:
- type: object
properties:
type:
example: RuntimeError
type: string
enum:
- RuntimeError
required:
- type
- $ref: '#/components/schemas/GolemErrorRuntimeError'
GolemError_GolemErrorShardingNotReady:
allOf:
- type: object
properties:
type:
example: ShardingNotReady
type: string
enum:
- ShardingNotReady
required:
- type
- $ref: '#/components/schemas/GolemErrorShardingNotReady'
GolemError_GolemErrorUnexpectedOplogEntry:
allOf:
- type: object
properties:
type:
example: UnexpectedOplogEntry
type: string
enum:
- UnexpectedOplogEntry
required:
- type
- $ref: '#/components/schemas/GolemErrorUnexpectedOplogEntry'
GolemError_GolemErrorUnknown:
allOf:
- type: object
properties:
type:
example: Unknown
type: string
enum:
- Unknown
required:
- type
- $ref: '#/components/schemas/GolemErrorUnknown'
GolemError_GolemErrorValueMismatch:
allOf:
- type: object
properties:
type:
example: ValueMismatch
type: string
enum:
- ValueMismatch
required:
- type
- $ref: '#/components/schemas/GolemErrorValueMismatch'
GolemError_GolemErrorWorkerAlreadyExists:
allOf:
- type: object
properties:
type:
example: WorkerAlreadyExists
type: string
enum:
- WorkerAlreadyExists
required:
- type
- $ref: '#/components/schemas/GolemErrorWorkerAlreadyExists'
GolemError_GolemErrorWorkerCreationFailed:
allOf:
- type: object
properties:
type:
example: WorkerCreationFailed
type: string
enum:
- WorkerCreationFailed
required:
- type
- $ref: '#/components/schemas/GolemErrorWorkerCreationFailed'
GolemError_GolemErrorWorkerNotFound:
allOf:
- type: object
properties:
type:
example: WorkerNotFound
type: string
enum:
- WorkerNotFound
required:
- type
- $ref: '#/components/schemas/GolemErrorWorkerNotFound'
GrowMemoryParameters:
type: object
properties:
timestamp:
type: string
format: date-time
delta:
type: integer
format: uint64
required:
- timestamp
- delta
HttpApiDefinitionRequest:
type: object
properties:
id:
type: string
version:
type: string
security:
type: array
items:
type: string
routes:
type: array
items:
$ref: '#/components/schemas/RouteRequestData'
draft:
type: boolean
required:
- id
- version
- routes
- draft
HttpApiDefinitionResponseData:
type: object
properties:
id:
type: string
version:
type: string
routes:
type: array
items:
$ref: '#/components/schemas/RouteResponseData'
draft:
type: boolean
createdAt:
type: string
format: date-time
required:
- id
- version
- routes
- draft
HttpCors:
type: object
properties:
allowOrigin:
type: string
allowMethods:
type: string
allowHeaders:
type: string
exposeHeaders:
type: string
allowCredentials:
type: boolean
maxAge:
type: integer
format: uint64
required:
- allowOrigin
- allowMethods
- allowHeaders
ImportedFunctionInvokedParameters:
type: object
properties:
timestamp:
type: string
format: date-time
functionName:
type: string
request:
$ref: '#/components/schemas/ValueAndType'
response:
$ref: '#/components/schemas/ValueAndType'
wrappedFunctionType:
$ref: '#/components/schemas/PublicDurableFunctionType'
required:
- timestamp
- functionName
- request
- response
- wrappedFunctionType
IndexedWorkerMetadata:
type: object
properties:
resourceName:
type: string
resourceParams:
type: array
items:
type: string
required:
- resourceName
- resourceParams
InterruptResponse:
type: object
InvokeParameters:
type: object
properties:
params:
type: array
items:
$ref: '#/components/schemas/ValueAndOptionalType'
required:
- params
InvokeResponse:
type: object
InvokeResult:
type: object
properties:
result:
$ref: '#/components/schemas/TypeAnnotatedValue'
required:
- result
JumpParameters:
type: object
properties:
timestamp:
type: string
format: date-time
jump:
$ref: '#/components/schemas/OplogRegion'
required:
- timestamp
- jump
LogLevel:
description: Worker log levels including the special stdout and stderr channels
type: string
enum:
- Stdout
- Stderr
- Trace
- Debug
- Info
- Warn
- Error
- Critical
LogParameters:
type: object
properties:
timestamp:
type: string
format: date-time
level:
$ref: '#/components/schemas/LogLevel'
context:
type: string
message:
type: string
required:
- timestamp
- level
- context
- message
ManualUpdateParameters:
type: object
properties:
targetVersion:
type: integer
format: uint64
required:
- targetVersion
MessageBody:
type: object
properties:
message:
type: string
required:
- message
MessagesErrorsBody:
type: object
properties:
errors:
type: array
items:
type: string
required:
- errors
MethodPattern:
type: string
enum:
- Get
- Connect
- Post
- Delete
- Put
- Patch
- Options
- Trace
- Head
OplogCursor:
type: object
properties:
nextOplogIndex:
type: integer
format: uint64
currentComponentVersion:
type: integer
format: uint64
required:
- nextOplogIndex
- currentComponentVersion
OplogRegion:
type: object
properties:
start:
type: integer
format: uint64
end:
type: integer
format: uint64
required:
- start
- end
PendingUpdate:
type: object
properties:
timestamp:
type: string
format: date-time
targetVersion:
type: integer
format: uint64
required:
- timestamp
- targetVersion
PendingUpdateParameters:
type: object
properties:
timestamp:
type: string
format: date-time
target_version:
type: integer
format: uint64
description:
$ref: '#/components/schemas/PublicUpdateDescription'
required:
- timestamp
- target_version
- description
PendingWorkerInvocationParameters:
type: object
properties:
timestamp:
type: string
format: date-time
invocation:
$ref: '#/components/schemas/PublicWorkerInvocation'
required:
- timestamp
- invocation
PersistenceLevel:
type: string
enum:
- PersistNothing
- PersistRemoteSideEffects
- Smart
PluginInstallationDescription:
type: object
properties:
installationId:
type: string
format: uuid
pluginName:
type: string
pluginVersion:
type: string
registered:
type: boolean
parameters:
type: object
additionalProperties:
type: string
required:
- installationId
- pluginName
- pluginVersion
- registered
- parameters
PromiseId:
type: object
properties:
workerId:
$ref: '#/components/schemas/WorkerId'
oplogIdx:
type: integer
format: uint64
required:
- workerId
- oplogIdx
Provider:
type: string
enum:
- Google
- Facebook
- Microsoft
- Gitlab
PublicAttributeValue:
discriminator:
propertyName: type
mapping:
String: '#/components/schemas/PublicAttributeValue_StringAttributeValue'
type: object
oneOf:
- $ref: '#/components/schemas/PublicAttributeValue_StringAttributeValue'
PublicAttributeValue_StringAttributeValue:
allOf:
- type: object
properties:
type:
example: String
type: string
enum:
- String
required:
- type
- $ref: '#/components/schemas/StringAttributeValue'
PublicDurableFunctionType:
discriminator:
propertyName: type
mapping:
ReadLocal: '#/components/schemas/PublicDurableFunctionType_Empty'
WriteLocal: '#/components/schemas/PublicDurableFunctionType_Empty'
ReadRemote: '#/components/schemas/PublicDurableFunctionType_Empty'
WriteRemote: '#/components/schemas/PublicDurableFunctionType_Empty'
WriteRemoteBatched: '#/components/schemas/PublicDurableFunctionType_WriteRemoteBatchedParameters'
type: object
oneOf:
- $ref: '#/components/schemas/PublicDurableFunctionType_Empty'
- $ref: '#/components/schemas/PublicDurableFunctionType_Empty'
- $ref: '#/components/schemas/PublicDurableFunctionType_Empty'
- $ref: '#/components/schemas/PublicDurableFunctionType_Empty'
- $ref: '#/components/schemas/PublicDurableFunctionType_WriteRemoteBatchedParameters'
PublicDurableFunctionType_Empty:
allOf:
- type: object
properties:
type:
example: WriteRemote
type: string
enum:
- WriteRemote
required:
- type
- $ref: '#/components/schemas/Empty'
PublicDurableFunctionType_WriteRemoteBatchedParameters:
allOf:
- type: object
properties:
type:
example: WriteRemoteBatched
type: string
enum:
- WriteRemoteBatched
required:
- type
- $ref: '#/components/schemas/WriteRemoteBatchedParameters'
PublicExternalSpanData:
type: object
properties:
spanId:
type: string
required:
- spanId
PublicLocalSpanData:
type: object
properties:
spanId:
type: string
start:
type: string
format: date-time
parentId:
type: string
linkedContext:
type: integer
format: uint64
attributes:
type: object
additionalProperties:
$ref: '#/components/schemas/PublicAttributeValue'
inherited:
type: boolean
required:
- spanId
- start
- attributes
- inherited
PublicOplogEntry:
description: |-
A mirror of the core `OplogEntry` type, without the undefined arbitrary payloads.
Instead, it encodes all payloads with wasm-rpc `Value` types. This makes this the base type
for exposing oplog entries through various APIs such as gRPC, REST and WIT.
The rest of the system will always use `OplogEntry` internally - the only point where the
oplog payloads are decoded and re-encoded as `Value` is in this module, and it should only be used
before exposing an oplog entry through a public API.
discriminator:
propertyName: type
mapping:
Create: '#/components/schemas/PublicOplogEntry_CreateParameters'
ImportedFunctionInvoked: '#/components/schemas/PublicOplogEntry_ImportedFunctionInvokedParameters'
ExportedFunctionInvoked: '#/components/schemas/PublicOplogEntry_ExportedFunctionInvokedParameters'
ExportedFunctionCompleted: '#/components/schemas/PublicOplogEntry_ExportedFunctionCompletedParameters'
Suspend: '#/components/schemas/PublicOplogEntry_TimestampParameter'
Error: '#/components/schemas/PublicOplogEntry_ErrorParameters'
NoOp: '#/components/schemas/PublicOplogEntry_TimestampParameter'
Jump: '#/components/schemas/PublicOplogEntry_JumpParameters'
Interrupted: '#/components/schemas/PublicOplogEntry_TimestampParameter'
Exited: '#/components/schemas/PublicOplogEntry_TimestampParameter'
ChangeRetryPolicy: '#/components/schemas/PublicOplogEntry_ChangeRetryPolicyParameters'
BeginAtomicRegion: '#/components/schemas/PublicOplogEntry_TimestampParameter'
EndAtomicRegion: '#/components/schemas/PublicOplogEntry_EndRegionParameters'
BeginRemoteWrite: '#/components/schemas/PublicOplogEntry_TimestampParameter'
EndRemoteWrite: '#/components/schemas/PublicOplogEntry_EndRegionParameters'
PendingWorkerInvocation: '#/components/schemas/PublicOplogEntry_PendingWorkerInvocationParameters'
PendingUpdate: '#/components/schemas/PublicOplogEntry_PendingUpdateParameters'
SuccessfulUpdate: '#/components/schemas/PublicOplogEntry_SuccessfulUpdateParameters'
FailedUpdate: '#/components/schemas/PublicOplogEntry_FailedUpdateParameters'
GrowMemory: '#/components/schemas/PublicOplogEntry_GrowMemoryParameters'
CreateResource: '#/components/schemas/PublicOplogEntry_ResourceParameters'
DropResource: '#/components/schemas/PublicOplogEntry_ResourceParameters'
DescribeResource: '#/components/schemas/PublicOplogEntry_DescribeResourceParameters'
Log: '#/components/schemas/PublicOplogEntry_LogParameters'
Restart: '#/components/schemas/PublicOplogEntry_TimestampParameter'
ActivatePlugin: '#/components/schemas/PublicOplogEntry_ActivatePluginParameters'
DeactivatePlugin: '#/components/schemas/PublicOplogEntry_DeactivatePluginParameters'
Revert: '#/components/schemas/PublicOplogEntry_RevertParameters'
CancelInvocation: '#/components/schemas/PublicOplogEntry_CancelInvocationParameters'
StartSpan: '#/components/schemas/PublicOplogEntry_StartSpanParameters'
FinishSpan: '#/components/schemas/PublicOplogEntry_FinishSpanParameters'
SetSpanAttribute: '#/components/schemas/PublicOplogEntry_SetSpanAttributeParameters'
ChangePersistenceLevel: '#/components/schemas/PublicOplogEntry_ChangePersistenceLevelParameters'
type: object
oneOf:
- $ref: '#/components/schemas/PublicOplogEntry_CreateParameters'
- $ref: '#/components/schemas/PublicOplogEntry_ImportedFunctionInvokedParameters'
- $ref: '#/components/schemas/PublicOplogEntry_ExportedFunctionInvokedParameters'
- $ref: '#/components/schemas/PublicOplogEntry_ExportedFunctionCompletedParameters'
- $ref: '#/components/schemas/PublicOplogEntry_TimestampParameter'
- $ref: '#/components/schemas/PublicOplogEntry_ErrorParameters'
- $ref: '#/components/schemas/PublicOplogEntry_TimestampParameter'
- $ref: '#/components/schemas/PublicOplogEntry_JumpParameters'
- $ref: '#/components/schemas/PublicOplogEntry_TimestampParameter'
- $ref: '#/components/schemas/PublicOplogEntry_TimestampParameter'
- $ref: '#/components/schemas/PublicOplogEntry_ChangeRetryPolicyParameters'
- $ref: '#/components/schemas/PublicOplogEntry_TimestampParameter'
- $ref: '#/components/schemas/PublicOplogEntry_EndRegionParameters'
- $ref: '#/components/schemas/PublicOplogEntry_TimestampParameter'
- $ref: '#/components/schemas/PublicOplogEntry_EndRegionParameters'
- $ref: '#/components/schemas/PublicOplogEntry_PendingWorkerInvocationParameters'
- $ref: '#/components/schemas/PublicOplogEntry_PendingUpdateParameters'
- $ref: '#/components/schemas/PublicOplogEntry_SuccessfulUpdateParameters'
- $ref: '#/components/schemas/PublicOplogEntry_FailedUpdateParameters'
- $ref: '#/components/schemas/PublicOplogEntry_GrowMemoryParameters'
- $ref: '#/components/schemas/PublicOplogEntry_ResourceParameters'
- $ref: '#/components/schemas/PublicOplogEntry_ResourceParameters'
- $ref: '#/components/schemas/PublicOplogEntry_DescribeResourceParameters'
- $ref: '#/components/schemas/PublicOplogEntry_LogParameters'
- $ref: '#/components/schemas/PublicOplogEntry_TimestampParameter'
- $ref: '#/components/schemas/PublicOplogEntry_ActivatePluginParameters'
- $ref: '#/components/schemas/PublicOplogEntry_DeactivatePluginParameters'
- $ref: '#/components/schemas/PublicOplogEntry_RevertParameters'
- $ref: '#/components/schemas/PublicOplogEntry_CancelInvocationParameters'
- $ref: '#/components/schemas/PublicOplogEntry_StartSpanParameters'
- $ref: '#/components/schemas/PublicOplogEntry_FinishSpanParameters'
- $ref: '#/components/schemas/PublicOplogEntry_SetSpanAttributeParameters'
- $ref: '#/components/schemas/PublicOplogEntry_ChangePersistenceLevelParameters'
PublicOplogEntryWithIndex:
type: object
properties:
oplogIndex:
type: integer
format: uint64
entry:
$ref: '#/components/schemas/PublicOplogEntry'
required:
- oplogIndex
- entry
PublicOplogEntry_ActivatePluginParameters:
allOf:
- type: object
properties:
type:
example: ActivatePlugin
type: string
enum:
- ActivatePlugin
required:
- type
- $ref: '#/components/schemas/ActivatePluginParameters'
PublicOplogEntry_CancelInvocationParameters:
allOf:
- type: object
properties:
type:
example: CancelInvocation
type: string
enum:
- CancelInvocation
required:
- type
- $ref: '#/components/schemas/CancelInvocationParameters'
PublicOplogEntry_ChangePersistenceLevelParameters:
allOf:
- type: object
properties:
type:
example: ChangePersistenceLevel
type: string
enum:
- ChangePersistenceLevel
required:
- type
- $ref: '#/components/schemas/ChangePersistenceLevelParameters'
PublicOplogEntry_ChangeRetryPolicyParameters:
allOf:
- type: object
properties:
type:
example: ChangeRetryPolicy
type: string
enum:
- ChangeRetryPolicy
required:
- type
- $ref: '#/components/schemas/ChangeRetryPolicyParameters'
PublicOplogEntry_CreateParameters:
allOf:
- type: object
properties:
type:
example: Create
type: string
enum:
- Create
required:
- type
- $ref: '#/components/schemas/CreateParameters'
PublicOplogEntry_DeactivatePluginParameters:
allOf:
- type: object
properties:
type:
example: DeactivatePlugin
type: string
enum:
- DeactivatePlugin
required:
- type
- $ref: '#/components/schemas/DeactivatePluginParameters'
PublicOplogEntry_DescribeResourceParameters:
allOf:
- type: object
properties:
type:
example: DescribeResource
type: string
enum:
- DescribeResource
required:
- type
- $ref: '#/components/schemas/DescribeResourceParameters'
PublicOplogEntry_EndRegionParameters:
allOf:
- type: object
properties:
type:
example: EndRemoteWrite
type: string
enum:
- EndRemoteWrite
required:
- type
- $ref: '#/components/schemas/EndRegionParameters'
PublicOplogEntry_ErrorParameters:
allOf:
- type: object
properties:
type:
example: Error
type: string
enum:
- Error
required:
- type
- $ref: '#/components/schemas/ErrorParameters'
PublicOplogEntry_ExportedFunctionCompletedParameters:
allOf:
- type: object
properties:
type:
example: ExportedFunctionCompleted
type: string
enum:
- ExportedFunctionCompleted
required:
- type
- $ref: '#/components/schemas/ExportedFunctionCompletedParameters'
PublicOplogEntry_ExportedFunctionInvokedParameters:
allOf:
- type: object
properties:
type:
example: ExportedFunctionInvoked
type: string
enum:
- ExportedFunctionInvoked
required:
- type
- $ref: '#/components/schemas/ExportedFunctionInvokedParameters'
PublicOplogEntry_FailedUpdateParameters:
allOf:
- type: object
properties:
type:
example: FailedUpdate
type: string
enum:
- FailedUpdate
required:
- type
- $ref: '#/components/schemas/FailedUpdateParameters'
PublicOplogEntry_FinishSpanParameters:
allOf:
- type: object
properties:
type:
example: FinishSpan
type: string
enum:
- FinishSpan
required:
- type
- $ref: '#/components/schemas/FinishSpanParameters'
PublicOplogEntry_GrowMemoryParameters:
allOf:
- type: object
properties:
type:
example: GrowMemory
type: string
enum:
- GrowMemory
required:
- type
- $ref: '#/components/schemas/GrowMemoryParameters'
PublicOplogEntry_ImportedFunctionInvokedParameters:
allOf:
- type: object
properties:
type:
example: ImportedFunctionInvoked
type: string
enum:
- ImportedFunctionInvoked
required:
- type
- $ref: '#/components/schemas/ImportedFunctionInvokedParameters'
PublicOplogEntry_JumpParameters:
allOf:
- type: object
properties:
type:
example: Jump
type: string
enum:
- Jump
required:
- type
- $ref: '#/components/schemas/JumpParameters'
PublicOplogEntry_LogParameters:
allOf:
- type: object
properties:
type:
example: Log
type: string
enum:
- Log
required:
- type
- $ref: '#/components/schemas/LogParameters'
PublicOplogEntry_PendingUpdateParameters:
allOf:
- type: object
properties:
type:
example: PendingUpdate
type: string
enum:
- PendingUpdate
required:
- type
- $ref: '#/components/schemas/PendingUpdateParameters'
PublicOplogEntry_PendingWorkerInvocationParameters:
allOf:
- type: object
properties:
type:
example: PendingWorkerInvocation
type: string
enum:
- PendingWorkerInvocation
required:
- type
- $ref: '#/components/schemas/PendingWorkerInvocationParameters'
PublicOplogEntry_ResourceParameters:
allOf:
- type: object
properties:
type:
example: DropResource
type: string
enum:
- DropResource
required:
- type
- $ref: '#/components/schemas/ResourceParameters'
PublicOplogEntry_RevertParameters:
allOf:
- type: object
properties:
type:
example: Revert
type: string
enum:
- Revert
required:
- type
- $ref: '#/components/schemas/RevertParameters'
PublicOplogEntry_SetSpanAttributeParameters:
allOf:
- type: object
properties:
type:
example: SetSpanAttribute
type: string
enum:
- SetSpanAttribute
required:
- type
- $ref: '#/components/schemas/SetSpanAttributeParameters'
PublicOplogEntry_StartSpanParameters:
allOf:
- type: object
properties:
type:
example: StartSpan
type: string
enum:
- StartSpan
required:
- type
- $ref: '#/components/schemas/StartSpanParameters'
PublicOplogEntry_SuccessfulUpdateParameters:
allOf:
- type: object
properties:
type:
example: SuccessfulUpdate
type: string
enum:
- SuccessfulUpdate
required:
- type
- $ref: '#/components/schemas/SuccessfulUpdateParameters'
PublicOplogEntry_TimestampParameter:
allOf:
- type: object
properties:
type:
example: Restart
type: string
enum:
- Restart
required:
- type
- $ref: '#/components/schemas/TimestampParameter'
PublicRetryConfig:
type: object
properties:
maxAttempts:
type: integer
format: uint32
minDelay:
type: string
format: duration
maxDelay:
type: string
format: duration
multiplier:
type: number
format: double
maxJitterFactor:
type: number
format: double
required:
- maxAttempts
- minDelay
- maxDelay
- multiplier
PublicSpanData:
discriminator:
propertyName: type
mapping:
LocalSpan: '#/components/schemas/PublicSpanData_PublicLocalSpanData'
ExternalSpan: '#/components/schemas/PublicSpanData_PublicExternalSpanData'
type: object
oneOf:
- $ref: '#/components/schemas/PublicSpanData_PublicLocalSpanData'
- $ref: '#/components/schemas/PublicSpanData_PublicExternalSpanData'
PublicSpanData_PublicExternalSpanData:
allOf:
- type: object
properties:
type:
example: ExternalSpan
type: string
enum:
- ExternalSpan
required:
- type
- $ref: '#/components/schemas/PublicExternalSpanData'
PublicSpanData_PublicLocalSpanData:
allOf:
- type: object
properties:
type:
example: LocalSpan
type: string
enum:
- LocalSpan
required:
- type
- $ref: '#/components/schemas/PublicLocalSpanData'
PublicUpdateDescription:
discriminator:
propertyName: type
mapping:
Automatic: '#/components/schemas/PublicUpdateDescription_Empty'
SnapshotBased: '#/components/schemas/PublicUpdateDescription_SnapshotBasedUpdateParameters'
type: object
oneOf:
- $ref: '#/components/schemas/PublicUpdateDescription_Empty'
- $ref: '#/components/schemas/PublicUpdateDescription_SnapshotBasedUpdateParameters'
PublicUpdateDescription_Empty:
allOf:
- type: object
properties:
type:
example: Automatic
type: string
enum:
- Automatic
required:
- type
- $ref: '#/components/schemas/Empty'
PublicUpdateDescription_SnapshotBasedUpdateParameters:
allOf:
- type: object
properties:
type:
example: SnapshotBased
type: string
enum:
- SnapshotBased
required:
- type
- $ref: '#/components/schemas/SnapshotBasedUpdateParameters'
PublicWorkerInvocation:
discriminator:
propertyName: type
mapping:
ExportedFunction: '#/components/schemas/PublicWorkerInvocation_ExportedFunctionParameters'
ManualUpdate: '#/components/schemas/PublicWorkerInvocation_ManualUpdateParameters'
type: object
oneOf:
- $ref: '#/components/schemas/PublicWorkerInvocation_ExportedFunctionParameters'
- $ref: '#/components/schemas/PublicWorkerInvocation_ManualUpdateParameters'
PublicWorkerInvocation_ExportedFunctionParameters:
allOf:
- type: object
properties:
type:
example: ExportedFunction
type: string
enum:
- ExportedFunction
required:
- type
- $ref: '#/components/schemas/ExportedFunctionParameters'
PublicWorkerInvocation_ManualUpdateParameters:
allOf:
- type: object
properties:
type:
example: ManualUpdate
type: string
enum:
- ManualUpdate
required:
- type
- $ref: '#/components/schemas/ManualUpdateParameters'
ResolvedGatewayBindingComponent:
type: object
properties:
name:
type: string
version:
type: integer
format: uint64
required:
- name
- version
ResourceMetadata:
type: object
properties:
createdAt:
type: string
format: date-time
indexed:
$ref: '#/components/schemas/IndexedWorkerMetadata'
required:
- createdAt
ResourceParameters:
type: object
properties:
timestamp:
type: string
format: date-time
id:
type: integer
format: uint64
required:
- timestamp
- id
ResumeResponse:
type: object
RevertLastInvocations:
type: object
properties:
numberOfInvocations:
type: integer
format: uint64
required:
- numberOfInvocations
RevertParameters:
type: object
properties:
timestamp:
type: string
format: date-time
droppedRegion:
$ref: '#/components/schemas/OplogRegion'
required:
- timestamp
- droppedRegion
RevertToOplogIndex:
type: object
properties:
lastOplogIndex:
type: integer
format: uint64
required:
- lastOplogIndex
RevertWorkerResponse:
type: object
RevertWorkerTarget:
discriminator:
propertyName: type
mapping:
revertToOplogIndex: '#/components/schemas/RevertWorkerTarget_RevertToOplogIndex'
revertLastInvocations: '#/components/schemas/RevertWorkerTarget_RevertLastInvocations'
type: object
oneOf:
- $ref: '#/components/schemas/RevertWorkerTarget_RevertToOplogIndex'
- $ref: '#/components/schemas/RevertWorkerTarget_RevertLastInvocations'
RevertWorkerTarget_RevertLastInvocations:
allOf:
- type: object
properties:
type:
example: revertLastInvocations
type: string
enum:
- revertLastInvocations
required:
- type
- $ref: '#/components/schemas/RevertLastInvocations'
RevertWorkerTarget_RevertToOplogIndex:
allOf:
- type: object
properties:
type:
example: revertToOplogIndex
type: string
enum:
- revertToOplogIndex
required:
- type
- $ref: '#/components/schemas/RevertToOplogIndex'
RibInputTypeInfo:
type: object
properties:
types:
type: object
additionalProperties:
$ref: '#/components/schemas/AnalysedType'
required:
- types
RibOutputTypeInfo:
type: object
properties:
analysedType:
$ref: '#/components/schemas/AnalysedType'
required:
- analysedType
RouteRequestData:
type: object
properties:
method:
$ref: '#/components/schemas/MethodPattern'
path:
type: string
binding:
$ref: '#/components/schemas/GatewayBindingData'
security:
type: string
required:
- method
- path
- binding
RouteResponseData:
type: object
properties:
method:
$ref: '#/components/schemas/MethodPattern'
path:
type: string
security:
type: string
binding:
$ref: '#/components/schemas/GatewayBindingResponseData'
required:
- method
- path
- binding
ScanCursor:
type: object
properties:
cursor:
type: integer
format: uint64
layer:
type: integer
format: uint64
required:
- cursor
- layer
SecuritySchemeData:
type: object
properties:
providerType:
$ref: '#/components/schemas/Provider'
schemeIdentifier:
type: string
clientId:
type: string
clientSecret:
type: string
redirectUrl:
type: string
scopes:
type: array
items:
type: string
required:
- providerType
- schemeIdentifier
- clientId
- clientSecret
- redirectUrl
- scopes
SetSpanAttributeParameters:
type: object
properties:
timestamp:
type: string
format: date-time
spanId:
type: string
key:
type: string
value:
$ref: '#/components/schemas/PublicAttributeValue'
required:
- timestamp
- spanId
- key
- value
ShardId:
type: object
properties:
value:
type: integer
format: int64
required:
- value
SnapshotBasedUpdateParameters:
type: object
properties:
payload:
type: array
items:
type: integer
format: uint8
required:
- payload
StartSpanParameters:
type: object
properties:
timestamp:
type: string
format: date-time
spanId:
type: string
parentId:
type: string
linkedContext:
type: string
attributes:
type: object
additionalProperties:
$ref: '#/components/schemas/PublicAttributeValue'
required:
- timestamp
- spanId
- attributes
StringAttributeValue:
type: object
properties:
value:
type: string
required:
- value
StringFilterComparator:
type: string
enum:
- Equal
- NotEqual
- Like
- NotLike
SuccessfulUpdate:
type: object
properties:
timestamp:
type: string
format: date-time
targetVersion:
type: integer
format: uint64
required:
- timestamp
- targetVersion
SuccessfulUpdateParameters:
type: object
properties:
timestamp:
type: string
format: date-time
target_version:
type: integer
format: uint64
new_component_size:
type: integer
format: uint64
new_active_plugins:
type: array
items:
$ref: '#/components/schemas/PluginInstallationDescription'
required:
- timestamp
- target_version
- new_component_size
- new_active_plugins
TimestampParameter:
type: object
properties:
timestamp:
type: string
format: date-time
required:
- timestamp
TypeAnnotatedValue:
type: object
properties:
typ:
$ref: '#/components/schemas/AnalysedType'
value: {}
required:
- typ
- value
UpdateRecord:
discriminator:
propertyName: type
mapping:
pendingUpdate: '#/components/schemas/UpdateRecord_PendingUpdate'
successfulUpdate: '#/components/schemas/UpdateRecord_SuccessfulUpdate'
failedUpdate: '#/components/schemas/UpdateRecord_FailedUpdate'
type: object
oneOf:
- $ref: '#/components/schemas/UpdateRecord_PendingUpdate'
- $ref: '#/components/schemas/UpdateRecord_SuccessfulUpdate'
- $ref: '#/components/schemas/UpdateRecord_FailedUpdate'
UpdateRecord_FailedUpdate:
allOf:
- type: object
properties:
type:
example: failedUpdate
type: string
enum:
- failedUpdate
required:
- type
- $ref: '#/components/schemas/FailedUpdate'
UpdateRecord_PendingUpdate:
allOf:
- type: object
properties:
type:
example: pendingUpdate
type: string
enum:
- pendingUpdate
required:
- type
- $ref: '#/components/schemas/PendingUpdate'
UpdateRecord_SuccessfulUpdate:
allOf:
- type: object
properties:
type:
example: successfulUpdate
type: string
enum:
- successfulUpdate
required:
- type
- $ref: '#/components/schemas/SuccessfulUpdate'
UpdateWorkerRequest:
type: object
properties:
mode:
$ref: '#/components/schemas/WorkerUpdateMode'
targetVersion:
type: integer
format: uint64
required:
- mode
- targetVersion
UpdateWorkerResponse:
type: object
ValidationErrorsBody:
type: object
properties:
errors:
type: array
items:
type: string
required:
- errors
ValueAndOptionalType:
type: object
properties:
typ:
$ref: '#/components/schemas/AnalysedType'
value: {}
required:
- value
ValueAndType:
type: object
properties:
typ:
$ref: '#/components/schemas/AnalysedType'
value: {}
required:
- typ
- value
WorkerAndFilter:
type: object
properties:
filters:
type: array
items:
$ref: '#/components/schemas/WorkerFilter'
required:
- filters
WorkerCreatedAtFilter:
type: object
properties:
comparator:
$ref: '#/components/schemas/FilterComparator'
value:
type: string
format: date-time
required:
- comparator
- value
WorkerCreationRequest:
type: object
properties:
name:
type: string
args:
type: array
items:
type: string
env:
type: object
additionalProperties:
type: string
required:
- name
- args
- env
WorkerCreationResponse:
type: object
properties:
workerId:
$ref: '#/components/schemas/WorkerId'
componentVersion:
type: integer
format: uint64
required:
- workerId
- componentVersion
WorkerEnvFilter:
type: object
properties:
name:
type: string
comparator:
$ref: '#/components/schemas/StringFilterComparator'
value:
type: string
required:
- name
- comparator
- value
WorkerFilter:
discriminator:
propertyName: type
mapping:
Name: '#/components/schemas/WorkerFilter_WorkerNameFilter'
Status: '#/components/schemas/WorkerFilter_WorkerStatusFilter'
Version: '#/components/schemas/WorkerFilter_WorkerVersionFilter'
CreatedAt: '#/components/schemas/WorkerFilter_WorkerCreatedAtFilter'
Env: '#/components/schemas/WorkerFilter_WorkerEnvFilter'
And: '#/components/schemas/WorkerFilter_WorkerAndFilter'
Or: '#/components/schemas/WorkerFilter_WorkerOrFilter'
Not: '#/components/schemas/WorkerFilter_WorkerNotFilter'
type: object
oneOf:
- $ref: '#/components/schemas/WorkerFilter_WorkerNameFilter'
- $ref: '#/components/schemas/WorkerFilter_WorkerStatusFilter'
- $ref: '#/components/schemas/WorkerFilter_WorkerVersionFilter'
- $ref: '#/components/schemas/WorkerFilter_WorkerCreatedAtFilter'
- $ref: '#/components/schemas/WorkerFilter_WorkerEnvFilter'
- $ref: '#/components/schemas/WorkerFilter_WorkerAndFilter'
- $ref: '#/components/schemas/WorkerFilter_WorkerOrFilter'
- $ref: '#/components/schemas/WorkerFilter_WorkerNotFilter'
WorkerFilter_WorkerAndFilter:
allOf:
- type: object
properties:
type:
example: And
type: string
enum:
- And
required:
- type
- $ref: '#/components/schemas/WorkerAndFilter'
WorkerFilter_WorkerCreatedAtFilter:
allOf:
- type: object
properties:
type:
example: CreatedAt
type: string
enum:
- CreatedAt
required:
- type
- $ref: '#/components/schemas/WorkerCreatedAtFilter'
WorkerFilter_WorkerEnvFilter:
allOf:
- type: object
properties:
type:
example: Env
type: string
enum:
- Env
required:
- type
- $ref: '#/components/schemas/WorkerEnvFilter'
WorkerFilter_WorkerNameFilter:
allOf:
- type: object
properties:
type:
example: Name
type: string
enum:
- Name
required:
- type
- $ref: '#/components/schemas/WorkerNameFilter'
WorkerFilter_WorkerNotFilter:
allOf:
- type: object
properties:
type:
example: Not
type: string
enum:
- Not
required:
- type
- $ref: '#/components/schemas/WorkerNotFilter'
WorkerFilter_WorkerOrFilter:
allOf:
- type: object
properties:
type:
example: Or
type: string
enum:
- Or
required:
- type
- $ref: '#/components/schemas/WorkerOrFilter'
WorkerFilter_WorkerStatusFilter:
allOf:
- type: object
properties:
type:
example: Status
type: string
enum:
- Status
required:
- type
- $ref: '#/components/schemas/WorkerStatusFilter'
WorkerFilter_WorkerVersionFilter:
allOf:
- type: object
properties:
type:
example: Version
type: string
enum:
- Version
required:
- type
- $ref: '#/components/schemas/WorkerVersionFilter'
WorkerId:
type: object
properties:
componentId:
type: string
format: uuid
workerName:
type: string
required:
- componentId
- workerName
WorkerMetadata:
type: object
properties:
workerId:
$ref: '#/components/schemas/WorkerId'
accountId:
type: string
args:
type: array
items:
type: string
env:
type: object
additionalProperties:
type: string
status:
$ref: '#/components/schemas/WorkerStatus'
componentVersion:
type: integer
format: uint64
retryCount:
type: integer
format: uint64
pendingInvocationCount:
type: integer
format: uint64
updates:
type: array
items:
$ref: '#/components/schemas/UpdateRecord'
createdAt:
type: string
format: date-time
lastError:
type: string
componentSize:
type: integer
format: uint64
totalLinearMemorySize:
type: integer
format: uint64
ownedResources:
type: object
additionalProperties:
$ref: '#/components/schemas/ResourceMetadata'
activePlugins:
type: array
items:
type: string
format: uuid
required:
- workerId
- accountId
- args
- env
- status
- componentVersion
- retryCount
- pendingInvocationCount
- updates
- createdAt
- componentSize
- totalLinearMemorySize
- ownedResources
- activePlugins
WorkerNameFilter:
type: object
properties:
comparator:
$ref: '#/components/schemas/StringFilterComparator'
value:
type: string
required:
- comparator
- value
WorkerNotFilter:
type: object
properties:
filter:
$ref: '#/components/schemas/WorkerFilter'
required:
- filter
WorkerOrFilter:
type: object
properties:
filters:
type: array
items:
$ref: '#/components/schemas/WorkerFilter'
required:
- filters
WorkerServiceErrorsBody:
discriminator:
propertyName: type
mapping:
Messages: '#/components/schemas/WorkerServiceErrorsBody_MessagesErrorsBody'
Validation: '#/components/schemas/WorkerServiceErrorsBody_ValidationErrorsBody'
type: object
oneOf:
- $ref: '#/components/schemas/WorkerServiceErrorsBody_MessagesErrorsBody'
- $ref: '#/components/schemas/WorkerServiceErrorsBody_ValidationErrorsBody'
WorkerServiceErrorsBody_MessagesErrorsBody:
allOf:
- type: object
properties:
type:
example: Messages
type: string
enum:
- Messages
required:
- type
- $ref: '#/components/schemas/MessagesErrorsBody'
WorkerServiceErrorsBody_ValidationErrorsBody:
allOf:
- type: object
properties:
type:
example: Validation
type: string
enum:
- Validation
required:
- type
- $ref: '#/components/schemas/ValidationErrorsBody'
WorkerStatus:
description: |-
Represents last known status of a worker
This is always recorded together with the current oplog index, and it can only be used
as a source of truth if there are no newer oplog entries since the record.
type: string
enum:
- Running
- Idle
- Suspended
- Interrupted
- Retrying
- Failed
- Exited
WorkerStatusFilter:
type: object
properties:
comparator:
$ref: '#/components/schemas/FilterComparator'
value:
$ref: '#/components/schemas/WorkerStatus'
required:
- comparator
- value
WorkerUpdateMode:
type: string
enum:
- Automatic
- Manual
WorkerVersionFilter:
type: object
properties:
comparator:
$ref: '#/components/schemas/FilterComparator'
value:
type: integer
format: uint64
required:
- comparator
- value
WorkersMetadataRequest:
type: object
properties:
filter:
$ref: '#/components/schemas/WorkerFilter'
cursor:
$ref: '#/components/schemas/ScanCursor'
count:
type: integer
format: uint64
precise:
type: boolean
WorkersMetadataResponse:
type: object
properties:
workers:
type: array
items:
$ref: '#/components/schemas/WorkerMetadata'
cursor:
$ref: '#/components/schemas/ScanCursor'
required:
- workers
WriteRemoteBatchedParameters:
type: object
properties:
index:
type: integer
format: uint64
securitySchemes:
Cookie:
type: apiKey
in: cookie
name: GOLEM_SESSION
Token:
type: http
scheme: bearer
tags:
- name: Account
description: The account API allows users to query and manipulate their own account data.
- name: AccountSummary
- name: Grant
- name: HealthCheck
- name: Limits
description: The limits API allows users to query their current resource limits.
- name: Login
description: The login endpoints are implementing an OAuth2 flow.
- name: Project
description: |-
Projects are groups of components and their workers, providing both a separate namespace for these entities and allows sharing between accounts.
Every account has a default project which is assumed when no specific project ID is passed in some component and worker related APIs.
- name: ProjectGrant
description: |-
Projects can have grants providing access to other accounts than the project's owner.
The project grant API allows listing, creating and deleting such grants. What the grants allow exactly are defined by policies, covered by the Project policy API.
- name: ProjectPolicy
description: |-
Project policies describe a set of actions one account can perform when it was associated with a grant for a project.
The following actions can be used in the projectActions fields of this API:
- `ViewComponent` grants read access to a component
- `CreateComponent` allows creating new components in a project
- `UpdateComponent` allows uploading new versions for existing components in a project
- `DeleteComponent` allows deleting components from a project
- `ViewWorker` allows querying existing workers of a component belonging to the project
- `CreateWorker` allows launching new workers of a component in the project
- `UpdateWorker` allows manipulating existing workers of a component belonging to the project
- `DeleteWorker` allows deleting workers of a component belonging to the project
- `ViewProjectGrants` allows listing the existing grants of the project
- `CreateProjectGrants` allows creating new grants for the project
- `DeleteProjectGrants` allows deleting existing grants of the project
- name: Token
description: The token API allows creating custom access tokens for the Golem Cloud REST API to be used by tools and services.
- name: Component
- name: Plugin
- name: ApiCertificate
- name: ApiDefinition
- name: ApiDeployment
- name: ApiDomain
- name: ApiSecurity
- name: Worker