openapi: 3.0.0 info: title: Golem API version: '2.0' servers: [] tags: - name: ApiCertificate - name: ApiDefinition - name: ApiDeployment - name: ApiDomain - name: Component - name: HealthCheck - name: Worker paths: /healthcheck: get: tags: - HealthCheck responses: '200': description: '' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/HealthcheckResponse' operationId: healthcheck /version: get: tags: - HealthCheck responses: '200': description: '' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/VersionInfo' operationId: version /v2/components/{component_id}/workers: 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 parameters: - name: component_id schema: type: string format: uuid in: path required: true deprecated: false explode: true 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: [] operationId: launch_new_worker 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 parameters: - name: component_id schema: type: string format: uuid in: path required: true deprecated: false explode: true - name: filter schema: type: array items: type: string in: query description: Filter for worker metadata in form of `property op value`. Can be used multiple times (AND condition is applied between them) required: false deprecated: false explode: true - name: cursor schema: type: integer format: uint64 in: query description: 'Count of listed values, default: 50' required: false deprecated: false explode: true - name: count schema: type: integer format: uint64 in: query 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 required: false deprecated: false explode: true - name: precise schema: type: boolean in: query description: Precision in relation to worker status, if true, calculate the most up-to-date status for each worker, default is false required: false deprecated: false explode: 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: [] operationId: get_workers_metadata /v2/components/{component_id}/workers/{worker_name}: delete: tags: - Worker summary: Delete a worker description: Interrupts and deletes an existing worker. parameters: - name: component_id schema: type: string format: uuid in: path required: true deprecated: false explode: true - name: worker_name schema: type: string in: path required: true deprecated: false explode: true 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: [] operationId: delete_worker 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 parameters: - name: component_id schema: type: string format: uuid in: path required: true deprecated: false explode: true - name: worker_name schema: type: string in: path required: true deprecated: false explode: true 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: [] operationId: get_worker_metadata /v2/components/{component_id}/workers/{worker_name}/invoke-and-await: post: tags: - Worker summary: Invoke a function and await it's resolution description: Supply the parameters in the request body as JSON. parameters: - name: component_id schema: type: string format: uuid in: path required: true deprecated: false explode: true - name: worker_name schema: type: string in: path required: true deprecated: false explode: true - name: Idempotency-Key schema: type: string in: header required: false deprecated: false explode: true - name: function schema: type: string in: query required: true deprecated: false explode: true - name: calling-convention schema: $ref: '#/components/schemas/CallingConvention' in: query description: One of `component`, `stdio`, `stdio-event-loop`. Defaults to `component`. required: false deprecated: false explode: true 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: [] operationId: invoke_and_await_function /v2/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. To understand how to get the function name and how to encode the function parameters check Component interface parameters: - name: component_id schema: type: string format: uuid in: path required: true deprecated: false explode: true - name: worker_name schema: type: string in: path required: true deprecated: false explode: true - name: Idempotency-Key schema: type: string in: header required: false deprecated: false explode: true - name: function schema: type: string in: query description: name of the exported function to be invoked required: true deprecated: false explode: true 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: [] operationId: invoke_function /v2/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. parameters: - name: component_id schema: type: string format: uuid in: path required: true deprecated: false explode: true - name: worker_name schema: type: string in: path required: true deprecated: false explode: true 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: [] operationId: complete_promise /v2/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. parameters: - name: component_id schema: type: string format: uuid in: path required: true deprecated: false explode: true - name: worker_name schema: type: string in: path required: true deprecated: false explode: true - name: recovery-immediately schema: type: boolean in: query description: if true will simulate a worker recovery. Defaults to false. required: false deprecated: false explode: true 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: [] operationId: interrupt_worker /v2/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 parameters: - name: component_id schema: type: string format: uuid in: path required: true deprecated: false explode: true 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: [] operationId: find_workers_metadata /v2/components/{component_id}/workers/{worker_name}/resume: post: tags: - Worker summary: Resume a worker parameters: - name: component_id schema: type: string format: uuid in: path required: true deprecated: false explode: true - name: worker_name schema: type: string in: path required: true deprecated: false explode: true 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: [] operationId: resume_worker /v2/components/{component_id}/workers/{worker_name}/update: post: tags: - Worker parameters: - name: component_id schema: type: string format: uuid in: path required: true deprecated: false explode: true - name: worker_name schema: type: string in: path required: true deprecated: false explode: true 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: [] operationId: update_worker /v1/api/definitions/{project_id}/import: put: tags: - ApiDefinition parameters: - name: project_id schema: type: string format: uuid in: path required: true deprecated: false explode: true requestBody: content: application/json; charset=utf-8: schema: {} required: true responses: '200': description: '' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/HttpApiDefinition' '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: [] operationId: import_open_api /v1/api/definitions/{project_id}: post: tags: - ApiDefinition parameters: - name: project_id schema: type: string format: uuid in: path required: true deprecated: false explode: true requestBody: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/HttpApiDefinition' required: true responses: '200': description: '' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/HttpApiDefinition' '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: [] operationId: create_definition get: tags: - ApiDefinition parameters: - name: project_id schema: type: string format: uuid in: path required: true deprecated: false explode: true - name: api-definition-id schema: type: string in: query required: false deprecated: false explode: true responses: '200': description: '' content: application/json; charset=utf-8: schema: type: array items: $ref: '#/components/schemas/HttpApiDefinition' '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: [] operationId: list_definitions /v1/api/definitions/{project_id}/{id}/{version}: put: tags: - ApiDefinition parameters: - name: project_id schema: type: string format: uuid in: path required: true deprecated: false explode: true - name: id schema: type: string in: path required: true deprecated: false explode: true - name: version schema: type: string in: path required: true deprecated: false explode: true requestBody: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/HttpApiDefinition' required: true responses: '200': description: '' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/HttpApiDefinition' '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: [] operationId: update_definition get: tags: - ApiDefinition parameters: - name: project_id schema: type: string format: uuid in: path required: true deprecated: false explode: true - name: id schema: type: string in: path required: true deprecated: false explode: true - name: version schema: type: string in: path required: true deprecated: false explode: true responses: '200': description: '' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/HttpApiDefinition' '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: [] operationId: get_definition delete: tags: - ApiDefinition parameters: - name: project_id schema: type: string format: uuid in: path required: true deprecated: false explode: true - name: id schema: type: string in: path required: true deprecated: false explode: true - name: version schema: type: string in: path required: true deprecated: false explode: true 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: [] operationId: delete_definition /v1/api/deployments/deploy: post: tags: - ApiDeployment requestBody: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ApiDeployment' 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: [] operationId: deploy /v1/api/deployments: get: tags: - ApiDeployment parameters: - name: project-id schema: type: string format: uuid in: query required: true deprecated: false explode: true - name: api-definition-id schema: type: string in: query required: true deprecated: false explode: true 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: [] operationId: list_deployments /v1/api/deployments/{site}: get: tags: - ApiDeployment parameters: - name: site schema: type: string in: path required: true deprecated: false explode: 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: [] operationId: get_deployment delete: tags: - ApiDeployment parameters: - name: site schema: type: string in: path required: true deprecated: false explode: true 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: [] operationId: delete_deployment /v1/api/certificates: post: tags: - ApiCertificate 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: [] get: tags: - ApiCertificate parameters: - name: project-id schema: type: string format: uuid in: query required: true deprecated: false explode: true - name: certificate-id schema: type: string format: uuid in: query required: false deprecated: false explode: true 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: [] delete: tags: - ApiCertificate parameters: - name: project-id schema: type: string format: uuid in: query required: true deprecated: false explode: true - name: certificate-id schema: type: string format: uuid in: query required: true deprecated: false explode: true 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: put: tags: - ApiDomain 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: [] get: tags: - ApiDomain parameters: - name: project-id schema: type: string format: uuid in: query required: true deprecated: false explode: true 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: [] delete: tags: - ApiDomain parameters: - name: project-id schema: type: string format: uuid in: query required: true deprecated: false explode: true - name: domain schema: type: string in: query required: true deprecated: false explode: true 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: [] components: schemas: ApiDeployment: type: object required: - apiDefinitionId - version - projectId - site properties: apiDefinitionId: type: string version: type: string projectId: type: string format: uuid site: $ref: '#/components/schemas/ApiSite' ApiDomain: type: object required: - projectId - domainName - nameServers properties: projectId: type: string format: uuid domainName: type: string nameServers: type: array items: type: string ApiSite: type: object required: - host - subdomain properties: host: type: string subdomain: type: string CallingConvention: type: string enum: - Component - Stdio Certificate: type: object required: - id - projectId - domainName properties: id: type: string format: uuid projectId: type: string format: uuid domainName: type: string CertificateRequest: type: object required: - projectId - domainName - certificateBody - certificatePrivateKey properties: projectId: type: string format: uuid domainName: type: string certificateBody: type: string certificatePrivateKey: type: string CompleteParameters: type: object required: - oplogIdx - data properties: oplogIdx: type: integer format: uint64 data: type: array items: type: integer format: uint8 DeleteWorkerResponse: type: object DomainRequest: type: object required: - projectId - domainName properties: projectId: type: string format: uuid domainName: type: string ErrorBody: type: object required: - error properties: error: type: string ErrorsBody: type: object required: - errors properties: errors: type: array items: type: string FailedUpdate: type: object required: - timestamp - targetVersion properties: timestamp: type: string format: date-time targetVersion: type: integer format: uint64 details: type: string FilterComparator: type: string enum: - Equal - NotEqual - GreaterEqual - Greater - LessEqual - Less GolemError: 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' 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' GolemErrorBody: type: object required: - golemError properties: golemError: $ref: '#/components/schemas/GolemError' GolemErrorComponentDownloadFailed: type: object required: - componentId - reason properties: componentId: $ref: '#/components/schemas/VersionedComponentId' reason: type: string GolemErrorComponentParseFailed: type: object required: - componentId - reason properties: componentId: $ref: '#/components/schemas/VersionedComponentId' reason: type: string GolemErrorFailedToResumeWorker: type: object required: - workerId - reason properties: workerId: $ref: '#/components/schemas/WorkerId' reason: $ref: '#/components/schemas/GolemError' GolemErrorGetLatestVersionOfComponentFailed: type: object required: - componentId - reason properties: componentId: type: string format: uuid reason: type: string GolemErrorInterrupted: type: object required: - recoverImmediately properties: recoverImmediately: type: boolean GolemErrorInvalidAccount: type: object GolemErrorInvalidRequest: type: object required: - details properties: details: type: string GolemErrorInvalidShardId: type: object required: - shardId - shardIds properties: shardId: $ref: '#/components/schemas/ShardId' shardIds: type: array items: $ref: '#/components/schemas/ShardId' GolemErrorNoValueInMessage: type: object GolemErrorParamTypeMismatch: type: object GolemErrorPreviousInvocationExited: type: object GolemErrorPreviousInvocationFailed: type: object required: - details properties: details: type: string GolemErrorPromiseAlreadyCompleted: type: object required: - promiseId properties: promiseId: $ref: '#/components/schemas/PromiseId' GolemErrorPromiseDropped: type: object required: - promiseId properties: promiseId: $ref: '#/components/schemas/PromiseId' GolemErrorPromiseNotFound: type: object required: - promiseId properties: promiseId: $ref: '#/components/schemas/PromiseId' GolemErrorRuntimeError: type: object required: - details properties: details: type: string GolemErrorUnexpectedOplogEntry: type: object required: - expected - got properties: expected: type: string got: type: string GolemErrorUnknown: type: object required: - details properties: details: type: string GolemErrorValueMismatch: type: object required: - details properties: details: type: string GolemErrorWorkerAlreadyExists: type: object required: - workerId properties: workerId: $ref: '#/components/schemas/WorkerId' GolemErrorWorkerCreationFailed: type: object required: - workerId - details properties: workerId: $ref: '#/components/schemas/WorkerId' details: type: string GolemErrorWorkerNotFound: type: object required: - workerId properties: workerId: $ref: '#/components/schemas/WorkerId' GolemError_GolemErrorComponentDownloadFailed: allOf: - type: object required: - type properties: type: type: string example: ComponentDownloadFailed - $ref: '#/components/schemas/GolemErrorComponentDownloadFailed' GolemError_GolemErrorComponentParseFailed: allOf: - type: object required: - type properties: type: type: string example: ComponentParseFailed - $ref: '#/components/schemas/GolemErrorComponentParseFailed' GolemError_GolemErrorFailedToResumeWorker: allOf: - type: object required: - type properties: type: type: string example: FailedToResumeWorker - $ref: '#/components/schemas/GolemErrorFailedToResumeWorker' GolemError_GolemErrorGetLatestVersionOfComponentFailed: allOf: - type: object required: - type properties: type: type: string example: GetLatestVersionOfComponentFailed - $ref: '#/components/schemas/GolemErrorGetLatestVersionOfComponentFailed' GolemError_GolemErrorInterrupted: allOf: - type: object required: - type properties: type: type: string example: Interrupted - $ref: '#/components/schemas/GolemErrorInterrupted' GolemError_GolemErrorInvalidAccount: allOf: - type: object required: - type properties: type: type: string example: InvalidAccount - $ref: '#/components/schemas/GolemErrorInvalidAccount' GolemError_GolemErrorInvalidRequest: allOf: - type: object required: - type properties: type: type: string example: InvalidRequest - $ref: '#/components/schemas/GolemErrorInvalidRequest' GolemError_GolemErrorInvalidShardId: allOf: - type: object required: - type properties: type: type: string example: InvalidShardId - $ref: '#/components/schemas/GolemErrorInvalidShardId' GolemError_GolemErrorNoValueInMessage: allOf: - type: object required: - type properties: type: type: string example: NoValueInMessage - $ref: '#/components/schemas/GolemErrorNoValueInMessage' GolemError_GolemErrorParamTypeMismatch: allOf: - type: object required: - type properties: type: type: string example: ParamTypeMismatch - $ref: '#/components/schemas/GolemErrorParamTypeMismatch' GolemError_GolemErrorPreviousInvocationExited: allOf: - type: object required: - type properties: type: type: string example: PreviousInvocationExited - $ref: '#/components/schemas/GolemErrorPreviousInvocationExited' GolemError_GolemErrorPreviousInvocationFailed: allOf: - type: object required: - type properties: type: type: string example: PreviousInvocationFailed - $ref: '#/components/schemas/GolemErrorPreviousInvocationFailed' GolemError_GolemErrorPromiseAlreadyCompleted: allOf: - type: object required: - type properties: type: type: string example: PromiseAlreadyCompleted - $ref: '#/components/schemas/GolemErrorPromiseAlreadyCompleted' GolemError_GolemErrorPromiseDropped: allOf: - type: object required: - type properties: type: type: string example: PromiseDropped - $ref: '#/components/schemas/GolemErrorPromiseDropped' GolemError_GolemErrorPromiseNotFound: allOf: - type: object required: - type properties: type: type: string example: PromiseNotFound - $ref: '#/components/schemas/GolemErrorPromiseNotFound' GolemError_GolemErrorRuntimeError: allOf: - type: object required: - type properties: type: type: string example: RuntimeError - $ref: '#/components/schemas/GolemErrorRuntimeError' GolemError_GolemErrorUnexpectedOplogEntry: allOf: - type: object required: - type properties: type: type: string example: UnexpectedOplogEntry - $ref: '#/components/schemas/GolemErrorUnexpectedOplogEntry' GolemError_GolemErrorUnknown: allOf: - type: object required: - type properties: type: type: string example: Unknown - $ref: '#/components/schemas/GolemErrorUnknown' GolemError_GolemErrorValueMismatch: allOf: - type: object required: - type properties: type: type: string example: ValueMismatch - $ref: '#/components/schemas/GolemErrorValueMismatch' GolemError_GolemErrorWorkerAlreadyExists: allOf: - type: object required: - type properties: type: type: string example: WorkerAlreadyExists - $ref: '#/components/schemas/GolemErrorWorkerAlreadyExists' GolemError_GolemErrorWorkerCreationFailed: allOf: - type: object required: - type properties: type: type: string example: WorkerCreationFailed - $ref: '#/components/schemas/GolemErrorWorkerCreationFailed' GolemError_GolemErrorWorkerNotFound: allOf: - type: object required: - type properties: type: type: string example: WorkerNotFound - $ref: '#/components/schemas/GolemErrorWorkerNotFound' GolemWorkerBinding: type: object required: - component - workerId - functionName - functionParams properties: component: type: string format: uuid workerId: type: string functionName: type: string functionParams: type: array items: type: string idempotencyKey: type: string response: type: string HealthcheckResponse: type: object HttpApiDefinition: type: object required: - id - version - routes - draft properties: id: type: string version: type: string routes: type: array items: $ref: '#/components/schemas/Route' draft: type: boolean InterruptResponse: type: object InvokeParameters: type: object required: - params properties: params: {} InvokeResponse: type: object InvokeResult: type: object required: - result properties: result: {} MessageBody: type: object required: - message properties: message: type: string MessagesErrorsBody: type: object required: - errors properties: errors: type: array items: type: string MethodPattern: type: string enum: - Get - Connect - Post - Delete - Put - Patch - Options - Trace - Head PendingUpdate: type: object required: - timestamp - targetVersion properties: timestamp: type: string format: date-time targetVersion: type: integer format: uint64 PromiseId: type: object required: - workerId - oplogIdx properties: workerId: $ref: '#/components/schemas/WorkerId' oplogIdx: type: integer format: uint64 ResumeResponse: type: object Route: type: object required: - method - path - binding properties: method: $ref: '#/components/schemas/MethodPattern' path: type: string binding: $ref: '#/components/schemas/GolemWorkerBinding' RouteValidationError: type: object required: - method - path - component - detail properties: method: $ref: '#/components/schemas/MethodPattern' path: type: string component: type: string format: uuid detail: type: string ShardId: type: object required: - value properties: value: type: integer format: int64 StringFilterComparator: type: string enum: - Equal - NotEqual - Like - NotLike SuccessfulUpdate: type: object required: - timestamp - targetVersion properties: timestamp: type: string format: date-time targetVersion: type: integer format: uint64 UpdateRecord: type: object oneOf: - $ref: '#/components/schemas/UpdateRecord_PendingUpdate' - $ref: '#/components/schemas/UpdateRecord_SuccessfulUpdate' - $ref: '#/components/schemas/UpdateRecord_FailedUpdate' discriminator: propertyName: type mapping: pendingUpdate: '#/components/schemas/UpdateRecord_PendingUpdate' successfulUpdate: '#/components/schemas/UpdateRecord_SuccessfulUpdate' failedUpdate: '#/components/schemas/UpdateRecord_FailedUpdate' UpdateRecord_FailedUpdate: allOf: - type: object required: - type properties: type: type: string example: failedUpdate - $ref: '#/components/schemas/FailedUpdate' UpdateRecord_PendingUpdate: allOf: - type: object required: - type properties: type: type: string example: pendingUpdate - $ref: '#/components/schemas/PendingUpdate' UpdateRecord_SuccessfulUpdate: allOf: - type: object required: - type properties: type: type: string example: successfulUpdate - $ref: '#/components/schemas/SuccessfulUpdate' UpdateWorkerRequest: type: object required: - mode - targetVersion properties: mode: $ref: '#/components/schemas/WorkerUpdateMode' targetVersion: type: integer format: uint64 UpdateWorkerResponse: type: object ValidationErrorsBody: type: object required: - errors properties: errors: type: array items: $ref: '#/components/schemas/RouteValidationError' VersionInfo: type: object required: - version properties: version: type: string VersionedComponentId: type: object required: - componentId - version properties: componentId: type: string format: uuid version: type: integer format: uint64 WorkerAndFilter: type: object required: - filters properties: filters: type: array items: $ref: '#/components/schemas/WorkerFilter' WorkerCreatedAtFilter: type: object required: - comparator - value properties: comparator: $ref: '#/components/schemas/FilterComparator' value: type: string format: date-time WorkerCreationRequest: type: object required: - name - args - env properties: name: type: string args: type: array items: type: string env: type: object additionalProperties: type: string WorkerCreationResponse: type: object required: - workerId - componentVersion properties: workerId: $ref: '#/components/schemas/WorkerId' componentVersion: type: integer format: uint64 WorkerEnvFilter: type: object required: - name - comparator - value properties: name: type: string comparator: $ref: '#/components/schemas/StringFilterComparator' value: type: string WorkerFilter: 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' 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' WorkerFilter_WorkerAndFilter: allOf: - type: object required: - type properties: type: type: string example: And - $ref: '#/components/schemas/WorkerAndFilter' WorkerFilter_WorkerCreatedAtFilter: allOf: - type: object required: - type properties: type: type: string example: CreatedAt - $ref: '#/components/schemas/WorkerCreatedAtFilter' WorkerFilter_WorkerEnvFilter: allOf: - type: object required: - type properties: type: type: string example: Env - $ref: '#/components/schemas/WorkerEnvFilter' WorkerFilter_WorkerNameFilter: allOf: - type: object required: - type properties: type: type: string example: Name - $ref: '#/components/schemas/WorkerNameFilter' WorkerFilter_WorkerNotFilter: allOf: - type: object required: - type properties: type: type: string example: Not - $ref: '#/components/schemas/WorkerNotFilter' WorkerFilter_WorkerOrFilter: allOf: - type: object required: - type properties: type: type: string example: Or - $ref: '#/components/schemas/WorkerOrFilter' WorkerFilter_WorkerStatusFilter: allOf: - type: object required: - type properties: type: type: string example: Status - $ref: '#/components/schemas/WorkerStatusFilter' WorkerFilter_WorkerVersionFilter: allOf: - type: object required: - type properties: type: type: string example: Version - $ref: '#/components/schemas/WorkerVersionFilter' WorkerId: type: object required: - componentId - workerName properties: componentId: type: string format: uuid workerName: type: string WorkerMetadata: type: object required: - workerId - accountId - args - env - status - componentVersion - retryCount - pendingInvocationCount - updates - createdAt 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 WorkerNameFilter: type: object required: - comparator - value properties: comparator: $ref: '#/components/schemas/StringFilterComparator' value: type: string WorkerNotFilter: type: object required: - filter properties: filter: $ref: '#/components/schemas/WorkerFilter' WorkerOrFilter: type: object required: - filters properties: filters: type: array items: $ref: '#/components/schemas/WorkerFilter' WorkerServiceErrorsBody: type: object oneOf: - $ref: '#/components/schemas/WorkerServiceErrorsBody_MessagesErrorsBody' - $ref: '#/components/schemas/WorkerServiceErrorsBody_ValidationErrorsBody' discriminator: propertyName: type mapping: Messages: '#/components/schemas/WorkerServiceErrorsBody_MessagesErrorsBody' Validation: '#/components/schemas/WorkerServiceErrorsBody_ValidationErrorsBody' WorkerServiceErrorsBody_MessagesErrorsBody: allOf: - type: object required: - type properties: type: type: string example: Messages - $ref: '#/components/schemas/MessagesErrorsBody' WorkerServiceErrorsBody_ValidationErrorsBody: allOf: - type: object required: - type properties: type: type: string example: Validation - $ref: '#/components/schemas/ValidationErrorsBody' WorkerStatus: type: string 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. enum: - Running - Idle - Suspended - Interrupted - Retrying - Failed - Exited WorkerStatusFilter: type: object required: - comparator - value properties: comparator: $ref: '#/components/schemas/FilterComparator' value: $ref: '#/components/schemas/WorkerStatus' WorkerUpdateMode: type: string enum: - Automatic - Manual WorkerVersionFilter: type: object required: - comparator - value properties: comparator: $ref: '#/components/schemas/FilterComparator' value: type: integer format: uint64 WorkersMetadataRequest: type: object properties: filter: $ref: '#/components/schemas/WorkerFilter' cursor: type: integer format: uint64 count: type: integer format: uint64 precise: type: boolean WorkersMetadataResponse: type: object required: - workers properties: workers: type: array items: $ref: '#/components/schemas/WorkerMetadata' cursor: type: integer format: uint64 securitySchemes: Cookie: type: apiKey name: GOLEM_SESSION in: cookie Token: type: http scheme: bearer