diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index bffb357a..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "next/core-web-vitals" -} diff --git a/.gitignore b/.gitignore index 9f23e9a8..6721bcd9 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,7 @@ yarn-error.log* # typescript *.tsbuildinfo next-env.d.ts + +# snippet update tool +snippets/progress.json +snippets/loop.log diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 00000000..a5fc8dd1 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,92 @@ +# AGENTS.md — Golem Documentation + +This is the source for **Golem's official documentation** at [learn.golem.cloud](https://learn.golem.cloud). + +## Tech Stack + +- **Framework**: [Nextra](https://nextra.site/) v2 (docs theme) on top of Next.js 14 +- **Package manager**: [Bun](https://bun.sh/) (use `bun` for install/run, not `npm`/`yarn`) +- **Styling**: Tailwind CSS, PostCSS +- **Language**: TypeScript, MDX +- **Linting/Formatting**: ESLint + Prettier (with Tailwind plugin), enforced via [Lefthook](https://github.com/evilmartians/lefthook) pre-commit hooks +- **Syntax highlighting**: Shiki, with custom grammars for `wit` and `rib` languages (see `wit-grammar.json`, `rib-grammar.json`) +- **API docs**: Auto-generated from OpenAPI spec (`openapi/golem-service.yaml`) via `openapi/gen-openapi.ts` +- **How-To Guides**: Auto-generated from the [Golem skill catalog](https://github.com/golemcloud/golem/tree/main/golem-skills/skills) via `skills/sync-skills.ts` + +## Project Structure + +``` +src/ + pages/ # MDX documentation pages (file-based routing) + components/ # React components used in MDX pages + lib/ # Shared utilities (e.g., release version info) + styles/ # Global CSS (Tailwind) + context/ # React context providers +openapi/ # OpenAPI spec and code generation script +skills/ # How-To Guides sync script +check-links/ # Link-checking tool for MDX files +public/ # Static assets (images, favicon) +theme.config.tsx # Nextra docs theme configuration +``` + +## Common Commands + +- `bun install` — Install dependencies +- `bun run dev` — Start dev server (http://localhost:3001) +- `bun run build` — Production build +- `bun run lint` — Lint and auto-fix +- `bun run format` — Format with Prettier +- `bun run fix` — Lint + format together +- `bun run check-links` — Validate links in MDX files +- `bun run generate-prod` — Regenerate REST API docs from OpenAPI spec +- `bun run update-skills` — Sync How-To Guides from the Golem skill catalog (fetches from GitHub) +- `bun run update-skills-local -- --local ` — Sync How-To Guides from a local golem repo checkout + +## Writing Documentation + +### Page structure + +- Each page is an `.mdx` file under `src/pages/`. The file path determines the URL. +- Sidebar order and titles are controlled by `_meta.json` files in each directory. +- Use Nextra built-in components (`Callout`, `Tabs`, `Cards`, `Steps`, etc.) — import from `nextra/components`. +- Use the custom `` component for commands that differ by OS/platform. +- Icons come from `lucide-react`. + +### Code blocks + +- Standard fenced code blocks with language identifiers work out of the box. +- Use `wit` or `rib` as language identifiers for Golem-specific WIT interface definitions and Rib expressions — custom Shiki grammars are configured. + +### Adding a new page + +1. Create a `.mdx` file under `src/pages/` at the desired path. +2. Add an entry in the corresponding `_meta.json` to set title and sidebar position. + +### REST API docs + +REST API reference pages are auto-generated. Do not edit them manually. + +- To update from a **local copy** of the spec: copy the YAML from the golem repo (`../golem/openapi/golem-service.yaml`) into `openapi/golem-service.yaml`, then run `bun run generate-local`. +- `bun run generate-prod` and `bun run generate-dev` fetch the OpenAPI spec from the respective deployed environments — they do **not** use the local YAML file. + +The generated MDX files under `src/pages/rest-api/` will be updated and auto-formatted. + +### How-To Guides + +How-To Guide pages are auto-generated from the [Golem skill catalog](https://github.com/golemcloud/golem/tree/main/golem-skills/skills). Do not edit files under `src/pages/how-to-guides/` manually. + +- `bun run update-skills` fetches the latest skills from GitHub. +- `bun run update-skills-local -- --local ` reads from a local checkout of the golem repo. + +The sync script (`skills/sync-skills.ts`) strips AI-agent frontmatter, converts cross-references between skills into doc links, and generates MDX pages organized by category (General, Rust, TypeScript, Scala). Set `GITHUB_TOKEN` env var to avoid GitHub API rate limits when fetching remotely. + +## Pre-commit Checks + +Lefthook runs the following on staged files before each commit: + +1. ESLint (fix mode) +2. Prettier (write mode) +3. TypeScript type checking (`tsc`) +4. Link validation (`check-links`) + +Ensure all four pass before committing. Run `bun run fix` to auto-fix lint and format issues. diff --git a/bun.lockb b/bun.lockb index c087e08a..166a1fba 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/check-links/check-links.ts b/check-links/check-links.ts index 9c7d05db..cef7dabe 100644 --- a/check-links/check-links.ts +++ b/check-links/check-links.ts @@ -141,7 +141,7 @@ const checkLink = async (params: { // Handle absolute links from `src/pages/docs/` if (link.startsWith("/")) { - const docPath = path.join(process.cwd(), "src/pages", link) + const docPath = path.join(process.cwd(), "src/content", link) const filePath = await MarkdownPath.resolve(docPath) return filePath !== null ? { link, status: "alive", filePath } : { link, status: "dead" } } @@ -233,7 +233,7 @@ const execute = async (files: string[]) => { const main = async () => { const args = process.argv.slice(2) const files = - args.length > 0 ? args : await glob("src/pages/**/*.{mdx,md}", { ignore: "node_modules/**" }) + args.length > 0 ? args : await glob("src/content/**/*.{mdx,md}", { ignore: "node_modules/**" }) await execute(files) } diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 00000000..add1a29d --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,11 @@ +import nextConfig from "eslint-config-next/core-web-vitals" + +export default [ + ...nextConfig, + { + files: ["**/_meta.js"], + rules: { + "import/no-anonymous-default-export": "off", + }, + }, +] diff --git a/mdx-components.tsx b/mdx-components.tsx new file mode 100644 index 00000000..4b09945c --- /dev/null +++ b/mdx-components.tsx @@ -0,0 +1,11 @@ +import { useMDXComponents as getDocsMDXComponents } from "nextra-theme-docs" +import type { MDXComponents } from "mdx/types" + +const docsComponents = getDocsMDXComponents() + +export function useMDXComponents(components?: MDXComponents): MDXComponents { + return { + ...docsComponents, + ...components, + } +} diff --git a/next.config.js b/next.config.js deleted file mode 100644 index 81b359b1..00000000 --- a/next.config.js +++ /dev/null @@ -1,39 +0,0 @@ -const shiki = require("shiki") -const nextra = require("nextra") - -const withNextra = nextra({ - theme: "nextra-theme-docs", - themeConfig: "./theme.config.tsx", - mdxOptions: { - rehypePrettyCodeOptions: { - getHighlighter: options => - shiki.getHighlighter({ - ...options, - langs: [ - ...shiki.BUNDLED_LANGUAGES, - { - id: "wit", - scopeName: "source.wit", - aliases: [""], // Along with id, aliases will be included in the allowed names you can use when writing markdown. - // this is relative path from node_modules/shiki/index.js - path: "../../wit-grammar.json", - }, - { - id: "rib", - scopeName: "source.rib", - aliases: [""], // Along with id, aliases will be included in the allowed names you can use when writing markdown. - // this is relative path from node_modules/shiki/index.js - path: "../../rib-grammar.json", - }, - ], - }), - }, - }, -}) - -module.exports = withNextra({ - reactStrictMode: true, - experimental: { - scrollRestoration: true, - }, -}) diff --git a/next.config.mjs b/next.config.mjs new file mode 100644 index 00000000..f7984d83 --- /dev/null +++ b/next.config.mjs @@ -0,0 +1,16 @@ +import nextra from "nextra" + +const withNextra = nextra({ + search: { + codeblocks: false, + }, + mdxOptions: { + rehypePrettyCodeOptions: { + defaultLang: "text", + }, + }, +}) + +export default withNextra({ + reactStrictMode: true, +}) diff --git a/openapi/gen-openapi.ts b/openapi/gen-openapi.ts index 6b83ab06..b7e5acc5 100644 --- a/openapi/gen-openapi.ts +++ b/openapi/gen-openapi.ts @@ -5,7 +5,7 @@ import { OpenAPIV3 } from "openapi-types" import OpenAPISampler from "openapi-sampler" const CLOUD_SPEC_SRC = "./openapi/golem-service.yaml" -const CLOUD_GEN_PATH = "./src/pages/rest-api" +const CLOUD_GEN_PATH = "./src/content/rest-api" main().catch(e => console.error("Failed to update API Docs", e)) diff --git a/openapi/golem-service.yaml b/openapi/golem-service.yaml index 756855ed..50b7c7e6 100644 --- a/openapi/golem-service.yaml +++ b/openapi/golem-service.yaml @@ -6,7 +6,7 @@ paths: /healthcheck: get: tags: - - HealthCheck + - HealthCheck operationId: healthcheck responses: '200': @@ -18,7 +18,7 @@ paths: /version: get: tags: - - HealthCheck + - HealthCheck operationId: version responses: '200': @@ -30,7 +30,7 @@ paths: /v1/components/{component_id}/workers: get: tags: - - Worker + - Worker summary: Get metadata of multiple workers description: |- ### Filters @@ -54,50 +54,50 @@ paths: - `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: + - 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 - 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 + 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: '' @@ -135,6 +135,12 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' + '422': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' '500': description: '' content: @@ -142,11 +148,11 @@ paths: schema: $ref: '#/components/schemas/ErrorBodyWithOptionalWorkerError' security: - - Cookie: [] - - Token: [] + - Cookie: [] + - Token: [] post: tags: - - Worker + - Worker summary: Launch a new worker. description: |- Creates a new worker. The worker initially is in `Idle`` status, waiting to be invoked. @@ -157,20 +163,20 @@ paths: - `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 + - 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' + $ref: '#/components/schemas/AgentCreationRequest' required: true responses: '200': @@ -209,6 +215,12 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' + '422': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' '500': description: '' content: @@ -216,12 +228,12 @@ paths: schema: $ref: '#/components/schemas/ErrorBodyWithOptionalWorkerError' security: - - Cookie: [] - - Token: [] - /v1/components/{component_id}/workers/{worker_name}: + - Cookie: [] + - Token: [] + /v1/components/{component_id}/workers/{agent_name}: get: tags: - - Worker + - Worker summary: Get metadata of a worker description: |- Returns metadata about an existing worker: @@ -241,30 +253,30 @@ paths: - `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 + - in: path + name: component_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: agent_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/WorkerMetadataDto' + $ref: '#/components/schemas/AgentMetadataDto' '400': description: '' content: @@ -295,71 +307,7 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' - '500': - description: '' - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/ErrorBodyWithOptionalWorkerError' - 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: '' - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/ErrorsBody' - '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/ErrorBody' - '409': + '422': description: '' content: application/json; charset=utf-8: @@ -372,61 +320,39 @@ paths: schema: $ref: '#/components/schemas/ErrorBodyWithOptionalWorkerError' security: - - Cookie: [] - - Token: [] - /v1/components/{component_id}/workers/{worker_name}/invoke-and-await: - post: + - Cookie: [] + - Token: [] + delete: 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 + - 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 - - 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' + - in: path + name: component_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: agent_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/InvokeResult' + $ref: '#/components/schemas/DeleteWorkerResponse' '400': description: '' content: @@ -457,94 +383,7 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' - '500': - description: '' - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/ErrorBodyWithOptionalWorkerError' - 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: '' - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/ErrorsBody' - '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/ErrorBody' - '409': + '422': description: '' content: application/json; charset=utf-8: @@ -557,12 +396,12 @@ paths: schema: $ref: '#/components/schemas/ErrorBodyWithOptionalWorkerError' security: - - Cookie: [] - - Token: [] - /v1/components/{component_id}/workers/{worker_name}/complete: + - Cookie: [] + - Token: [] + /v1/components/{component_id}/workers/{agent_name}/complete: post: tags: - - Worker + - Worker summary: Complete a promise description: |- Completes a promise with a given custom array of bytes. @@ -570,23 +409,23 @@ paths: 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 + - in: path + name: component_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: agent_name + required: true + deprecated: false + schema: + type: string + explode: true + style: simple requestBody: content: application/json; charset=utf-8: @@ -630,6 +469,12 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' + '422': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' '500': description: '' content: @@ -637,12 +482,12 @@ paths: schema: $ref: '#/components/schemas/ErrorBodyWithOptionalWorkerError' security: - - Cookie: [] - - Token: [] - /v1/components/{component_id}/workers/{worker_name}/interrupt: + - Cookie: [] + - Token: [] + /v1/components/{component_id}/workers/{agent_name}/interrupt: post: tags: - - Worker + - Worker summary: Interrupt a worker description: |- Interrupts the execution of a worker. @@ -651,31 +496,31 @@ paths: 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 + - in: path + name: component_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: agent_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: '' @@ -713,6 +558,12 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' + '422': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' '500': description: '' content: @@ -720,12 +571,12 @@ paths: schema: $ref: '#/components/schemas/ErrorBodyWithOptionalWorkerError' security: - - Cookie: [] - - Token: [] + - Cookie: [] + - Token: [] /v1/components/{component_id}/workers/find: post: tags: - - Worker + - Worker summary: Advanced search for workers description: |- ### Filter types @@ -749,15 +600,15 @@ paths: - `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 + - 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: @@ -801,6 +652,12 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' + '422': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' '500': description: '' content: @@ -808,32 +665,32 @@ paths: schema: $ref: '#/components/schemas/ErrorBodyWithOptionalWorkerError' security: - - Cookie: [] - - Token: [] - /v1/components/{component_id}/workers/{worker_name}/resume: + - Cookie: [] + - Token: [] + /v1/components/{component_id}/workers/{agent_name}/resume: post: tags: - - Worker + - 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 + - in: path + name: component_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: agent_name + required: true + deprecated: false + schema: + type: string + explode: true + style: simple responses: '200': description: '' @@ -871,6 +728,12 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' + '422': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' '500': description: '' content: @@ -878,32 +741,32 @@ paths: schema: $ref: '#/components/schemas/ErrorBodyWithOptionalWorkerError' security: - - Cookie: [] - - Token: [] - /v1/components/{component_id}/workers/{worker_name}/update: + - Cookie: [] + - Token: [] + /v1/components/{component_id}/workers/{agent_name}/update: post: tags: - - Worker + - 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 + - in: path + name: component_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: agent_name + required: true + deprecated: false + schema: + type: string + explode: true + style: simple requestBody: content: application/json; charset=utf-8: @@ -947,6 +810,12 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' + '422': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' '500': description: '' content: @@ -954,77 +823,77 @@ paths: schema: $ref: '#/components/schemas/ErrorBodyWithOptionalWorkerError' security: - - Cookie: [] - - Token: [] - /v1/components/{component_id}/workers/{worker_name}/oplog: + - Cookie: [] + - Token: [] + /v1/components/{component_id}/workers/{agent_name}/oplog: get: tags: - - Worker + - 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: '' - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/ErrorsBody' - '401': + - in: path + name: component_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: agent_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: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorsBody' + '401': description: '' content: application/json; charset=utf-8: @@ -1048,6 +917,12 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' + '422': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' '500': description: '' content: @@ -1055,40 +930,40 @@ paths: schema: $ref: '#/components/schemas/ErrorBodyWithOptionalWorkerError' security: - - Cookie: [] - - Token: [] - /v1/components/{component_id}/workers/{worker_name}/files/{file_name}: + - Cookie: [] + - Token: [] + /v1/components/{component_id}/workers/{agent_name}/files/{file_name}: get: tags: - - Worker + - 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 + - in: path + name: component_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: agent_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: '' @@ -1126,6 +1001,12 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' + '422': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' '500': description: '' content: @@ -1133,40 +1014,40 @@ paths: schema: $ref: '#/components/schemas/ErrorBodyWithOptionalWorkerError' security: - - Cookie: [] - - Token: [] - /v1/components/{component_id}/workers/{worker_name}/file-contents/{file_name}: + - Cookie: [] + - Token: [] + /v1/components/{component_id}/workers/{agent_name}/file-contents/{file_name}: get: tags: - - Worker + - 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 + - in: path + name: component_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: agent_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: '' @@ -1205,6 +1086,12 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' + '422': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' '500': description: '' content: @@ -1212,45 +1099,45 @@ paths: schema: $ref: '#/components/schemas/ErrorBodyWithOptionalWorkerError' security: - - Cookie: [] - - Token: [] - /v1/components/{component_id}/workers/{worker_name}/activate-plugin: + - Cookie: [] + - Token: [] + /v1/components/{component_id}/workers/{agent_name}/activate-plugin: post: tags: - - Worker + - 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-priority - required: true - deprecated: false - schema: - title: |- - Priority of a given plugin. Plugins with a lower priority will be applied before plugins with a higher priority. - There can only be a single plugin with a given priority installed to a component. - type: integer - format: int32 - explode: true - style: form + - in: path + name: component_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: agent_name + required: true + deprecated: false + schema: + type: string + explode: true + style: simple + - in: query + name: plugin-priority + required: true + deprecated: false + schema: + title: |- + Priority of a given plugin. Plugins with a lower priority will be applied before plugins with a higher priority. + There can only be a single plugin with a given priority installed to a component. + type: integer + format: int32 + explode: true + style: form responses: '200': description: '' @@ -1288,6 +1175,12 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' + '422': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' '500': description: '' content: @@ -1295,45 +1188,45 @@ paths: schema: $ref: '#/components/schemas/ErrorBodyWithOptionalWorkerError' security: - - Cookie: [] - - Token: [] - /v1/components/{component_id}/workers/{worker_name}/deactivate-plugin: + - Cookie: [] + - Token: [] + /v1/components/{component_id}/workers/{agent_name}/deactivate-plugin: post: tags: - - Worker + - 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-priority - required: true - deprecated: false - schema: - title: |- - Priority of a given plugin. Plugins with a lower priority will be applied before plugins with a higher priority. - There can only be a single plugin with a given priority installed to a component. - type: integer - format: int32 - explode: true - style: form + - in: path + name: component_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: agent_name + required: true + deprecated: false + schema: + type: string + explode: true + style: simple + - in: query + name: plugin-priority + required: true + deprecated: false + schema: + title: |- + Priority of a given plugin. Plugins with a lower priority will be applied before plugins with a higher priority. + There can only be a single plugin with a given priority installed to a component. + type: integer + format: int32 + explode: true + style: form responses: '200': description: '' @@ -1371,6 +1264,12 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' + '422': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' '500': description: '' content: @@ -1378,33 +1277,33 @@ paths: schema: $ref: '#/components/schemas/ErrorBodyWithOptionalWorkerError' security: - - Cookie: [] - - Token: [] - /v1/components/{component_id}/workers/{worker_name}/revert: + - Cookie: [] + - Token: [] + /v1/components/{component_id}/workers/{agent_name}/revert: post: tags: - - Worker + - 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 + - in: path + name: component_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: agent_name + required: true + deprecated: false + schema: + type: string + explode: true + style: simple requestBody: content: application/json; charset=utf-8: @@ -1448,6 +1347,12 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' + '422': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' '500': description: '' content: @@ -1455,33 +1360,33 @@ paths: schema: $ref: '#/components/schemas/ErrorBodyWithOptionalWorkerError' security: - - Cookie: [] - - Token: [] - /v1/components/{component_id}/workers/{worker_name}/fork: + - Cookie: [] + - Token: [] + /v1/components/{component_id}/workers/{agent_name}/fork: post: tags: - - Worker + - Worker summary: Fork a worker description: Fork a worker by creating a new worker with the oplog up to the provided index operationId: fork_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: path + name: component_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: agent_name + required: true + deprecated: false + schema: + type: string + explode: true + style: simple requestBody: content: application/json; charset=utf-8: @@ -1525,6 +1430,12 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' + '422': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' '500': description: '' content: @@ -1532,41 +1443,41 @@ paths: schema: $ref: '#/components/schemas/ErrorBodyWithOptionalWorkerError' security: - - Cookie: [] - - Token: [] - /v1/components/{component_id}/workers/{worker_name}/invocations/{idempotency_key}: + - Cookie: [] + - Token: [] + /v1/components/{component_id}/workers/{agent_name}/invocations/{idempotency_key}: delete: tags: - - Worker + - 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 + - in: path + name: component_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: agent_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: '' @@ -1604,6 +1515,12 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' + '422': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' '500': description: '' content: @@ -1611,32 +1528,32 @@ paths: schema: $ref: '#/components/schemas/ErrorBodyWithOptionalWorkerError' security: - - Cookie: [] - - Token: [] - /v1/components/{component_id}/workers/{worker_name}/connect: + - Cookie: [] + - Token: [] + /v1/components/{component_id}/workers/{agent_name}/connect: get: tags: - - Worker + - 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 + - in: path + name: component_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: agent_name + required: true + deprecated: false + schema: + type: string + explode: true + style: simple responses: '101': description: A websocket response @@ -1670,60 +1587,64 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' + '422': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' '500': description: '' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBodyWithOptionalWorkerError' - /v1/accounts/{account_id}/tokens: - get: + /v1/agents/invoke-agent: + post: tags: - - RegistryService - - Account - - 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_account_tokens + - Agent + operationId: invoke_agent parameters: - - in: path - name: account_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 + requestBody: + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/AgentInvocationRequest' + required: true responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/Page_Token' + $ref: '#/components/schemas/AgentInvocationResult' '400': - description: Invalid request, returning with a list of issues detected in the request + description: '' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorsBody' '401': - description: Unauthorized request + description: '' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' '403': - description: Forbidden Request + description: '' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' '404': - description: Entity not found + description: '' content: application/json; charset=utf-8: schema: @@ -1735,45 +1656,30 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' '422': - description: Limits of the plan exceeded + description: '' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' '500': - description: Internal server error + description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/ErrorBody' + $ref: '#/components/schemas/ErrorBodyWithOptionalWorkerError' security: - - Cookie: [] - - Token: [] + - Cookie: [] + - Token: [] + /v1/agents/create-agent: post: tags: - - RegistryService - - Account - - 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 - format: uuid - explode: true - style: simple + - Agent + operationId: create_agent requestBody: content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/TokenCreation' + $ref: '#/components/schemas/CreateAgentRequest' required: true responses: '200': @@ -1781,27 +1687,27 @@ paths: content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/TokenWithSecret' + $ref: '#/components/schemas/CreateAgentResponse' '400': - description: Invalid request, returning with a list of issues detected in the request + description: '' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorsBody' '401': - description: Unauthorized request + description: '' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' '403': - description: Forbidden Request + description: '' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' '404': - description: Entity not found + description: '' content: application/json; charset=utf-8: schema: @@ -1813,27 +1719,26 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' '422': - description: Limits of the plan exceeded + description: '' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' '500': - description: Internal server error + description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/ErrorBody' + $ref: '#/components/schemas/ErrorBodyWithOptionalWorkerError' security: - - Cookie: [] - - Token: [] + - Cookie: [] + - Token: [] /v1/accounts: post: tags: - - RegistryService - - Account - summary: Create account - description: Create a new account. The response is the created account data. + - RegistryService + - Account + summary: Create a new account. The response is the created account data. operationId: create_account requestBody: content: @@ -1891,26 +1796,25 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] + - Cookie: [] + - Token: [] /v1/accounts/{account_id}: get: tags: - - RegistryService - - Account - summary: Get account - description: Retrieve an account for a given Account ID + - RegistryService + - Account + summary: Retrieve an account for a given Account ID operationId: get_account parameters: - - in: path - name: account_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: account_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple responses: '200': description: '' @@ -1961,42 +1865,40 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - put: + - Cookie: [] + - Token: [] + delete: tags: - - RegistryService - - 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 + - RegistryService + - Account + summary: Delete an account. + operationId: delete_account parameters: - - in: path - name: account_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/AccountUpdate' + - in: path + name: account_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: query + name: current_revision required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: form responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/Account' + $ref: '#/components/schemas/Empty' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -2040,41 +1942,42 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - delete: + - Cookie: [] + - Token: [] + patch: tags: - - RegistryService - - Account - summary: Delete account - description: Delete an account. - operationId: delete_account + - RegistryService + - 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 - format: uuid - explode: true - style: simple - - in: query - name: current_revision - required: true - deprecated: false - schema: - type: integer - format: uint64 - explode: true - style: form + - in: path + name: account_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/AccountUpdate' + required: true responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/Empty' + $ref: '#/components/schemas/Account' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -2118,25 +2021,25 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] + - Cookie: [] + - Token: [] /v1/accounts/{account_id}/plan: get: tags: - - RegistryService - - Account - summary: Get account's plan + - RegistryService + - Account + summary: Get an account's plan operationId: get_account_plan parameters: - - in: path - name: account_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: account_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple responses: '200': description: '' @@ -2187,24 +2090,24 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] + - Cookie: [] + - Token: [] put: tags: - - RegistryService - - Account - summary: Update plan of an accout + - RegistryService + - Account + summary: Set the plan of an account operationId: set_account_plan parameters: - - in: path - name: account_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: account_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple requestBody: content: application/json; charset=utf-8: @@ -2261,25 +2164,25 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] + - Cookie: [] + - Token: [] /v1/accounts/{account_id}/roles: put: tags: - - RegistryService - - Account - summary: Update roles of an accout + - RegistryService + - Account + summary: Set the roles of an account operationId: set_account_roles parameters: - - in: path - name: account_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: account_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple requestBody: content: application/json; charset=utf-8: @@ -2336,33 +2239,35 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/accounts/{account_id}/plugins: + - Cookie: [] + - Token: [] + /v1/accounts/{account_id}/tokens: get: tags: - - RegistryService - - Account - - Plugin - summary: Get all plugins registered in account - operationId: get_account_plugins + - RegistryService + - Account + - Token + summary: |- + List all tokens of an account. + The format of each element is the same as the data object in the oauth2 endpoint's response. + operationId: list_account_tokens parameters: - - in: path - name: account_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: account_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/Page_PluginRegistrationDto' + $ref: '#/components/schemas/Page_Token' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -2406,38 +2311,33 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] + - Cookie: [] + - Token: [] post: tags: - - RegistryService - - Account - - Plugin - summary: Register a new plugin - operationId: create_plugin + - RegistryService + - Account + - 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 - format: uuid - explode: true - style: simple + - in: path + name: account_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple requestBody: content: - multipart/form-data: + application/json; charset=utf-8: schema: - type: object - properties: - metadata: - $ref: '#/components/schemas/PluginRegistrationCreation' - pluginWasm: - type: string - format: binary - required: - - metadata + $ref: '#/components/schemas/TokenCreation' required: true responses: '200': @@ -2445,7 +2345,7 @@ paths: content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/PluginRegistrationDto' + $ref: '#/components/schemas/TokenWithSecret' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -2489,33 +2389,33 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/accounts/{account_id}/apps: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/agent-secrets: get: tags: - - RegistryService - - Application - - Account - summary: Get all applications in the account - operationId: list_account_applications + - RegistryService + - AgentSecrets + - Environment + summary: List all agent secrets of the environment + operationId: list_environment_agent_secrets parameters: - - in: path - name: account_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: environment_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/Page_Application' + $ref: '#/components/schemas/Page_AgentSecretDto' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -2559,30 +2459,30 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] + - Cookie: [] + - Token: [] post: tags: - - RegistryService - - Application - - Account - summary: Create an application in the account - operationId: create_application + - RegistryService + - AgentSecrets + - Environment + summary: Create a new agent secret + operationId: create_agent_secret parameters: - - in: path - name: account_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: environment_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/ApplicationCreation' + $ref: '#/components/schemas/AgentSecretCreation' required: true responses: '200': @@ -2590,7 +2490,7 @@ paths: content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/Application' + $ref: '#/components/schemas/AgentSecretDto' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -2634,41 +2534,32 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/accounts/{account_id}/apps/{application_name}: + - Cookie: [] + - Token: [] + /v1/agent-secrets/{agent_secret_id}: get: tags: - - RegistryService - - Application - - Account - summary: Get application in the account by name - operationId: get_account_application + - RegistryService + - AgentSecrets + summary: Get agent secret by id. + operationId: get_agent_secret parameters: - - in: path - name: account_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: path - name: application_name - required: true - deprecated: false - schema: - type: string - explode: true - style: simple + - in: path + name: agent_secret_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/Application' + $ref: '#/components/schemas/AgentSecretDto' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -2712,32 +2603,37 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/apps/{application_id}: - get: + - Cookie: [] + - Token: [] + patch: tags: - - RegistryService - - Application - summary: Get application by id. - operationId: get_application + - RegistryService + - AgentSecrets + summary: Update agent secret + operationId: update_agent_secret parameters: - - in: path - name: application_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: agent_secret_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/AgentSecretUpdate' + required: true responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/Application' + $ref: '#/components/schemas/AgentSecretDto' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -2781,36 +2677,41 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] + - Cookie: [] + - Token: [] + /v1/agent-secret/{agent_secret_id}: delete: tags: - - RegistryService - - Application - summary: Update application by id. - operationId: delete_application + - RegistryService + - AgentSecrets + summary: Delete agent secret + operationId: delete_agent_secret parameters: - - in: path - name: application_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: query - name: current_revision - required: true - deprecated: false - schema: - type: integer - format: uint64 - explode: true - style: form + - in: path + name: agent_secret_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: query + name: current_revision + required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: form responses: - '204': + '200': description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/AgentSecretDto' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -2854,37 +2755,33 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - patch: + - Cookie: [] + - Token: [] + /v1/accounts/{account_id}/apps: + get: tags: - - RegistryService - - Application - summary: Update application by id. - operationId: update_application + - RegistryService + - Application + - Account + summary: List all applications in the account + operationId: list_account_applications parameters: - - in: path - name: application_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/ApplicationUpdate' + - in: path + name: account_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/Application' + $ref: '#/components/schemas/Page_Application' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -2928,33 +2825,38 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/components: - get: + - Cookie: [] + - Token: [] + post: tags: - - RegistryService - - Component - - Environment - summary: Get all components in the environment - operationId: get_environment_components + - RegistryService + - Application + - Account + summary: Create an application in the account + operationId: create_application parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: account_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/ApplicationCreation' + required: true responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/Page_ComponentDto' + $ref: '#/components/schemas/Application' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -2998,51 +2900,41 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - post: + - Cookie: [] + - Token: [] + /v1/accounts/{account_id}/apps/{application_name}: + get: tags: - - RegistryService - - Component - - Environment - summary: Create a new component in the environment - description: The request body is encoded as multipart/form-data containing metadata and the WASM binary. - operationId: create_component + - RegistryService + - Application + - Account + summary: Get application in the account by name + operationId: get_account_application parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - requestBody: - content: - multipart/form-data: - schema: - type: object - properties: - metadata: - $ref: '#/components/schemas/ComponentCreation' - componentWasm: - type: string - format: binary - files: - type: string - format: binary - required: - - metadata - - componentWasm + - in: path + name: account_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: application_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/ComponentDto' + $ref: '#/components/schemas/Application' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -3086,41 +2978,32 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/components/{component_name}: + - Cookie: [] + - Token: [] + /v1/apps/{application_id}: get: tags: - - RegistryService - - Component - - Environment - summary: Get a component in the environment by name - operationId: get_environment_component + - RegistryService + - Application + summary: Get application by id. + operationId: get_application parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: path - name: component_name - required: true - deprecated: false - schema: - type: string - explode: true - style: simple + - in: path + name: application_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/ComponentDto' + $ref: '#/components/schemas/Application' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -3164,43 +3047,36 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/deployments/{deployment_revision}/components: - get: + - Cookie: [] + - Token: [] + delete: tags: - - RegistryService - - Component - - Environment - - Deployment - summary: Get all components in a specific deployment - operationId: get_deployment_components + - RegistryService + - Application + summary: Update application by id. + operationId: delete_application parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: path - name: deployment_revision - required: true - deprecated: false - schema: - type: integer - format: uint64 - explode: true - style: simple - responses: - '200': - description: '' - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/Page_ComponentDto' + - in: path + name: application_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: query + name: current_revision + required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: form + responses: + '204': + description: '' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -3244,51 +3120,37 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/deployments/{deployment_revision}/components/{component_name}: - get: + - Cookie: [] + - Token: [] + patch: tags: - - RegistryService - - Component - - Environment - - Deployment - summary: Get component in a deployment by name - operationId: get_deployment_component + - RegistryService + - Application + summary: Update application by id. + operationId: update_application parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: path - name: deployment_revision - required: true - deprecated: false - schema: - type: integer - format: uint64 - explode: true - style: simple - - in: path - name: component_name - required: true - deprecated: false - schema: - type: string - explode: true - style: simple + - in: path + name: application_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/ApplicationUpdate' + required: true responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/ComponentDto' + $ref: '#/components/schemas/Application' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -3332,32 +3194,33 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/components/{component_id}: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/components: get: tags: - - RegistryService - - Component - summary: Get a component by id - operationId: get_component + - RegistryService + - Component + - Environment + summary: List all components in the environment + operationId: list_environment_components parameters: - - in: path - name: component_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: environment_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/ComponentDto' + $ref: '#/components/schemas/Page_ComponentDto' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -3401,36 +3264,51 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - delete: + - Cookie: [] + - Token: [] + post: tags: - - RegistryService - - Component - summary: Update the component - operationId: delete_component + - RegistryService + - Component + - Environment + summary: Create a new component in the environment + description: The request body is encoded as multipart/form-data containing metadata and the WASM binary. + operationId: create_component parameters: - - in: path - name: component_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: query - name: current_revision - required: true - deprecated: false - schema: - type: integer - format: uint64 - explode: true - style: form + - in: path + name: environment_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + metadata: + $ref: '#/components/schemas/ComponentCreation' + componentWasm: + type: string + format: binary + files: + type: string + format: binary + required: + - metadata + - componentWasm + required: true responses: - '204': + '200': description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ComponentDto' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -3474,42 +3352,34 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - patch: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/components/{component_name}: + get: tags: - - RegistryService - - Component - summary: Update a component - description: The request body is encoded as multipart/form-data containing metadata and the WASM binary. - operationId: update_component + - RegistryService + - Component + - Environment + summary: Get a component in the environment by name + operationId: get_environment_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: - metadata: - $ref: '#/components/schemas/ComponentUpdate' - newComponentWasm: - type: string - format: binary - newFiles: - type: string - format: binary - required: - - metadata + - in: path + name: environment_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: component_name required: true + deprecated: false + schema: + type: string + explode: true + style: simple responses: '200': description: '' @@ -3560,41 +3430,43 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/components/{component_id}/revisions/{revision}: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/deployments/{deployment_revision}/components: get: tags: - - RegistryService - - Component - summary: Get specific revision of a component - operationId: get_component_revision + - RegistryService + - Component + - Environment + - Deployment + summary: List all components in a specific deployment + operationId: list_deployment_components parameters: - - in: path - name: component_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: path - name: revision - required: true - deprecated: false - schema: - type: integer - format: uint64 - explode: true - style: simple + - in: path + name: environment_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: deployment_revision + required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: simple responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/ComponentDto' + $ref: '#/components/schemas/Page_ComponentDto' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -3638,42 +3510,51 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/components/{component_id}/revisions/{revision}/wasm: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/deployments/{deployment_revision}/components/{component_name}: get: tags: - - RegistryService - - Component - summary: Get the component wasm binary of a specific revision - operationId: get_component_wasm + - RegistryService + - Component + - Environment + - Deployment + summary: Get component in a deployment by name + operationId: get_deployment_component parameters: - - in: path - name: component_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: path - name: revision - required: true - deprecated: false - schema: - type: integer - format: uint64 - explode: true - style: simple + - in: path + name: environment_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: deployment_revision + required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: simple + - in: path + name: component_name + required: true + deprecated: false + schema: + type: string + explode: true + style: simple responses: '200': description: '' content: - application/octet-stream: + application/json; charset=utf-8: schema: - type: string - format: binary + $ref: '#/components/schemas/ComponentDto' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -3717,33 +3598,32 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/domain-registrations: + - Cookie: [] + - Token: [] + /v1/components/{component_id}: get: tags: - - RegistryService - - ApiDomain - - Environment - summary: List all domain registrations in the environment - operationId: list_environment_domain_registrations + - RegistryService + - Component + summary: Get a component by id + operationId: get_component parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - 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/Page_DomainRegistration' + $ref: '#/components/schemas/ComponentDto' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -3787,38 +3667,36 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - post: + - Cookie: [] + - Token: [] + delete: tags: - - RegistryService - - ApiDomain - - Environment - summary: Create a new domain registration in the environment - operationId: create_domain_registration + - RegistryService + - Component + summary: Delete the component + operationId: delete_component parameters: - - in: path - name: environment_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/DomainRegistrationCreation' + - in: path + name: component_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: query + name: current_revision required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: form responses: - '200': + '204': description: '' - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/DomainRegistration' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -3862,32 +3740,49 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/domain-registrations/{domain_registration_id}: - get: + - Cookie: [] + - Token: [] + patch: tags: - - RegistryService - - ApiDomain - summary: Get domain registration by id - operationId: get_domain_registration + - RegistryService + - Component + summary: Update a component + description: The request body is encoded as multipart/form-data containing metadata and the WASM binary. + operationId: update_component parameters: - - in: path - name: domain_registration_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - 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: + metadata: + $ref: '#/components/schemas/ComponentUpdate' + newComponentWasm: + type: string + format: binary + newFiles: + type: string + format: binary + required: + - metadata + required: true responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/DomainRegistration' + $ref: '#/components/schemas/ComponentDto' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -3931,27 +3826,41 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - delete: + - Cookie: [] + - Token: [] + /v1/components/{component_id}/revisions/{revision}: + get: tags: - - RegistryService - - ApiDomain - summary: Delete domain registration - operationId: delete_domain_registrations + - RegistryService + - Component + summary: Get specific revision of a component + operationId: get_component_revision parameters: - - in: path - name: domain_registration_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: component_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: revision + required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: simple responses: - '204': + '200': description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ComponentDto' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -3995,33 +3904,42 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/plugins: + - Cookie: [] + - Token: [] + /v1/components/{component_id}/revisions/{revision}/wasm: get: tags: - - RegistryService - - EnvironmentPluginGrants - - Environment - summary: List all environment plugin grants in the environment - operationId: list_environment_plugin_grants + - RegistryService + - Component + summary: Get the component wasm binary of a specific revision + operationId: get_component_wasm parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - responses: - '200': - description: '' + - in: path + name: component_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: revision + required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: simple + responses: + '200': + description: '' content: - application/json; charset=utf-8: + application/octet-stream: schema: - $ref: '#/components/schemas/Page_EnvironmentPluginGrantWithDetails' + type: string + format: binary '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -4065,38 +3983,33 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - post: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/domain-registrations: + get: tags: - - RegistryService - - EnvironmentPluginGrants - - Environment - summary: Create a new environment plugin grant - operationId: create_environment_plugin_grant + - RegistryService + - ApiDomain + - Environment + summary: List all domain registrations in the environment + operationId: list_environment_domain_registrations parameters: - - in: path - name: environment_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/EnvironmentPluginGrantCreation' + - in: path + name: environment_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/EnvironmentPluginGrant' + $ref: '#/components/schemas/Page_DomainRegistration' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -4140,41 +4053,38 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/environment-plugins/{environment_plugin_grant_id}: - get: + - Cookie: [] + - Token: [] + post: tags: - - RegistryService - - EnvironmentPluginGrants - - EnvironmentPluginGrants - summary: Get environment plugin grant by id - operationId: get_environment_plugin_grant + - RegistryService + - ApiDomain + - Environment + summary: Create a new domain registration in the environment + operationId: create_domain_registration parameters: - - in: path - name: environment_plugin_grant_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: query - name: include_deleted - deprecated: false - schema: - default: false - type: boolean - explode: true - style: form + - in: path + name: environment_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/DomainRegistrationCreation' + required: true responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/EnvironmentPluginGrantWithDetails' + $ref: '#/components/schemas/DomainRegistration' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -4218,28 +4128,32 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - delete: + - Cookie: [] + - Token: [] + /v1/domain-registrations/{domain_registration_id}: + get: tags: - - RegistryService - - EnvironmentPluginGrants - - EnvironmentPluginGrants - summary: Delete environment plugin grant - operationId: delete_environment_plugin_grant + - RegistryService + - ApiDomain + summary: Get domain registration by id + operationId: get_domain_registration parameters: - - in: path - name: environment_plugin_grant_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: domain_registration_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple responses: - '204': + '200': description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/DomainRegistration' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -4283,33 +4197,27 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/apps/{application_id}/envs: - get: + - Cookie: [] + - Token: [] + delete: tags: - - RegistryService - - Environment - - Application - summary: List all application environments - operationId: list_application_environments + - RegistryService + - ApiDomain + summary: Delete domain registration + operationId: delete_domain_registration parameters: - - in: path - name: application_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: domain_registration_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple responses: - '200': + '204': description: '' - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/Page_Environment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -4353,38 +4261,33 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - post: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/plugins: + get: tags: - - RegistryService - - Environment - - Application - summary: Create an application environment - operationId: create_environment + - RegistryService + - EnvironmentPluginGrants + - Environment + summary: List all environment plugin grants in the environment + operationId: list_environment_environment_plugin_grants parameters: - - in: path - name: application_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/EnvironmentCreation' + - in: path + name: environment_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/Environment' + $ref: '#/components/schemas/Page_EnvironmentPluginGrantWithDetails' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -4428,41 +4331,38 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/apps/{application_id}/envs/{environment_name}: - get: + - Cookie: [] + - Token: [] + post: tags: - - RegistryService - - Environment - - Application - summary: Get application environment by name - operationId: get_application_environment + - RegistryService + - EnvironmentPluginGrants + - Environment + summary: Create a new environment plugin grant + operationId: create_environment_plugin_grant parameters: - - in: path - name: application_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: path - name: environment_name - required: true - deprecated: false - schema: - type: string - explode: true - style: simple + - in: path + name: environment_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/EnvironmentPluginGrantCreation' + required: true responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/Environment' + $ref: '#/components/schemas/EnvironmentPluginGrant' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -4506,44 +4406,41 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/envs: + - Cookie: [] + - Token: [] + /v1/environment-plugins/{environment_plugin_grant_id}: get: tags: - - RegistryService - - Environment - summary: List all environments that are visible to the current user, either directly or through shares. - operationId: list_visible_environments + - RegistryService + - EnvironmentPluginGrants + - EnvironmentPluginGrants + summary: Get environment plugin grant by id + operationId: get_environment_plugin_grant parameters: - - in: query - name: account_email - deprecated: false - schema: - type: string - explode: true - style: form - - in: query - name: app_name - deprecated: false - schema: - type: string - explode: true - style: form - - in: query - name: env_name - deprecated: false - schema: - type: string - explode: true - style: form + - in: path + name: environment_plugin_grant_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: query + name: include_deleted + deprecated: false + schema: + default: false + type: boolean + explode: true + style: form responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/Page_EnvironmentWithDetails' + $ref: '#/components/schemas/EnvironmentPluginGrantWithDetails' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -4587,32 +4484,28 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}: - get: + - Cookie: [] + - Token: [] + delete: tags: - - RegistryService - - Environment - summary: Get environment by id. - operationId: get_environment + - RegistryService + - EnvironmentPluginGrants + - EnvironmentPluginGrants + summary: Delete environment plugin grant + operationId: delete_environment_plugin_grant parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: environment_plugin_grant_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple responses: - '200': + '204': description: '' - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/Environment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -4656,36 +4549,33 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - delete: + - Cookie: [] + - Token: [] + /v1/apps/{application_id}/envs: + get: tags: - - RegistryService - - Environment - summary: Delete environment by id. - operationId: delete_environment + - RegistryService + - Environment + - Application + summary: List all application environments + operationId: list_application_environments parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: query - name: current_revision - required: true - deprecated: false - schema: - type: integer - format: uint64 - explode: true - style: form + - in: path + name: application_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple responses: - '204': + '200': description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/Page_Environment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -4729,29 +4619,30 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - patch: + - Cookie: [] + - Token: [] + post: tags: - - RegistryService - - Environment - summary: Update environment by id. - operationId: update_environment + - RegistryService + - Environment + - Application + summary: Create an application environment + operationId: create_environment parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: application_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/EnvironmentUpdate' + $ref: '#/components/schemas/EnvironmentCreation' required: true responses: '200': @@ -4803,32 +4694,41 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/plan: + - Cookie: [] + - Token: [] + /v1/apps/{application_id}/envs/{environment_name}: get: tags: - - RegistryService - - Environment - summary: Get the current deployment plan - operationId: get_environment_deployment_plan + - RegistryService + - Environment + - Application + summary: Get application environment by name + operationId: get_application_environment parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: application_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: environment_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/DeploymentPlan' + $ref: '#/components/schemas/Environment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -4872,39 +4772,32 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/current-deployment: - put: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}: + get: tags: - - RegistryService - - Environment - - Deployment - summary: Rollback an environment to a previous deployment - operationId: rollback_environment + - RegistryService + - Environment + summary: Get environment by id. + operationId: get_environment parameters: - - in: path - name: environment_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/DeploymentRollback' + - in: path + name: environment_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/CurrentDeployment' + $ref: '#/components/schemas/Environment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -4948,40 +4841,36 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/deployments: - get: + - Cookie: [] + - Token: [] + delete: tags: - - RegistryService - - Environment - - Deployment - summary: List all deployments in this environment - operationId: list_deployments + - RegistryService + - Environment + summary: Delete environment by id. + operationId: delete_environment parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: query - name: version - deprecated: false - schema: - type: string - explode: true - style: form + - in: path + name: environment_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: query + name: current_revision + required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: form responses: - '200': + '204': description: '' - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/Page_Deployment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -5025,30 +4914,29 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - post: + - Cookie: [] + - Token: [] + patch: tags: - - RegistryService - - Environment - - Deployment - summary: Deploy the current staging area of this environment - operationId: deploy_environment + - RegistryService + - Environment + summary: Update environment by id. + operationId: update_environment parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: environment_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/DeploymentCreation' + $ref: '#/components/schemas/EnvironmentUpdate' required: true responses: '200': @@ -5056,7 +4944,7 @@ paths: content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/CurrentDeployment' + $ref: '#/components/schemas/Environment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -5100,41 +4988,32 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/deployments/{deployment_id}/summary: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/plan: get: tags: - - RegistryService - - Environment - summary: Get the deployment summary of a deployed deployment - operationId: get_deployment_summary + - RegistryService + - Environment + summary: Get the current deployment plan + operationId: get_environment_deployment_plan parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: path - name: deployment_id - required: true - deprecated: false - schema: - type: integer - format: uint64 - explode: true - style: simple + - in: path + name: environment_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/DeploymentSummary' + $ref: '#/components/schemas/DeploymentPlan' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -5178,41 +5057,39 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/deployments/{deployment_id}/agent-types: - get: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/current-deployment: + put: tags: - - RegistryService - - Environment - summary: List all registered agent types in a deployment - operationId: list_deployment_agent_types + - RegistryService + - Environment + - Deployment + summary: Rollback an environment to a previous deployment + operationId: rollback_environment parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: path - name: deployment_id - required: true - deprecated: false - schema: - type: integer - format: uint64 - explode: true - style: simple + - in: path + name: environment_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/DeploymentRollback' + required: true responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/Page_RegisteredAgentType' + $ref: '#/components/schemas/CurrentDeployment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -5256,49 +5133,40 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/deployments/{deployment_id}/agent-types/{agent_type_name}: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/deployments: get: tags: - - RegistryService - - Environment - summary: Get a registered agent type in a deployment - operationId: get_deployment_agent_type + - RegistryService + - Environment + - Deployment + summary: List all deployments in this environment + operationId: list_deployments parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: path - name: deployment_id - required: true - deprecated: false - schema: - type: integer - format: uint64 - explode: true - style: simple - - in: path - name: agent_type_name - required: true - deprecated: false - schema: - type: string - explode: true - style: simple + - in: path + name: environment_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: query + name: version + deprecated: false + schema: + type: string + explode: true + style: form responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/RegisteredAgentType' + $ref: '#/components/schemas/Page_Deployment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -5342,33 +5210,38 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/shares: - get: + - Cookie: [] + - Token: [] + post: tags: - - RegistryService - - EnvironmentShares - - Environment - summary: Get all shares of the environment - operationId: get_environment_environment_shares + - RegistryService + - Environment + - Deployment + summary: Deploy the current staging area of this environment + operationId: deploy_environment parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: environment_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/DeploymentCreation' + required: true responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/Page_EnvironmentShare' + $ref: '#/components/schemas/CurrentDeployment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -5412,38 +5285,41 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - post: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/deployments/{deployment_id}/summary: + get: tags: - - RegistryService - - EnvironmentShares - - Environment - summary: Create a new environment share - operationId: create_environment_share + - RegistryService + - Environment + summary: Get the deployment summary of a deployed deployment + operationId: get_deployment_summary parameters: - - in: path - name: environment_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/EnvironmentShareCreation' + - in: path + name: environment_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: deployment_id required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: simple responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/EnvironmentShare' + $ref: '#/components/schemas/DeploymentSummary' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -5487,32 +5363,41 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/environment-shares/{environment_share_id}: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/deployments/{deployment_id}/agent-types: get: tags: - - RegistryService - - EnvironmentShares - summary: Get environment share by id. - operationId: get_environment_share + - RegistryService + - Environment + summary: List all registered agent types in a deployment + operationId: list_deployment_agent_types parameters: - - in: path - name: environment_share_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: environment_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: deployment_id + required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: simple responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/EnvironmentShare' + $ref: '#/components/schemas/Page_DeployedRegisteredAgentType' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -5556,40 +5441,49 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - delete: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/deployments/{deployment_id}/agent-types/{agent_type_name}: + get: tags: - - RegistryService - - EnvironmentShares - summary: Delete environment share - operationId: delete_environment_share + - RegistryService + - Environment + summary: Get a registered agent type in a deployment + operationId: get_deployment_agent_type parameters: - - in: path - name: environment_share_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: query - name: current_revision - required: true - deprecated: false - schema: - type: integer - format: uint64 - explode: true - style: form + - in: path + name: environment_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: deployment_id + required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: simple + - in: path + name: agent_type_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/EnvironmentShare' + $ref: '#/components/schemas/DeployedRegisteredAgentType' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -5633,37 +5527,33 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - patch: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/shares: + get: tags: - - RegistryService - - EnvironmentShares - summary: Update environment share - operationId: update_environment_share + - RegistryService + - EnvironmentShares + - Environment + summary: Get all shares of the environment + operationId: list_environment_environment_shares parameters: - - in: path - name: environment_share_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/EnvironmentShareUpdate' + - in: path + name: environment_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/EnvironmentShare' + $ref: '#/components/schemas/Page_EnvironmentShare' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -5707,33 +5597,38 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/http-api-definitions: - get: + - Cookie: [] + - Token: [] + post: tags: - - RegistryService - - HttpApiDefinition - - Environment - summary: List http api definitions in the environment - operationId: list_environment_http_api_definitions + - RegistryService + - EnvironmentShares + - Environment + summary: Create a new environment share + operationId: create_environment_share parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: environment_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/EnvironmentShareCreation' + required: true responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/Page_HttpApiDefinition' + $ref: '#/components/schemas/EnvironmentShare' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -5777,38 +5672,32 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - post: + - Cookie: [] + - Token: [] + /v1/environment-shares/{environment_share_id}: + get: tags: - - RegistryService - - HttpApiDefinition - - Environment - summary: Create a new api-definition in the environment - operationId: create_http_api_definition + - RegistryService + - EnvironmentShares + summary: Get environment share by id. + operationId: get_environment_share parameters: - - in: path - name: environment_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/HttpApiDefinitionCreation' + - in: path + name: environment_share_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/HttpApiDefinition' + $ref: '#/components/schemas/EnvironmentShare' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -5852,32 +5741,40 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/http-api-definitions/{http_api_definition_id}: - get: + - Cookie: [] + - Token: [] + delete: tags: - - RegistryService - - HttpApiDefinition - summary: Get http api definition - operationId: get_http_api_definition + - RegistryService + - EnvironmentShares + summary: Delete environment share + operationId: delete_environment_share parameters: - - in: path - name: http_api_definition_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: environment_share_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: query + name: current_revision + required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: form responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/HttpApiDefinition' + $ref: '#/components/schemas/EnvironmentShare' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -5921,36 +5818,37 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - delete: + - Cookie: [] + - Token: [] + patch: tags: - - RegistryService - - HttpApiDefinition - summary: Delete http api definition - operationId: delete_http_api_definition + - RegistryService + - EnvironmentShares + summary: Update environment share + operationId: update_environment_share parameters: - - in: path - name: http_api_definition_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: query - name: current_revision - required: true - deprecated: false - schema: - type: integer - format: uint64 - explode: true - style: form + - in: path + name: environment_share_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/EnvironmentShareUpdate' + required: true responses: - '204': + '200': description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/EnvironmentShare' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -5994,37 +5892,33 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - patch: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/http-api-deployments: + get: tags: - - RegistryService - - HttpApiDefinition - summary: Update http api definition - operationId: update_http_api_definition + - RegistryService + - ApiDeployment + - Environment + summary: List http api deployment by domain in the environment + operationId: list_environment_http_api_deployments parameters: - - in: path - name: http_api_definition_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/HttpApiDefinitionUpdate' + - in: path + name: environment_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/HttpApiDefinition' + $ref: '#/components/schemas/Page_HttpApiDeployment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -6068,41 +5962,38 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/http-api-definitions/{http_api_definition_id}/revisions/{revision}: - get: + - Cookie: [] + - Token: [] + post: tags: - - RegistryService - - HttpApiDefinition - summary: Get a specific http api definition revision - operationId: get_http_api_definition_revision + - RegistryService + - ApiDeployment + - Environment + summary: Create a new api-deployment in the environment + operationId: create_http_api_deployment parameters: - - in: path - name: http_api_definition_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: path - name: revision - required: true - deprecated: false - schema: - type: integer - format: uint64 - explode: true - style: simple + - in: path + name: environment_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/HttpApiDeploymentCreation' + required: true responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/HttpApiDefinition' + $ref: '#/components/schemas/HttpApiDeployment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -6146,41 +6037,32 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/http-api-definitions/{http_api_definition_name}: + - Cookie: [] + - Token: [] + /v1/http-api-deployments/{http_api_deployment_id}: get: tags: - - RegistryService - - HttpApiDefinition - - Environment - summary: Get http api definition by name in the environment - operationId: get_http_api_definition_in_environment + - RegistryService + - ApiDeployment + summary: Get an api-deployment by id + operationId: get_http_api_deployment parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: path - name: http_api_definition_name - required: true - deprecated: false - schema: - type: string - explode: true - style: simple + - in: path + name: http_api_deployment_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/HttpApiDefinition' + $ref: '#/components/schemas/HttpApiDeployment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -6224,51 +6106,36 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/deployments/{deployment_revision}/http-api-definitions/{http_api_definition_name}: - get: + - Cookie: [] + - Token: [] + delete: tags: - - RegistryService - - HttpApiDefinition - - Environment - - Deployment - summary: Get http api definition by name in the deployment - operationId: get_http_api_definition_in_deployment + - RegistryService + - ApiDeployment + summary: Delete an api-deployment + operationId: delete_http_api_deployment parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: path - name: deployment_revision - required: true - deprecated: false - schema: - type: integer - format: uint64 - explode: true - style: simple - - in: path - name: http_api_definition_name - required: true - deprecated: false - schema: - type: string - explode: true - style: simple + - in: path + name: http_api_deployment_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: query + name: current_revision + required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: form responses: - '200': + '204': description: '' - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/HttpApiDefinition' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -6312,51 +6179,37 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/deployments/{deployment_revision}/http-api-definitions/{http_api_definition_name}/openapi: - get: + - Cookie: [] + - Token: [] + patch: tags: - - RegistryService - - HttpApiDefinition - - Environment - - Deployment - summary: Get openapi spec of http api definition in the deployment - operationId: get_openapi_of_http_api_definition_in_deployment + - RegistryService + - ApiDeployment + summary: Update an api-deployment + operationId: update_http_api_deployment parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: path - name: deployment_revision - required: true - deprecated: false - schema: - type: integer - format: uint64 - explode: true - style: simple - - in: path - name: http_api_definition_name - required: true - deprecated: false - schema: - type: string - explode: true - style: simple + - in: path + name: http_api_deployment_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/HttpApiDeploymentUpdate' + required: true responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/UntypedJsonBody' + $ref: '#/components/schemas/HttpApiDeployment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -6400,42 +6253,41 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/deployments/{deployment_revision}/http-api-definitions: + - Cookie: [] + - Token: [] + /v1/http-api-deployment/{http_api_deployment_id}/revisions/{revision}: get: tags: - - RegistryService - - HttpApiDefinition - - Environment - summary: List http api definitions in the deployment - operationId: list_deployment_http_api_definitions + - RegistryService + - ApiDeployment + summary: Get a specific http api deployment revision + operationId: get_http_api_deployment_revision parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: path - name: deployment_revision - required: true - deprecated: false - schema: - type: integer - format: uint64 - explode: true - style: simple + - in: path + name: http_api_deployment_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: revision + required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: simple responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/Page_HttpApiDefinition' + $ref: '#/components/schemas/HttpApiDeployment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -6479,33 +6331,41 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/http-api-deployments: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/http-api-deployments/{domain}: get: tags: - - RegistryService - - ApiDeployment - - Environment - summary: List http api deployment by domain in the environment - operationId: list_http_api_deployments_in_environment + - RegistryService + - ApiDeployment + - Environment + summary: Get http api deployment by domain in the environment + operationId: get_environment_http_api_deployment parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: environment_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: domain + required: true + deprecated: false + schema: + type: string + explode: true + style: simple responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/Page_HttpApiDeployment' + $ref: '#/components/schemas/HttpApiDeployment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -6549,31 +6409,44 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - post: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/deployments/{deployment_revision}/http-api-deployments/{domain}: + get: tags: - - RegistryService - - ApiDeployment - - Environment - summary: Create a new api-deployment in the environment - operationId: create_http_api_deployment + - RegistryService + - ApiDeployment + - Environment + - Deployment + summary: Get http api deployment by domain in the deployment + operationId: get_deployment_http_api_deployment parameters: - - in: path - name: environment_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/HttpApiDeploymentCreation' + - in: path + name: environment_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: deployment_revision + required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: simple + - in: path + name: domain required: true + deprecated: false + schema: + type: string + explode: true + style: simple responses: '200': description: '' @@ -6624,32 +6497,43 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/http-api-deployments/{http_api_deployment_id}: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/deployments/{deployment_revision}/http-api-deployments: get: tags: - - RegistryService - - ApiDeployment - summary: Get an api-deployment by id - operationId: get_http_api_deployment + - RegistryService + - ApiDeployment + - Environment + - Deployment + summary: Get http api deployment by domain in the deployment + operationId: list_deployment_http_api_deployments parameters: - - in: path - name: http_api_deployment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: environment_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: deployment_revision + required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: simple responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/HttpApiDeployment' + $ref: '#/components/schemas/Page_HttpApiDeployment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -6693,36 +6577,48 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - delete: + - Cookie: [] + - Token: [] + /v1/login/oauth2: + post: tags: - - RegistryService - - ApiDeployment - summary: Delete an api-deployment - operationId: delete_http_api_deployment + - RegistryService + - 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: path - name: http_api_deployment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: query - name: current_revision - required: true - deprecated: false - schema: - type: integer - format: uint64 - explode: true - style: form + - in: query + name: provider + description: Currently only `github` is supported. + required: true + deprecated: false + schema: + $ref: '#/components/schemas/OAuth2Provider' + 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: - '204': + '200': description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/TokenWithSecret' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -6765,30 +6661,22 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' - security: - - Cookie: [] - - Token: [] - patch: + /v1/login/oauth2/device/start: + post: tags: - - RegistryService - - ApiDeployment - summary: Update an api-deployment - operationId: update_http_api_deployment - parameters: - - in: path - name: http_api_deployment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - RegistryService + - Login + summary: Start 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_oauth2_device_flow requestBody: content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/HttpApiDeploymentUpdate' + $ref: '#/components/schemas/OAuth2DeviceflowStart' required: true responses: '200': @@ -6796,7 +6684,7 @@ paths: content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/HttpApiDeployment' + $ref: '#/components/schemas/OAuth2DeviceflowData' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -6839,42 +6727,29 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' - security: - - Cookie: [] - - Token: [] - /v1/http-api-deployment/{http_api_deployment_id}/revisions/{revision}: - get: + /v1/login/oauth2/device/complete: + post: tags: - - RegistryService - - ApiDeployment - summary: Get a specific http api deployment revision - operationId: get_http_api_deployment_revision - parameters: - - in: path - name: http_api_deployment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: path - name: revision - required: true - deprecated: false - schema: - type: integer - format: uint64 - explode: true - style: simple + - RegistryService + - 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_oauth2_device_flow + 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/HttpApiDeployment' + $ref: '#/components/schemas/TokenWithSecret' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -6917,42 +6792,39 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' - security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/http-api-deployments/{domain}: + /v1/login/oauth2/web/authorize: get: tags: - - RegistryService - - ApiDeployment - - Environment - summary: Get http api deployment by domain in the environment - operationId: get_http_api_deployment_in_environment + - RegistryService + - Login + summary: Initiate OAuth2 Web Flow + description: Starts the OAuth2 web flow authorization process by returning the authorization URL for the given provider. + operationId: start_oauth2_webflow parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: path - name: domain - required: true - deprecated: false - schema: - type: string - explode: true - style: simple + - in: query + name: provider + description: Currently only `github` is supported. + required: true + deprecated: false + schema: + $ref: '#/components/schemas/OAuth2Provider' + 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/HttpApiDeployment' + $ref: '#/components/schemas/OAuth2WebflowData' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -6995,56 +6867,60 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' - security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/deployments/{deployment_revision}/http-api-deployments/{domain}: + /v1/login/oauth2/web/callback: get: tags: - - RegistryService - - ApiDeployment - - Environment - - Deployment - summary: Get http api deployment by domain in the deployment - operationId: get_http_api_deployment_in_deployment + - RegistryService + - Login + summary: OAuth2 Web Flow callback + description: |- + This endpoint handles the callback from the provider 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: submit_oauth2_webflow_callback parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: path - name: deployment_revision - required: true - deprecated: false - schema: - type: integer - format: uint64 - explode: true - style: simple - - in: path - name: domain - required: true - deprecated: false - schema: - type: string - explode: true - style: simple + - 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 + format: uuid + explode: true + style: form responses: - '200': - description: '' - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/HttpApiDeployment' - '400': - description: Invalid request, returning with a list of issues detected in the request - content: - application/json; charset=utf-8: + '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/Empty' + '200': + description: OAuth flow has completed + 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': @@ -7083,44 +6959,40 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' - security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/deployments/{deployment_revision}/http-api-deployments: + /v1/login/oauth2/web/poll: get: tags: - - RegistryService - - ApiDeployment - - Environment - - Deployment - summary: Get http api deployment by domain in the deployment - operationId: list_http_api_deployments_in_deployment + - RegistryService + - 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. + A given state might only be exchanged for a token once. Any further attempts to exchange the state will fail. + operationId: poll_oauth2_webflow parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: path - name: deployment_revision - required: true - deprecated: false - schema: - type: integer - format: uint64 - explode: true - style: simple + - in: query + name: state + description: The state parameter for identifying the session + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: form responses: '200': - description: '' + description: OAuth flow has completed content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/Page_HttpApiDeployment' + $ref: '#/components/schemas/TokenWithSecret' + '202': + description: OAuth flow is pending + 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: @@ -7163,49 +7035,22 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' - security: - - Cookie: [] - - Token: [] - /v1/login/oauth2: - post: + /v1/me/token: + get: tags: - - RegistryService - - 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: - $ref: '#/components/schemas/OAuth2Provider' - explode: true - style: form - - in: query - name: access-token - description: OAuth2 access token - required: true - deprecated: false - schema: - type: string - explode: true - style: form + - RegistryService + - Me + summary: |- + Gets information about the current token. + 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/TokenWithSecret' + $ref: '#/components/schemas/Token' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -7248,23 +7093,45 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' - /v1/login/token: + security: + - Cookie: [] + - Token: [] + /v1/me/visible-environments: get: tags: - - RegistryService - - 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 + - RegistryService + - Me + summary: List all environments that are visible to the current user, either directly or through shares. + operationId: list_visible_environments + parameters: + - in: query + name: account_email + deprecated: false + schema: + type: string + explode: true + style: form + - in: query + name: app_name + deprecated: false + schema: + type: string + explode: true + style: form + - in: query + name: env_name + deprecated: false + schema: + type: string + explode: true + style: form responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/Token' + $ref: '#/components/schemas/Page_EnvironmentWithDetails' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -7308,32 +7175,33 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/login/oauth2/device/start: - post: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/mcp-deployments: + get: tags: - - RegistryService - - Login - summary: Start 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_oauth2_device_flow - requestBody: - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/OAuth2DeviceflowStart' + - RegistryService + - McpDeployment + - Environment + summary: List MCP deployments in the environment + operationId: list_environment_mcp_deployments + parameters: + - in: path + name: environment_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/OAuth2DeviceflowData' + $ref: '#/components/schemas/Page_McpDeployment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -7376,21 +7244,31 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' - /v1/login/oauth2/device/complete: + security: + - Cookie: [] + - Token: [] post: tags: - - RegistryService - - 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_oauth2_device_flow + - RegistryService + - McpDeployment + - Environment + summary: Create a new MCP deployment in the environment + operationId: create_mcp_deployment + parameters: + - in: path + name: environment_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple requestBody: content: application/json; charset=utf-8: schema: - type: string + $ref: '#/components/schemas/McpDeploymentCreation' required: true responses: '200': @@ -7398,7 +7276,7 @@ paths: content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/TokenWithSecret' + $ref: '#/components/schemas/McpDeployment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -7441,39 +7319,42 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' - /v1/login/oauth2/web/authorize: + security: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/mcp-deployments/{domain}: get: tags: - - RegistryService - - Login - summary: Initiate OAuth2 Web Flow - description: Starts the OAuth2 web flow authorization process by returning the authorization URL for the given provider. - operationId: start_oauth2_webflow + - RegistryService + - McpDeployment + - Environment + summary: Get MCP deployment by domain in the environment + operationId: get_environment_mcp_deployment parameters: - - in: query - name: provider - description: Currently only `github` is supported. - required: true - deprecated: false - schema: - $ref: '#/components/schemas/OAuth2Provider' - 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 + - in: path + name: environment_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: domain + required: true + deprecated: false + schema: + type: string + explode: true + style: simple responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/OAuth2WebflowData' + $ref: '#/components/schemas/McpDeployment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -7516,56 +7397,33 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' - /v1/login/oauth2/web/callback: + security: + - Cookie: [] + - Token: [] + /v1/mcp-deployments/{mcp_deployment_id}: get: tags: - - RegistryService - - Login - summary: OAuth2 Web Flow callback - description: |- - This endpoint handles the callback from the provider 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: submit_oauth2_webflow_callback + - RegistryService + - McpDeployment + summary: Get MCP deployment by ID + operationId: get_mcp_deployment 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 - format: uuid - explode: true - style: form + - in: path + name: mcp_deployment_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple 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/Empty' '200': - description: OAuth flow has completed + description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/Empty' + $ref: '#/components/schemas/McpDeployment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -7608,40 +7466,37 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' - /v1/login/oauth2/web/poll: - get: + security: + - Cookie: [] + - Token: [] + delete: tags: - - RegistryService - - 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. - A given state might only be exchanged for a token once. Any further attempts to exchange the state will fail. - operationId: poll_oauth2_webflow + - RegistryService + - McpDeployment + summary: Delete MCP deployment + operationId: delete_mcp_deployment parameters: - - in: query - name: state - description: The state parameter for identifying the session - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: form + - in: path + name: mcp_deployment_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: query + name: current_revision + required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: form responses: - '200': - description: OAuth flow has completed - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/TokenWithSecret' - '202': - description: OAuth flow is pending - content: - application/json; charset=utf-8: - schema: - $ref: '#/components/schemas/Empty' + '204': + description: '' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -7684,30 +7539,38 @@ paths: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorBody' - /v1/plugins/{plugin_id}: - get: + security: + - Cookie: [] + - Token: [] + patch: tags: - - RegistryService - - Plugin - summary: Get a plugin by id - operationId: get_plugin_by_id + - RegistryService + - McpDeployment + summary: Update MCP deployment + operationId: update_mcp_deployment parameters: - - in: path - name: plugin_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: mcp_deployment_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/McpDeploymentUpdate' + required: true responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/PluginRegistrationDto' + $ref: '#/components/schemas/McpDeployment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -7751,31 +7614,41 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - delete: + - Cookie: [] + - Token: [] + /v1/mcp-deployment/{mcp_deployment_id}/revisions/{revision}: + get: tags: - - RegistryService - - Plugin - summary: Delete a plugin - operationId: delete_plugin + - RegistryService + - McpDeployment + summary: Get a specific MCP deployment revision + operationId: get_mcp_deployment_revision parameters: - - in: path - name: plugin_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: mcp_deployment_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: revision + required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: simple responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/PluginRegistrationDto' + $ref: '#/components/schemas/McpDeployment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -7819,21 +7692,51 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/reports/account_summaries: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/deployments/{deployment_revision}/mcp-deployments/{domain}: get: tags: - - RegistryService - - Reports - operationId: get_account_summaries_report + - RegistryService + - McpDeployment + - Environment + - Deployment + summary: Get MCP deployment by domain in the deployment + operationId: get_deployment_mcp_deployment + parameters: + - in: path + name: environment_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: deployment_revision + required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: simple + - in: path + name: domain + required: true + deprecated: false + schema: + type: string + explode: true + style: simple responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/Page_AccountSummaryReport' + $ref: '#/components/schemas/McpDeployment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -7877,21 +7780,43 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/reports/account_count: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/deployments/{deployment_revision}/mcp-deployments: get: tags: - - RegistryService - - Reports - operationId: get_account_count_report + - RegistryService + - McpDeployment + - Environment + - Deployment + summary: List MCP deployments by domain in the deployment + operationId: list_deployment_mcp_deployments + parameters: + - in: path + name: environment_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: deployment_revision + required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: simple responses: '200': description: '' content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/AccountCountsReport' + $ref: '#/components/schemas/Page_McpDeployment' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -7935,33 +7860,33 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/envs/{environment_id}/security-schemes: + - Cookie: [] + - Token: [] + /v1/accounts/{account_id}/plugins: get: tags: - - RegistryService - - ApiSecurity - - Environment - summary: Get all security-schemes of the environment - operationId: get_environment_security_schemes + - RegistryService + - Plugin + - Account + summary: List all plugins registered in account + operationId: list_account_plugins parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - responses: + - in: path + name: account_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/Page_SecuritySchemeDto' + $ref: '#/components/schemas/Page_PluginRegistrationDto' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -8005,30 +7930,30 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] + - Cookie: [] + - Token: [] post: tags: - - RegistryService - - ApiSecurity - - Environment - summary: Create a new security scheme - operationId: create_security_scheme + - RegistryService + - Plugin + - Account + summary: Register a new plugin + operationId: create_plugin parameters: - - in: path - name: environment_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: account_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/SecuritySchemeCreation' + $ref: '#/components/schemas/PluginRegistrationCreation' required: true responses: '200': @@ -8036,7 +7961,7 @@ paths: content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/SecuritySchemeDto' + $ref: '#/components/schemas/PluginRegistrationDto' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -8080,32 +8005,32 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/security-schemes/{security_scheme_id}: + - Cookie: [] + - Token: [] + /v1/plugins/{plugin_id}: get: tags: - - RegistryService - - ApiSecurity - summary: Get security scheme - operationId: get_security_scheme + - RegistryService + - Plugin + summary: Get a plugin by id + operationId: get_plugin_by_id parameters: - - in: path - name: security_scheme_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: plugin_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/SecuritySchemeDto' + $ref: '#/components/schemas/PluginRegistrationDto' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -8149,40 +8074,31 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] + - Cookie: [] + - Token: [] delete: tags: - - RegistryService - - ApiSecurity - summary: Delete security scheme - operationId: delete_security_scheme + - RegistryService + - Plugin + summary: Delete a plugin + operationId: delete_plugin parameters: - - in: path - name: security_scheme_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple - - in: query - name: current_revision - required: true - deprecated: false - schema: - type: integer - format: uint64 - explode: true - style: form + - in: path + name: plugin_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/SecuritySchemeDto' + $ref: '#/components/schemas/PluginRegistrationDto' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -8226,29 +8142,216 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - patch: + - Cookie: [] + - Token: [] + /v1/reports/account_summaries: + get: tags: - - RegistryService - - ApiSecurity - summary: Update security scheme - operationId: update_security_scheme + - RegistryService + - Reports + operationId: get_account_summaries_report + responses: + '200': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/Page_AccountSummaryReport' + '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: Forbidden Request + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: Entity not found + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '409': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '422': + description: Limits of the plan exceeded + 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/reports/account_count: + get: + tags: + - RegistryService + - Reports + operationId: get_account_count_report + responses: + '200': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/AccountCountsReport' + '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: Forbidden Request + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: Entity not found + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '409': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '422': + description: Limits of the plan exceeded + 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/envs/{environment_id}/resources: + get: + tags: + - RegistryService + - Resources + - Environment + summary: Get all resources defined in the environment + operationId: list_environment_resources parameters: - - in: path - name: security_scheme_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: environment_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/Page_ResourceDefinition' + '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: Forbidden Request + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: Entity not found + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '409': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '422': + description: Limits of the plan exceeded + 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: + - RegistryService + - Resources + - Environment + summary: Create a new resource in the environment + operationId: create_resource + parameters: + - in: path + name: environment_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/SecuritySchemeUpdate' + $ref: '#/components/schemas/ResourceDefinitionCreation' required: true responses: '200': @@ -8256,7 +8359,7 @@ paths: content: application/json; charset=utf-8: schema: - $ref: '#/components/schemas/SecuritySchemeDto' + $ref: '#/components/schemas/ResourceDefinition' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -8300,32 +8403,41 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - /v1/tokens/{token_id}: + - Cookie: [] + - Token: [] + /v1/envs/{environment_id}/resources/{resource_name}: get: tags: - - RegistryService - - Token - summary: Get token by id - operationId: get_token + - RegistryService + - Resources + - Environment + summary: Get a resource in the environment by name + operationId: get_environment_resource parameters: - - in: path - name: token_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: environment_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: resource_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/Token' + $ref: '#/components/schemas/ResourceDefinition' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -8369,32 +8481,32 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] - delete: + - Cookie: [] + - Token: [] + /v1/resources/{resource_id}: + get: tags: - - RegistryService - - Token - summary: Delete a token - description: Deletes a previously created token given by its identifier. - operationId: delete_token + - RegistryService + - Resources + summary: Get a resource by id + operationId: get_resource parameters: - - in: path - name: token_id - required: true - deprecated: false - schema: - type: string - format: uuid - explode: true - style: simple + - in: path + name: resource_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' + $ref: '#/components/schemas/ResourceDefinition' '400': description: Invalid request, returning with a list of issues detected in the request content: @@ -8438,18 +8550,1665 @@ paths: schema: $ref: '#/components/schemas/ErrorBody' security: - - Cookie: [] - - Token: [] -components: - schemas: - ActivatePluginResponse: - title: ActivatePluginResponse - type: object - AnalysedResourceMode: - type: string - enum: - - Owned - - Borrowed + - Cookie: [] + - Token: [] + delete: + tags: + - RegistryService + - Resources + summary: Delete a resource + operationId: delete_resource + parameters: + - in: path + name: resource_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: query + name: current_revision + required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: form + responses: + '204': + description: '' + '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: Forbidden Request + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: Entity not found + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '409': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '422': + description: Limits of the plan exceeded + 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: [] + patch: + tags: + - RegistryService + - Resources + summary: Update a resource + operationId: update_resource + parameters: + - in: path + name: resource_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/ResourceDefinitionUpdate' + required: true + responses: + '200': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResourceDefinition' + '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: Forbidden Request + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: Entity not found + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '409': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '422': + description: Limits of the plan exceeded + 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/resources/{resource_id}/revisions/{revision}: + get: + tags: + - RegistryService + - Resources + summary: Get specific revision of a resource + operationId: get_resource_revision + parameters: + - in: path + name: resource_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: path + name: revision + required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: simple + responses: + '200': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResourceDefinition' + '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: Forbidden Request + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: Entity not found + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '409': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '422': + description: Limits of the plan exceeded + 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/envs/{environment_id}/retry-policies: + get: + tags: + - RegistryService + - RetryPolicies + - Environment + summary: Get all retry policies of the environment + operationId: list_environment_retry_policies + parameters: + - in: path + name: environment_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/Page_RetryPolicyDto' + '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: Forbidden Request + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: Entity not found + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '409': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '422': + description: Limits of the plan exceeded + 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: + - RegistryService + - RetryPolicies + - Environment + summary: Create a new retry policy + operationId: create_retry_policy + parameters: + - in: path + name: environment_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/RetryPolicyCreation' + required: true + responses: + '200': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/RetryPolicyDto' + '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: Forbidden Request + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: Entity not found + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '409': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '422': + description: Limits of the plan exceeded + 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/retry-policies/{retry_policy_id}: + get: + tags: + - RegistryService + - RetryPolicies + summary: Get retry policy by id. + operationId: get_retry_policy + parameters: + - in: path + name: retry_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/RetryPolicyDto' + '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: Forbidden Request + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: Entity not found + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '409': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '422': + description: Limits of the plan exceeded + 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: + - RegistryService + - RetryPolicies + summary: Delete retry policy + operationId: delete_retry_policy + parameters: + - in: path + name: retry_policy_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: query + name: current_revision + required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: form + responses: + '200': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/RetryPolicyDto' + '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: Forbidden Request + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: Entity not found + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '409': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '422': + description: Limits of the plan exceeded + 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: [] + patch: + tags: + - RegistryService + - RetryPolicies + summary: Update retry policy + operationId: update_retry_policy + parameters: + - in: path + name: retry_policy_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/RetryPolicyUpdate' + required: true + responses: + '200': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/RetryPolicyDto' + '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: Forbidden Request + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: Entity not found + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '409': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '422': + description: Limits of the plan exceeded + 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/envs/{environment_id}/security-schemes: + get: + tags: + - RegistryService + - ApiSecurity + - Environment + summary: Get all security-schemes of the environment + operationId: list_environment_security_schemes + parameters: + - in: path + name: environment_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/Page_SecuritySchemeDto' + '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: Forbidden Request + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: Entity not found + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '409': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '422': + description: Limits of the plan exceeded + 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: + - RegistryService + - ApiSecurity + - Environment + summary: Create a new security scheme + operationId: create_security_scheme + parameters: + - in: path + name: environment_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/SecuritySchemeCreation' + required: true + responses: + '200': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/SecuritySchemeDto' + '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: Forbidden Request + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: Entity not found + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '409': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '422': + description: Limits of the plan exceeded + 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/security-schemes/{security_scheme_id}: + get: + tags: + - RegistryService + - ApiSecurity + summary: Get security scheme + operationId: get_security_scheme + parameters: + - in: path + name: security_scheme_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/SecuritySchemeDto' + '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: Forbidden Request + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: Entity not found + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '409': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '422': + description: Limits of the plan exceeded + 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: + - RegistryService + - ApiSecurity + summary: Delete security scheme + operationId: delete_security_scheme + parameters: + - in: path + name: security_scheme_id + required: true + deprecated: false + schema: + type: string + format: uuid + explode: true + style: simple + - in: query + name: current_revision + required: true + deprecated: false + schema: + type: integer + format: uint64 + explode: true + style: form + responses: + '200': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/SecuritySchemeDto' + '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: Forbidden Request + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: Entity not found + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '409': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '422': + description: Limits of the plan exceeded + 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: [] + patch: + tags: + - RegistryService + - ApiSecurity + summary: Update security scheme + operationId: update_security_scheme + parameters: + - in: path + name: security_scheme_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/SecuritySchemeUpdate' + required: true + responses: + '200': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/SecuritySchemeDto' + '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: Forbidden Request + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: Entity not found + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '409': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '422': + description: Limits of the plan exceeded + 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/tokens/{token_id}: + get: + tags: + - RegistryService + - Token + summary: Get token by id + operationId: get_token + parameters: + - 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' + '403': + description: Forbidden Request + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: Entity not found + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '409': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '422': + description: Limits of the plan exceeded + 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: + - RegistryService + - Token + summary: Delete a token + description: Deletes a previously created token given by its identifier. + operationId: delete_token + parameters: + - 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/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 request + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '403': + description: Forbidden Request + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '404': + description: Entity not found + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '409': + description: '' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ErrorBody' + '422': + description: Limits of the plan exceeded + 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: [] +components: + schemas: + ActivatePluginResponse: + title: ActivatePluginResponse + type: object + AgentAndFilter: + title: AgentAndFilter + type: object + properties: + filters: + type: array + items: + $ref: '#/components/schemas/AgentFilter' + required: + - filters + AgentConfigEntryDto: + title: AgentConfigEntryDto + type: object + properties: + path: + type: array + items: + type: string + value: + $ref: '#/components/schemas/NormalizedJsonValue' + required: + - path + - value + AgentConfigVarsFilter: + title: AgentConfigVarsFilter + type: object + properties: + name: + type: string + comparator: + $ref: '#/components/schemas/StringFilterComparator' + value: + type: string + required: + - name + - comparator + - value + AgentCreatedAtFilter: + title: AgentCreatedAtFilter + type: object + properties: + comparator: + $ref: '#/components/schemas/FilterComparator' + value: + type: string + format: date-time + required: + - comparator + - value + AgentCreationRequest: + title: AgentCreationRequest + type: object + properties: + name: + type: string + env: + type: object + additionalProperties: + type: string + wasiConfig: + default: {} + type: object + additionalProperties: + type: string + config: + default: [] + type: array + items: + $ref: '#/components/schemas/AgentConfigEntryDto' + required: + - name + - env + AgentEnvFilter: + title: AgentEnvFilter + type: object + properties: + name: + type: string + comparator: + $ref: '#/components/schemas/StringFilterComparator' + value: + type: string + required: + - name + - comparator + - value + AgentFilePermissions: + type: string + enum: + - read-only + - read-write + AgentFileSystemNode: + title: AgentFileSystemNode + type: object + properties: + name: + type: string + lastModified: + type: integer + format: uint64 + kind: + $ref: '#/components/schemas/AgentFileSystemNodeKind' + permissions: + $ref: '#/components/schemas/AgentFilePermissions' + size: + type: integer + format: uint64 + required: + - name + - lastModified + - kind + AgentFileSystemNodeKind: + type: string + enum: + - directory + - file + AgentFilter: + discriminator: + propertyName: type + mapping: + Name: '#/components/schemas/AgentFilter_AgentNameFilter' + Status: '#/components/schemas/AgentFilter_AgentStatusFilter' + Revision: '#/components/schemas/AgentFilter_AgentRevisionFilter' + CreatedAt: '#/components/schemas/AgentFilter_AgentCreatedAtFilter' + Env: '#/components/schemas/AgentFilter_AgentEnvFilter' + And: '#/components/schemas/AgentFilter_AgentAndFilter' + Or: '#/components/schemas/AgentFilter_AgentOrFilter' + Not: '#/components/schemas/AgentFilter_AgentNotFilter' + WasiConfig: '#/components/schemas/AgentFilter_AgentConfigVarsFilter' + type: object + oneOf: + - $ref: '#/components/schemas/AgentFilter_AgentNameFilter' + - $ref: '#/components/schemas/AgentFilter_AgentStatusFilter' + - $ref: '#/components/schemas/AgentFilter_AgentRevisionFilter' + - $ref: '#/components/schemas/AgentFilter_AgentCreatedAtFilter' + - $ref: '#/components/schemas/AgentFilter_AgentEnvFilter' + - $ref: '#/components/schemas/AgentFilter_AgentAndFilter' + - $ref: '#/components/schemas/AgentFilter_AgentOrFilter' + - $ref: '#/components/schemas/AgentFilter_AgentNotFilter' + - $ref: '#/components/schemas/AgentFilter_AgentConfigVarsFilter' + AgentFilter_AgentAndFilter: + allOf: + - type: object + properties: + type: + example: And + type: string + enum: + - And + required: + - type + - $ref: '#/components/schemas/AgentAndFilter' + AgentFilter_AgentConfigVarsFilter: + allOf: + - type: object + properties: + type: + example: WasiConfig + type: string + enum: + - WasiConfig + required: + - type + - $ref: '#/components/schemas/AgentConfigVarsFilter' + AgentFilter_AgentCreatedAtFilter: + allOf: + - type: object + properties: + type: + example: CreatedAt + type: string + enum: + - CreatedAt + required: + - type + - $ref: '#/components/schemas/AgentCreatedAtFilter' + AgentFilter_AgentEnvFilter: + allOf: + - type: object + properties: + type: + example: Env + type: string + enum: + - Env + required: + - type + - $ref: '#/components/schemas/AgentEnvFilter' + AgentFilter_AgentNameFilter: + allOf: + - type: object + properties: + type: + example: Name + type: string + enum: + - Name + required: + - type + - $ref: '#/components/schemas/AgentNameFilter' + AgentFilter_AgentNotFilter: + allOf: + - type: object + properties: + type: + example: Not + type: string + enum: + - Not + required: + - type + - $ref: '#/components/schemas/AgentNotFilter' + AgentFilter_AgentOrFilter: + allOf: + - type: object + properties: + type: + example: Or + type: string + enum: + - Or + required: + - type + - $ref: '#/components/schemas/AgentOrFilter' + AgentFilter_AgentRevisionFilter: + allOf: + - type: object + properties: + type: + example: Revision + type: string + enum: + - Revision + required: + - type + - $ref: '#/components/schemas/AgentRevisionFilter' + AgentFilter_AgentStatusFilter: + allOf: + - type: object + properties: + type: + example: Status + type: string + enum: + - Status + required: + - type + - $ref: '#/components/schemas/AgentStatusFilter' + AgentId: + title: AgentId + type: object + properties: + componentId: + type: string + format: uuid + agentId: + type: string + required: + - componentId + - agentId + AgentInitializationParameters: + title: AgentInitializationParameters + type: object + properties: + idempotencyKey: + type: string + constructorParameters: + $ref: '#/components/schemas/DataValue' + traceId: + type: string + traceStates: + type: array + items: + type: string + invocationContext: + type: array + items: + type: array + items: + $ref: '#/components/schemas/PublicSpanData' + required: + - idempotencyKey + - constructorParameters + - traceId + - traceStates + - invocationContext + AgentInvocationMode: + type: string + enum: + - await + - schedule + AgentInvocationOutputParameters: + title: AgentInvocationOutputParameters + type: object + properties: + output: + $ref: '#/components/schemas/DataValue' + required: + - output + AgentInvocationRequest: + title: AgentInvocationRequest + type: object + properties: + appName: + type: string + envName: + type: string + agentTypeName: + type: string + parameters: + $ref: '#/components/schemas/UntypedJsonDataValue' + phantomId: + type: string + format: uuid + methodName: + type: string + methodParameters: + $ref: '#/components/schemas/UntypedJsonDataValue' + mode: + $ref: '#/components/schemas/AgentInvocationMode' + scheduleAt: + type: string + format: date-time + idempotencyKey: + type: string + deploymentRevision: + type: integer + format: int64 + ownerAccountEmail: + type: string + required: + - appName + - envName + - agentTypeName + - parameters + - methodName + - methodParameters + - mode + AgentInvocationResult: + title: AgentInvocationResult + type: object + properties: + result: + $ref: '#/components/schemas/UntypedJsonDataValue' + componentRevision: + type: integer + format: uint64 + AgentMetadataDto: + title: AgentMetadataDto + type: object + properties: + agentId: + $ref: '#/components/schemas/AgentId' + environmentId: + type: string + format: uuid + createdBy: + type: string + format: uuid + env: + type: object + additionalProperties: + type: string + wasiConfig: + type: object + additionalProperties: + type: string + config: + type: array + items: + $ref: '#/components/schemas/TypedAgentConfigEntry' + status: + $ref: '#/components/schemas/AgentStatus' + componentRevision: + type: integer + format: uint64 + retryCount: + type: integer + format: uint32 + 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 + exportedResourceInstances: + type: array + items: + $ref: '#/components/schemas/ExportedResourceMetadata' + activePlugins: + type: array + items: + type: string + format: uuid + skippedRegions: + description: |- + Oplog regions that are skipped during the worker's state recovery, but describe + the history of the worker. For example if an atomic region gets restarted, its partially + recorded oplog entries will be skipped on retry. + type: array + items: + $ref: '#/components/schemas/OplogRegion' + deletedRegions: + description: Oplog regions permanently deleted from the workers using the revert functionality. + type: array + items: + $ref: '#/components/schemas/OplogRegion' + required: + - agentId + - environmentId + - createdBy + - env + - wasiConfig + - config + - status + - componentRevision + - retryCount + - pendingInvocationCount + - updates + - createdAt + - componentSize + - totalLinearMemorySize + - exportedResourceInstances + - activePlugins + - skippedRegions + - deletedRegions + AgentMethodInvocationParameters: + title: AgentMethodInvocationParameters + type: object + properties: + idempotencyKey: + type: string + methodName: + type: string + functionInput: + $ref: '#/components/schemas/DataValue' + traceId: + type: string + traceStates: + type: array + items: + type: string + invocationContext: + type: array + items: + type: array + items: + $ref: '#/components/schemas/PublicSpanData' + required: + - idempotencyKey + - methodName + - functionInput + - traceId + - traceStates + - invocationContext + AgentNameFilter: + title: AgentNameFilter + type: object + properties: + comparator: + $ref: '#/components/schemas/StringFilterComparator' + value: + type: string + required: + - comparator + - value + AgentNotFilter: + title: AgentNotFilter + type: object + properties: + filter: + $ref: '#/components/schemas/AgentFilter' + required: + - filter + AgentOrFilter: + title: AgentOrFilter + type: object + properties: + filters: + type: array + items: + $ref: '#/components/schemas/AgentFilter' + required: + - filters + AgentResourceDescription: + title: AgentResourceDescription + type: object + properties: + createdAt: + type: string + format: date-time + resourceOwner: + type: string + resourceName: + type: string + required: + - createdAt + - resourceOwner + - resourceName + AgentRevisionFilter: + title: AgentRevisionFilter + type: object + properties: + comparator: + $ref: '#/components/schemas/FilterComparator' + value: + type: integer + format: uint64 + required: + - comparator + - value + AgentStatus: + 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 + AgentStatusFilter: + title: AgentStatusFilter + type: object + properties: + comparator: + $ref: '#/components/schemas/FilterComparator' + value: + $ref: '#/components/schemas/AgentStatus' + required: + - comparator + - value + AgentUpdateMode: + type: string + enum: + - automatic + - manual + AnalysedResourceMode: + type: string + enum: + - Owned + - Borrowed AnalysedType: discriminator: propertyName: type @@ -8478,292 +10237,990 @@ components: 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: + - $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' + ApiAddDelayPolicy: + title: ApiAddDelayPolicy + type: object + properties: + delayMs: + type: integer + format: uint64 + inner: + $ref: '#/components/schemas/ApiRetryPolicy' + required: + - delayMs + - inner + ApiBooleanValue: + title: ApiBooleanValue + type: object + properties: + value: + type: boolean + required: + - value + ApiClampPolicy: + title: ApiClampPolicy + type: object + properties: + minDelayMs: + type: integer + format: uint64 + maxDelayMs: + type: integer + format: uint64 + inner: + $ref: '#/components/schemas/ApiRetryPolicy' + required: + - minDelayMs + - maxDelayMs + - inner + ApiCountBoxPolicy: + title: ApiCountBoxPolicy + type: object + properties: + maxRetries: + type: integer + format: uint32 + inner: + $ref: '#/components/schemas/ApiRetryPolicy' + required: + - maxRetries + - inner + ApiExponentialPolicy: + title: ApiExponentialPolicy + type: object + properties: + baseDelayMs: + type: integer + format: uint64 + factor: + type: number + format: double + required: + - baseDelayMs + - factor + ApiFibonacciPolicy: + title: ApiFibonacciPolicy + type: object + properties: + firstMs: + type: integer + format: uint64 + secondMs: + type: integer + format: uint64 + required: + - firstMs + - secondMs + ApiFilteredOnPolicy: + title: ApiFilteredOnPolicy + type: object + properties: + predicate: + $ref: '#/components/schemas/ApiPredicate' + inner: + $ref: '#/components/schemas/ApiRetryPolicy' + required: + - predicate + - inner + ApiImmediatePolicy: + title: ApiImmediatePolicy + type: object + ApiIntegerValue: + title: ApiIntegerValue + type: object + properties: + value: + type: integer + format: int64 + required: + - value + ApiJitterPolicy: + title: ApiJitterPolicy + type: object + properties: + factor: + type: number + format: double + inner: + $ref: '#/components/schemas/ApiRetryPolicy' + required: + - factor + - inner + ApiNeverPolicy: + title: ApiNeverPolicy + type: object + ApiPeriodicPolicy: + title: ApiPeriodicPolicy + type: object + properties: + delayMs: + type: integer + format: uint64 + required: + - delayMs + ApiPredicate: + discriminator: + propertyName: type + mapping: + PropEq: '#/components/schemas/ApiPredicate_ApiPropertyComparison' + PropNeq: '#/components/schemas/ApiPredicate_ApiPropertyComparison' + PropGt: '#/components/schemas/ApiPredicate_ApiPropertyComparison' + PropGte: '#/components/schemas/ApiPredicate_ApiPropertyComparison' + PropLt: '#/components/schemas/ApiPredicate_ApiPropertyComparison' + PropLte: '#/components/schemas/ApiPredicate_ApiPropertyComparison' + PropExists: '#/components/schemas/ApiPredicate_ApiPropertyExistence' + PropIn: '#/components/schemas/ApiPredicate_ApiPropertySetCheck' + PropMatches: '#/components/schemas/ApiPredicate_ApiPropertyPattern' + PropStartsWith: '#/components/schemas/ApiPredicate_ApiPropertyPrefix' + PropContains: '#/components/schemas/ApiPredicate_ApiPropertySubstring' + And: '#/components/schemas/ApiPredicate_ApiPredicatePair' + Or: '#/components/schemas/ApiPredicate_ApiPredicatePair' + Not: '#/components/schemas/ApiPredicate_ApiPredicateNot' + 'True': '#/components/schemas/ApiPredicate_ApiPredicateTrue' + 'False': '#/components/schemas/ApiPredicate_ApiPredicateFalse' + type: object + oneOf: + - $ref: '#/components/schemas/ApiPredicate_ApiPropertyComparison' + - $ref: '#/components/schemas/ApiPredicate_ApiPropertyComparison' + - $ref: '#/components/schemas/ApiPredicate_ApiPropertyComparison' + - $ref: '#/components/schemas/ApiPredicate_ApiPropertyComparison' + - $ref: '#/components/schemas/ApiPredicate_ApiPropertyComparison' + - $ref: '#/components/schemas/ApiPredicate_ApiPropertyComparison' + - $ref: '#/components/schemas/ApiPredicate_ApiPropertyExistence' + - $ref: '#/components/schemas/ApiPredicate_ApiPropertySetCheck' + - $ref: '#/components/schemas/ApiPredicate_ApiPropertyPattern' + - $ref: '#/components/schemas/ApiPredicate_ApiPropertyPrefix' + - $ref: '#/components/schemas/ApiPredicate_ApiPropertySubstring' + - $ref: '#/components/schemas/ApiPredicate_ApiPredicatePair' + - $ref: '#/components/schemas/ApiPredicate_ApiPredicatePair' + - $ref: '#/components/schemas/ApiPredicate_ApiPredicateNot' + - $ref: '#/components/schemas/ApiPredicate_ApiPredicateTrue' + - $ref: '#/components/schemas/ApiPredicate_ApiPredicateFalse' + ApiPredicateFalse: + title: ApiPredicateFalse + type: object + ApiPredicateNot: + title: ApiPredicateNot + type: object + properties: + predicate: + $ref: '#/components/schemas/ApiPredicate' + required: + - predicate + ApiPredicatePair: + title: ApiPredicatePair + type: object + properties: + left: + $ref: '#/components/schemas/ApiPredicate' + right: + $ref: '#/components/schemas/ApiPredicate' + required: + - left + - right + ApiPredicateTrue: + title: ApiPredicateTrue + type: object + ApiPredicateValue: + discriminator: + propertyName: type + mapping: + Text: '#/components/schemas/ApiPredicateValue_ApiTextValue' + Integer: '#/components/schemas/ApiPredicateValue_ApiIntegerValue' + Boolean: '#/components/schemas/ApiPredicateValue_ApiBooleanValue' + type: object + oneOf: + - $ref: '#/components/schemas/ApiPredicateValue_ApiTextValue' + - $ref: '#/components/schemas/ApiPredicateValue_ApiIntegerValue' + - $ref: '#/components/schemas/ApiPredicateValue_ApiBooleanValue' + ApiPredicateValue_ApiBooleanValue: allOf: - - type: object - properties: - type: - example: Bool - type: string - enum: - - Bool - required: - - type - - $ref: '#/components/schemas/TypeBool' - AnalysedType_TypeChr: + - type: object + properties: + type: + example: Boolean + type: string + enum: + - Boolean + required: + - type + - $ref: '#/components/schemas/ApiBooleanValue' + ApiPredicateValue_ApiIntegerValue: allOf: - - type: object - properties: - type: - example: Chr - type: string - enum: - - Chr - required: - - type - - $ref: '#/components/schemas/TypeChr' - AnalysedType_TypeEnum: + - type: object + properties: + type: + example: Integer + type: string + enum: + - Integer + required: + - type + - $ref: '#/components/schemas/ApiIntegerValue' + ApiPredicateValue_ApiTextValue: allOf: - - type: object - properties: - type: - example: Enum - type: string - enum: - - Enum - required: - - type - - $ref: '#/components/schemas/TypeEnum' - AnalysedType_TypeF32: + - type: object + properties: + type: + example: Text + type: string + enum: + - Text + required: + - type + - $ref: '#/components/schemas/ApiTextValue' + ApiPredicate_ApiPredicateFalse: allOf: - - type: object - properties: - type: - example: F32 - type: string - enum: - - F32 - required: - - type - - $ref: '#/components/schemas/TypeF32' - AnalysedType_TypeF64: + - type: object + properties: + type: + example: 'False' + type: string + enum: + - 'False' + required: + - type + - $ref: '#/components/schemas/ApiPredicateFalse' + ApiPredicate_ApiPredicateNot: allOf: - - type: object - properties: - type: - example: F64 - type: string - enum: - - F64 - required: - - type - - $ref: '#/components/schemas/TypeF64' - AnalysedType_TypeFlags: + - type: object + properties: + type: + example: Not + type: string + enum: + - Not + required: + - type + - $ref: '#/components/schemas/ApiPredicateNot' + ApiPredicate_ApiPredicatePair: allOf: - - type: object - properties: - type: - example: Flags - type: string - enum: - - Flags - required: - - type - - $ref: '#/components/schemas/TypeFlags' - AnalysedType_TypeHandle: + - type: object + properties: + type: + example: Or + type: string + enum: + - Or + required: + - type + - $ref: '#/components/schemas/ApiPredicatePair' + ApiPredicate_ApiPredicateTrue: allOf: - - type: object - properties: - type: - example: Handle - type: string - enum: - - Handle - required: - - type - - $ref: '#/components/schemas/TypeHandle' - AnalysedType_TypeList: + - type: object + properties: + type: + example: 'True' + type: string + enum: + - 'True' + required: + - type + - $ref: '#/components/schemas/ApiPredicateTrue' + ApiPredicate_ApiPropertyComparison: allOf: - - type: object - properties: - type: - example: List - type: string - enum: - - List - required: - - type - - $ref: '#/components/schemas/TypeList' - AnalysedType_TypeOption: + - type: object + properties: + type: + example: PropLte + type: string + enum: + - PropLte + required: + - type + - $ref: '#/components/schemas/ApiPropertyComparison' + ApiPredicate_ApiPropertyExistence: allOf: - - type: object - properties: - type: - example: Option - type: string - enum: - - Option - required: - - type - - $ref: '#/components/schemas/TypeOption' - AnalysedType_TypeRecord: + - type: object + properties: + type: + example: PropExists + type: string + enum: + - PropExists + required: + - type + - $ref: '#/components/schemas/ApiPropertyExistence' + ApiPredicate_ApiPropertyPattern: allOf: - - type: object - properties: - type: - example: Record - type: string - enum: - - Record - required: - - type - - $ref: '#/components/schemas/TypeRecord' - AnalysedType_TypeResult: + - type: object + properties: + type: + example: PropMatches + type: string + enum: + - PropMatches + required: + - type + - $ref: '#/components/schemas/ApiPropertyPattern' + ApiPredicate_ApiPropertyPrefix: allOf: - - type: object - properties: - type: - example: Result - type: string - enum: - - Result - required: - - type - - $ref: '#/components/schemas/TypeResult' - AnalysedType_TypeS16: + - type: object + properties: + type: + example: PropStartsWith + type: string + enum: + - PropStartsWith + required: + - type + - $ref: '#/components/schemas/ApiPropertyPrefix' + ApiPredicate_ApiPropertySetCheck: allOf: - - type: object - properties: - type: - example: S16 - type: string - enum: - - S16 - required: - - type - - $ref: '#/components/schemas/TypeS16' - AnalysedType_TypeS32: + - type: object + properties: + type: + example: PropIn + type: string + enum: + - PropIn + required: + - type + - $ref: '#/components/schemas/ApiPropertySetCheck' + ApiPredicate_ApiPropertySubstring: allOf: - - type: object - properties: - type: - example: S32 - type: string - enum: - - S32 - required: - - type - - $ref: '#/components/schemas/TypeS32' - AnalysedType_TypeS64: + - type: object + properties: + type: + example: PropContains + type: string + enum: + - PropContains + required: + - type + - $ref: '#/components/schemas/ApiPropertySubstring' + ApiPropertyComparison: + title: ApiPropertyComparison + type: object + properties: + property: + type: string + value: + $ref: '#/components/schemas/ApiPredicateValue' + required: + - property + - value + ApiPropertyExistence: + title: ApiPropertyExistence + type: object + properties: + property: + type: string + required: + - property + ApiPropertyPattern: + title: ApiPropertyPattern + type: object + properties: + property: + type: string + pattern: + type: string + required: + - property + - pattern + ApiPropertyPrefix: + title: ApiPropertyPrefix + type: object + properties: + property: + type: string + prefix: + type: string + required: + - property + - prefix + ApiPropertySetCheck: + title: ApiPropertySetCheck + type: object + properties: + property: + type: string + values: + type: array + items: + $ref: '#/components/schemas/ApiPredicateValue' + required: + - property + - values + ApiPropertySubstring: + title: ApiPropertySubstring + type: object + properties: + property: + type: string + substring: + type: string + required: + - property + - substring + ApiRetryPolicy: + discriminator: + propertyName: type + mapping: + Periodic: '#/components/schemas/ApiRetryPolicy_ApiPeriodicPolicy' + Exponential: '#/components/schemas/ApiRetryPolicy_ApiExponentialPolicy' + Fibonacci: '#/components/schemas/ApiRetryPolicy_ApiFibonacciPolicy' + Immediate: '#/components/schemas/ApiRetryPolicy_ApiImmediatePolicy' + Never: '#/components/schemas/ApiRetryPolicy_ApiNeverPolicy' + CountBox: '#/components/schemas/ApiRetryPolicy_ApiCountBoxPolicy' + TimeBox: '#/components/schemas/ApiRetryPolicy_ApiTimeBoxPolicy' + Clamp: '#/components/schemas/ApiRetryPolicy_ApiClampPolicy' + AddDelay: '#/components/schemas/ApiRetryPolicy_ApiAddDelayPolicy' + Jitter: '#/components/schemas/ApiRetryPolicy_ApiJitterPolicy' + FilteredOn: '#/components/schemas/ApiRetryPolicy_ApiFilteredOnPolicy' + AndThen: '#/components/schemas/ApiRetryPolicy_ApiRetryPolicyPair' + Union: '#/components/schemas/ApiRetryPolicy_ApiRetryPolicyPair' + Intersect: '#/components/schemas/ApiRetryPolicy_ApiRetryPolicyPair' + type: object + oneOf: + - $ref: '#/components/schemas/ApiRetryPolicy_ApiPeriodicPolicy' + - $ref: '#/components/schemas/ApiRetryPolicy_ApiExponentialPolicy' + - $ref: '#/components/schemas/ApiRetryPolicy_ApiFibonacciPolicy' + - $ref: '#/components/schemas/ApiRetryPolicy_ApiImmediatePolicy' + - $ref: '#/components/schemas/ApiRetryPolicy_ApiNeverPolicy' + - $ref: '#/components/schemas/ApiRetryPolicy_ApiCountBoxPolicy' + - $ref: '#/components/schemas/ApiRetryPolicy_ApiTimeBoxPolicy' + - $ref: '#/components/schemas/ApiRetryPolicy_ApiClampPolicy' + - $ref: '#/components/schemas/ApiRetryPolicy_ApiAddDelayPolicy' + - $ref: '#/components/schemas/ApiRetryPolicy_ApiJitterPolicy' + - $ref: '#/components/schemas/ApiRetryPolicy_ApiFilteredOnPolicy' + - $ref: '#/components/schemas/ApiRetryPolicy_ApiRetryPolicyPair' + - $ref: '#/components/schemas/ApiRetryPolicy_ApiRetryPolicyPair' + - $ref: '#/components/schemas/ApiRetryPolicy_ApiRetryPolicyPair' + ApiRetryPolicyPair: + title: ApiRetryPolicyPair + type: object + properties: + first: + $ref: '#/components/schemas/ApiRetryPolicy' + second: + $ref: '#/components/schemas/ApiRetryPolicy' + required: + - first + - second + ApiRetryPolicy_ApiAddDelayPolicy: allOf: - - type: object - properties: - type: - example: S64 - type: string - enum: - - S64 - required: - - type - - $ref: '#/components/schemas/TypeS64' - AnalysedType_TypeS8: + - type: object + properties: + type: + example: AddDelay + type: string + enum: + - AddDelay + required: + - type + - $ref: '#/components/schemas/ApiAddDelayPolicy' + ApiRetryPolicy_ApiClampPolicy: allOf: - - type: object - properties: - type: - example: S8 - type: string - enum: - - S8 - required: - - type - - $ref: '#/components/schemas/TypeS8' - AnalysedType_TypeStr: + - type: object + properties: + type: + example: Clamp + type: string + enum: + - Clamp + required: + - type + - $ref: '#/components/schemas/ApiClampPolicy' + ApiRetryPolicy_ApiCountBoxPolicy: allOf: - - type: object - properties: - type: - example: Str - type: string - enum: - - Str - required: - - type - - $ref: '#/components/schemas/TypeStr' - AnalysedType_TypeTuple: + - type: object + properties: + type: + example: CountBox + type: string + enum: + - CountBox + required: + - type + - $ref: '#/components/schemas/ApiCountBoxPolicy' + ApiRetryPolicy_ApiExponentialPolicy: allOf: - - type: object - properties: - type: - example: Tuple - type: string - enum: - - Tuple - required: - - type - - $ref: '#/components/schemas/TypeTuple' - AnalysedType_TypeU16: + - type: object + properties: + type: + example: Exponential + type: string + enum: + - Exponential + required: + - type + - $ref: '#/components/schemas/ApiExponentialPolicy' + ApiRetryPolicy_ApiFibonacciPolicy: allOf: - - type: object - properties: - type: - example: U16 - type: string - enum: - - U16 - required: - - type - - $ref: '#/components/schemas/TypeU16' - AnalysedType_TypeU32: + - type: object + properties: + type: + example: Fibonacci + type: string + enum: + - Fibonacci + required: + - type + - $ref: '#/components/schemas/ApiFibonacciPolicy' + ApiRetryPolicy_ApiFilteredOnPolicy: allOf: - - type: object - properties: - type: - example: U32 - type: string - enum: - - U32 - required: - - type - - $ref: '#/components/schemas/TypeU32' - AnalysedType_TypeU64: + - type: object + properties: + type: + example: FilteredOn + type: string + enum: + - FilteredOn + required: + - type + - $ref: '#/components/schemas/ApiFilteredOnPolicy' + ApiRetryPolicy_ApiImmediatePolicy: allOf: - - type: object - properties: - type: - example: U64 - type: string - enum: - - U64 - required: - - type - - $ref: '#/components/schemas/TypeU64' - AnalysedType_TypeU8: + - type: object + properties: + type: + example: Immediate + type: string + enum: + - Immediate + required: + - type + - $ref: '#/components/schemas/ApiImmediatePolicy' + ApiRetryPolicy_ApiJitterPolicy: allOf: - - type: object - properties: - type: - example: U8 - type: string - enum: - - U8 - required: - - type - - $ref: '#/components/schemas/TypeU8' - AnalysedType_TypeVariant: + - type: object + properties: + type: + example: Jitter + type: string + enum: + - Jitter + required: + - type + - $ref: '#/components/schemas/ApiJitterPolicy' + ApiRetryPolicy_ApiNeverPolicy: allOf: - - type: object - properties: - type: - example: Variant - type: string - enum: - - Variant - required: - - type - - $ref: '#/components/schemas/TypeVariant' + - type: object + properties: + type: + example: Never + type: string + enum: + - Never + required: + - type + - $ref: '#/components/schemas/ApiNeverPolicy' + ApiRetryPolicy_ApiPeriodicPolicy: + allOf: + - type: object + properties: + type: + example: Periodic + type: string + enum: + - Periodic + required: + - type + - $ref: '#/components/schemas/ApiPeriodicPolicy' + ApiRetryPolicy_ApiRetryPolicyPair: + allOf: + - type: object + properties: + type: + example: Intersect + type: string + enum: + - Intersect + required: + - type + - $ref: '#/components/schemas/ApiRetryPolicyPair' + ApiRetryPolicy_ApiTimeBoxPolicy: + allOf: + - type: object + properties: + type: + example: TimeBox + type: string + enum: + - TimeBox + required: + - type + - $ref: '#/components/schemas/ApiTimeBoxPolicy' + ApiTextValue: + title: ApiTextValue + type: object + properties: + value: + type: string + required: + - value + ApiTimeBoxPolicy: + title: ApiTimeBoxPolicy + type: object + properties: + limitMs: + type: integer + format: uint64 + inner: + $ref: '#/components/schemas/ApiRetryPolicy' + required: + - limitMs + - inner + BinaryDescriptor: + title: BinaryDescriptor + type: object + properties: + restrictions: + type: array + items: + $ref: '#/components/schemas/BinaryType' + BinaryReference: + discriminator: + propertyName: type + mapping: + Url: '#/components/schemas/BinaryReference_Url' + Inline: '#/components/schemas/BinaryReference_BinarySource' + type: object + oneOf: + - $ref: '#/components/schemas/BinaryReference_Url' + - $ref: '#/components/schemas/BinaryReference_BinarySource' + BinaryReferenceValue: + title: BinaryReferenceValue + type: object + properties: + value: + $ref: '#/components/schemas/BinaryReference' + required: + - value + BinaryReference_BinarySource: + allOf: + - type: object + properties: + type: + example: Inline + type: string + enum: + - Inline + required: + - type + - $ref: '#/components/schemas/BinarySource' + BinaryReference_Url: + allOf: + - type: object + properties: + type: + example: Url + type: string + enum: + - Url + required: + - type + - $ref: '#/components/schemas/Url' + BinarySource: + title: BinarySource + type: object + properties: + data: + type: array + items: + type: integer + format: uint8 + binaryType: + $ref: '#/components/schemas/BinaryType' + required: + - data + - binaryType + BinaryType: + title: BinaryType + type: object + properties: + mimeType: + type: string + required: + - mimeType CancelInvocationResponse: title: CancelInvocationResponse type: object @@ -8771,7 +11228,7 @@ components: canceled: type: boolean required: - - canceled + - canceled CompleteParameters: title: CompleteParameters type: object @@ -8785,19 +11242,151 @@ components: type: integer format: uint8 required: - - oplogIdx - - data - ComponentFilePermissions: - type: string - enum: - - read-only - - read-write + - oplogIdx + - data + ComponentModelElementValue: + title: ComponentModelElementValue + type: object + properties: + value: + $ref: '#/components/schemas/ValueAndType' + required: + - value + CreateAgentRequest: + title: CreateAgentRequest + type: object + properties: + appName: + type: string + envName: + type: string + agentTypeName: + type: string + parameters: + $ref: '#/components/schemas/UntypedJsonDataValue' + phantomId: + type: string + format: uuid + config: + default: [] + type: array + items: + $ref: '#/components/schemas/AgentConfigEntryDto' + required: + - appName + - envName + - agentTypeName + - parameters + CreateAgentResponse: + title: CreateAgentResponse + type: object + properties: + agentId: + $ref: '#/components/schemas/AgentId' + componentRevision: + type: integer + format: uint64 + required: + - agentId + - componentRevision + DataValue: + discriminator: + propertyName: type + mapping: + Tuple: '#/components/schemas/DataValue_ElementValues' + Multimodal: '#/components/schemas/DataValue_NamedElementValues' + type: object + oneOf: + - $ref: '#/components/schemas/DataValue_ElementValues' + - $ref: '#/components/schemas/DataValue_NamedElementValues' + DataValue_ElementValues: + allOf: + - type: object + properties: + type: + example: Tuple + type: string + enum: + - Tuple + required: + - type + - $ref: '#/components/schemas/ElementValues' + DataValue_NamedElementValues: + allOf: + - type: object + properties: + type: + example: Multimodal + type: string + enum: + - Multimodal + required: + - type + - $ref: '#/components/schemas/NamedElementValues' DeactivatePluginResponse: title: DeactivatePluginResponse type: object DeleteWorkerResponse: title: DeleteWorkerResponse type: object + ElementValue: + discriminator: + propertyName: type + mapping: + ComponentModel: '#/components/schemas/ElementValue_ComponentModelElementValue' + UnstructuredText: '#/components/schemas/ElementValue_UnstructuredTextElementValue' + UnstructuredBinary: '#/components/schemas/ElementValue_UnstructuredBinaryElementValue' + type: object + oneOf: + - $ref: '#/components/schemas/ElementValue_ComponentModelElementValue' + - $ref: '#/components/schemas/ElementValue_UnstructuredTextElementValue' + - $ref: '#/components/schemas/ElementValue_UnstructuredBinaryElementValue' + ElementValue_ComponentModelElementValue: + allOf: + - type: object + properties: + type: + example: ComponentModel + type: string + enum: + - ComponentModel + required: + - type + - $ref: '#/components/schemas/ComponentModelElementValue' + ElementValue_UnstructuredBinaryElementValue: + allOf: + - type: object + properties: + type: + example: UnstructuredBinary + type: string + enum: + - UnstructuredBinary + required: + - type + - $ref: '#/components/schemas/UnstructuredBinaryElementValue' + ElementValue_UnstructuredTextElementValue: + allOf: + - type: object + properties: + type: + example: UnstructuredText + type: string + enum: + - UnstructuredText + required: + - type + - $ref: '#/components/schemas/UnstructuredTextElementValue' + ElementValues: + title: ElementValues + type: object + properties: + elements: + type: array + items: + $ref: '#/components/schemas/ElementValue' + required: + - elements Empty: title: Empty type: object @@ -8805,60 +11394,39 @@ components: title: ErrorBody type: object properties: + code: + type: string error: type: string required: - - error + - code + - error ErrorBodyWithOptionalWorkerError: title: ErrorBodyWithOptionalWorkerError type: object properties: + code: + type: string error: type: string workerError: $ref: '#/components/schemas/WorkerErrorDetails' required: - - error + - code + - error ErrorsBody: title: ErrorsBody type: object properties: - errors: - type: array - items: - type: string - required: - - errors - ExportedFunctionParameters: - title: ExportedFunctionParameters - type: object - properties: - idempotencyKey: - type: string - fullFunctionName: - type: string - functionInput: - type: array - items: - $ref: '#/components/schemas/ValueAndType' - traceId: + code: type: string - traceStates: + errors: type: array items: type: string - invocationContext: - type: array - items: - type: array - items: - $ref: '#/components/schemas/PublicSpanData' required: - - idempotencyKey - - fullFunctionName - - traceId - - traceStates - - invocationContext + - code + - errors ExportedResourceMetadata: title: ExportedResourceMetadata type: object @@ -8867,10 +11435,10 @@ components: type: integer format: uint64 description: - $ref: '#/components/schemas/WorkerResourceDescription' + $ref: '#/components/schemas/AgentResourceDescription' required: - - key - - description + - key + - description FailedUpdate: title: FailedUpdate type: object @@ -8878,60 +11446,41 @@ components: timestamp: type: string format: date-time - targetVersion: + targetRevision: type: integer format: uint64 details: type: string required: - - timestamp - - targetVersion - FilterComparator: - type: string - enum: - - Equal - - NotEqual - - GreaterEqual - - Greater - - LessEqual - - Less - FlatComponentFileSystemNode: - title: FlatComponentFileSystemNode + - timestamp + - targetRevision + FallibleResultParameters: + title: FallibleResultParameters type: object properties: - name: + error: 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: + FilterComparator: type: string enum: - - directory - - file + - Equal + - NotEqual + - GreaterEqual + - Greater + - LessEqual + - Less ForkWorkerRequest: title: ForkWorkerRequest type: object properties: - targetWorkerId: - $ref: '#/components/schemas/WorkerId' + targetAgentId: + $ref: '#/components/schemas/AgentId' oplogIndexCutoff: type: integer format: uint64 required: - - targetWorkerId - - oplogIndexCutoff + - targetAgentId + - oplogIndexCutoff ForkWorkerResponse: title: ForkWorkerResponse type: object @@ -8942,9 +11491,9 @@ components: nodes: type: array items: - $ref: '#/components/schemas/FlatComponentFileSystemNode' + $ref: '#/components/schemas/AgentFileSystemNode' required: - - nodes + - nodes GetOplogResponse: title: GetOplogResponse type: object @@ -8962,43 +11511,46 @@ components: type: integer format: uint64 required: - - entries - - firstIndexInChunk - - lastIndex + - entries + - firstIndexInChunk + - lastIndex InterruptResponse: title: InterruptResponse type: object - InvokeParameters: - title: InvokeParameters + JsonComponentModelValue: + title: JsonComponentModelValue type: object properties: - params: - type: array - items: - $ref: '#/components/schemas/ValueAndOptionalType' + value: {} required: - - params - InvokeResponse: - title: InvokeResponse + - value + JsonSnapshotData: + title: JsonSnapshotData type: object - InvokeResult: - title: InvokeResult + properties: + data: {} + required: + - data + LoadSnapshotParameters: + title: LoadSnapshotParameters type: object properties: - result: - $ref: '#/components/schemas/ValueAndType' + snapshot: + $ref: '#/components/schemas/PublicSnapshotData' + required: + - snapshot LogLevel: description: Worker log levels including the special stdout and stderr channels type: string enum: - - Stdout - - Stderr - - Trace - - Debug - - Info - - Warn - - Error - - Critical + - Stdout + - Stderr + - Trace + - Debug + - Info + - Warn + - Error + - Critical ManualUpdateParameters: title: ManualUpdateParameters type: object @@ -9007,7 +11559,68 @@ components: type: integer format: uint64 required: - - targetRevision + - targetRevision + MultipartPartData: + discriminator: + propertyName: type + mapping: + Json: '#/components/schemas/MultipartPartData_JsonSnapshotData' + Raw: '#/components/schemas/MultipartPartData_RawSnapshotData' + type: object + oneOf: + - $ref: '#/components/schemas/MultipartPartData_JsonSnapshotData' + - $ref: '#/components/schemas/MultipartPartData_RawSnapshotData' + MultipartPartData_JsonSnapshotData: + allOf: + - type: object + properties: + type: + example: Json + type: string + enum: + - Json + required: + - type + - $ref: '#/components/schemas/JsonSnapshotData' + MultipartPartData_RawSnapshotData: + allOf: + - type: object + properties: + type: + example: Raw + type: string + enum: + - Raw + required: + - type + - $ref: '#/components/schemas/RawSnapshotData' + MultipartSnapshotData: + title: MultipartSnapshotData + type: object + properties: + mimeType: + type: string + parts: + type: array + items: + $ref: '#/components/schemas/MultipartSnapshotPart' + required: + - mimeType + - parts + MultipartSnapshotPart: + title: MultipartSnapshotPart + type: object + properties: + name: + type: string + contentType: + type: string + data: + $ref: '#/components/schemas/MultipartPartData' + required: + - name + - contentType + - data NameOptionTypePair: title: NameOptionTypePair type: object @@ -9017,7 +11630,7 @@ components: typ: $ref: '#/components/schemas/AnalysedType' required: - - name + - name NameTypePair: title: NameTypePair type: object @@ -9027,8 +11640,35 @@ components: typ: $ref: '#/components/schemas/AnalysedType' required: - - name - - typ + - name + - typ + NamedElementValue: + title: NamedElementValue + type: object + properties: + name: + type: string + value: + $ref: '#/components/schemas/ElementValue' + schemaIndex: + type: integer + format: uint32 + required: + - name + - value + - schemaIndex + NamedElementValues: + title: NamedElementValues + type: object + properties: + elements: + type: array + items: + $ref: '#/components/schemas/NamedElementValue' + required: + - elements + NormalizedJsonValue: + type: object OplogCursor: title: OplogCursor type: object @@ -9036,12 +11676,12 @@ components: nextOplogIndex: type: integer format: uint64 - currentComponentVersion: + currentComponentRevision: type: integer format: uint64 required: - - nextOplogIndex - - currentComponentVersion + - nextOplogIndex + - currentComponentRevision OplogRegion: title: OplogRegion type: object @@ -9053,8 +11693,8 @@ components: type: integer format: uint64 required: - - start - - end + - start + - end PendingUpdate: title: PendingUpdate type: object @@ -9062,22 +11702,25 @@ components: timestamp: type: string format: date-time - targetVersion: + targetRevision: type: integer format: uint64 required: - - timestamp - - targetVersion + - timestamp + - targetRevision PersistenceLevel: type: string enum: - - PersistNothing - - PersistRemoteSideEffects - - Smart + - PersistNothing + - PersistRemoteSideEffects + - Smart PluginInstallationDescription: title: PluginInstallationDescription type: object properties: + environmentPluginGrantId: + type: string + format: uuid pluginPriority: title: |- Priority of a given plugin. Plugins with a lower priority will be applied before plugins with a higher priority. @@ -9093,10 +11736,193 @@ components: additionalProperties: type: string required: - - pluginPriority - - pluginName - - pluginVersion - - parameters + - environmentPluginGrantId + - pluginPriority + - pluginName + - pluginVersion + - parameters + ProcessOplogEntriesParameters: + title: ProcessOplogEntriesParameters + type: object + properties: + idempotencyKey: + type: string + required: + - idempotencyKey + ProcessOplogEntriesResultParameters: + title: ProcessOplogEntriesResultParameters + type: object + properties: + error: + type: string + PublicAgentInvocation: + discriminator: + propertyName: type + mapping: + AgentInitialization: '#/components/schemas/PublicAgentInvocation_AgentInitializationParameters' + AgentMethodInvocation: '#/components/schemas/PublicAgentInvocation_AgentMethodInvocationParameters' + SaveSnapshot: '#/components/schemas/PublicAgentInvocation_Empty' + LoadSnapshot: '#/components/schemas/PublicAgentInvocation_LoadSnapshotParameters' + ProcessOplogEntries: '#/components/schemas/PublicAgentInvocation_ProcessOplogEntriesParameters' + ManualUpdate: '#/components/schemas/PublicAgentInvocation_ManualUpdateParameters' + type: object + oneOf: + - $ref: '#/components/schemas/PublicAgentInvocation_AgentInitializationParameters' + - $ref: '#/components/schemas/PublicAgentInvocation_AgentMethodInvocationParameters' + - $ref: '#/components/schemas/PublicAgentInvocation_Empty' + - $ref: '#/components/schemas/PublicAgentInvocation_LoadSnapshotParameters' + - $ref: '#/components/schemas/PublicAgentInvocation_ProcessOplogEntriesParameters' + - $ref: '#/components/schemas/PublicAgentInvocation_ManualUpdateParameters' + PublicAgentInvocationResult: + discriminator: + propertyName: type + mapping: + AgentInitialization: '#/components/schemas/PublicAgentInvocationResult_AgentInvocationOutputParameters' + AgentMethod: '#/components/schemas/PublicAgentInvocationResult_AgentInvocationOutputParameters' + ManualUpdate: '#/components/schemas/PublicAgentInvocationResult_Empty' + LoadSnapshot: '#/components/schemas/PublicAgentInvocationResult_FallibleResultParameters' + SaveSnapshot: '#/components/schemas/PublicAgentInvocationResult_SaveSnapshotResultParameters' + ProcessOplogEntries: '#/components/schemas/PublicAgentInvocationResult_ProcessOplogEntriesResultParameters' + type: object + oneOf: + - $ref: '#/components/schemas/PublicAgentInvocationResult_AgentInvocationOutputParameters' + - $ref: '#/components/schemas/PublicAgentInvocationResult_AgentInvocationOutputParameters' + - $ref: '#/components/schemas/PublicAgentInvocationResult_Empty' + - $ref: '#/components/schemas/PublicAgentInvocationResult_FallibleResultParameters' + - $ref: '#/components/schemas/PublicAgentInvocationResult_SaveSnapshotResultParameters' + - $ref: '#/components/schemas/PublicAgentInvocationResult_ProcessOplogEntriesResultParameters' + PublicAgentInvocationResult_AgentInvocationOutputParameters: + allOf: + - type: object + properties: + type: + example: AgentMethod + type: string + enum: + - AgentMethod + required: + - type + - $ref: '#/components/schemas/AgentInvocationOutputParameters' + PublicAgentInvocationResult_Empty: + allOf: + - type: object + properties: + type: + example: ManualUpdate + type: string + enum: + - ManualUpdate + required: + - type + - $ref: '#/components/schemas/Empty' + PublicAgentInvocationResult_FallibleResultParameters: + allOf: + - type: object + properties: + type: + example: LoadSnapshot + type: string + enum: + - LoadSnapshot + required: + - type + - $ref: '#/components/schemas/FallibleResultParameters' + PublicAgentInvocationResult_ProcessOplogEntriesResultParameters: + allOf: + - type: object + properties: + type: + example: ProcessOplogEntries + type: string + enum: + - ProcessOplogEntries + required: + - type + - $ref: '#/components/schemas/ProcessOplogEntriesResultParameters' + PublicAgentInvocationResult_SaveSnapshotResultParameters: + allOf: + - type: object + properties: + type: + example: SaveSnapshot + type: string + enum: + - SaveSnapshot + required: + - type + - $ref: '#/components/schemas/SaveSnapshotResultParameters' + PublicAgentInvocation_AgentInitializationParameters: + allOf: + - type: object + properties: + type: + example: AgentInitialization + type: string + enum: + - AgentInitialization + required: + - type + - $ref: '#/components/schemas/AgentInitializationParameters' + PublicAgentInvocation_AgentMethodInvocationParameters: + allOf: + - type: object + properties: + type: + example: AgentMethodInvocation + type: string + enum: + - AgentMethodInvocation + required: + - type + - $ref: '#/components/schemas/AgentMethodInvocationParameters' + PublicAgentInvocation_Empty: + allOf: + - type: object + properties: + type: + example: SaveSnapshot + type: string + enum: + - SaveSnapshot + required: + - type + - $ref: '#/components/schemas/Empty' + PublicAgentInvocation_LoadSnapshotParameters: + allOf: + - type: object + properties: + type: + example: LoadSnapshot + type: string + enum: + - LoadSnapshot + required: + - type + - $ref: '#/components/schemas/LoadSnapshotParameters' + PublicAgentInvocation_ManualUpdateParameters: + allOf: + - type: object + properties: + type: + example: ManualUpdate + type: string + enum: + - ManualUpdate + required: + - type + - $ref: '#/components/schemas/ManualUpdateParameters' + PublicAgentInvocation_ProcessOplogEntriesParameters: + allOf: + - type: object + properties: + type: + example: ProcessOplogEntries + type: string + enum: + - ProcessOplogEntries + required: + - type + - $ref: '#/components/schemas/ProcessOplogEntriesParameters' PublicAttribute: title: PublicAttribute type: object @@ -9106,8 +11932,8 @@ components: value: $ref: '#/components/schemas/PublicAttributeValue' required: - - key - - value + - key + - value PublicAttributeValue: discriminator: propertyName: type @@ -9115,19 +11941,19 @@ components: String: '#/components/schemas/PublicAttributeValue_StringAttributeValue' type: object oneOf: - - $ref: '#/components/schemas/PublicAttributeValue_StringAttributeValue' + - $ref: '#/components/schemas/PublicAttributeValue_StringAttributeValue' PublicAttributeValue_StringAttributeValue: allOf: - - type: object - properties: - type: - example: String - type: string - enum: - - String - required: - - type - - $ref: '#/components/schemas/StringAttributeValue' + - type: object + properties: + type: + example: String + type: string + enum: + - String + required: + - type + - $ref: '#/components/schemas/StringAttributeValue' PublicDurableFunctionType: discriminator: propertyName: type @@ -9140,48 +11966,48 @@ components: WriteRemoteTransaction: '#/components/schemas/PublicDurableFunctionType_WriteRemoteTransactionParameters' 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' - - $ref: '#/components/schemas/PublicDurableFunctionType_WriteRemoteTransactionParameters' + - $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' + - $ref: '#/components/schemas/PublicDurableFunctionType_WriteRemoteTransactionParameters' PublicDurableFunctionType_Empty: allOf: - - type: object - properties: - type: - example: WriteRemote - type: string - enum: - - WriteRemote - required: - - type - - $ref: '#/components/schemas/Empty' + - 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' + - type: object + properties: + type: + example: WriteRemoteBatched + type: string + enum: + - WriteRemoteBatched + required: + - type + - $ref: '#/components/schemas/WriteRemoteBatchedParameters' PublicDurableFunctionType_WriteRemoteTransactionParameters: allOf: - - type: object - properties: - type: - example: WriteRemoteTransaction - type: string - enum: - - WriteRemoteTransaction - required: - - type - - $ref: '#/components/schemas/WriteRemoteTransactionParameters' + - type: object + properties: + type: + example: WriteRemoteTransaction + type: string + enum: + - WriteRemoteTransaction + required: + - type + - $ref: '#/components/schemas/WriteRemoteTransactionParameters' PublicExternalSpanData: title: PublicExternalSpanData type: object @@ -9189,7 +12015,7 @@ components: spanId: type: string required: - - spanId + - spanId PublicLocalSpanData: title: PublicLocalSpanData type: object @@ -9211,34 +12037,61 @@ components: inherited: type: boolean required: - - spanId - - start - - attributes - - inherited + - spanId + - start + - attributes + - inherited + PublicNamedRetryPolicy: + title: PublicNamedRetryPolicy + description: API-facing representation of a named retry policy for public oplog entries. + type: object + properties: + name: + description: Human-readable identifier for this policy. + type: string + priority: + description: Selection priority — higher values are evaluated first. + type: integer + format: uint32 + predicate: + description: The predicate that determines when this retry policy applies. + allOf: + - $ref: '#/components/schemas/ApiPredicate' + - description: The predicate that determines when this retry policy applies. + policy: + description: The retry policy to use when the predicate matches. + allOf: + - $ref: '#/components/schemas/ApiRetryPolicy' + - description: The retry policy to use when the predicate matches. + required: + - name + - priority + - predicate + - policy PublicOplogEntry: discriminator: propertyName: type mapping: Create: '#/components/schemas/PublicOplogEntry_r#CreateParams' - ImportedFunctionInvoked: '#/components/schemas/PublicOplogEntry_r#ImportedFunctionInvokedParams' - ExportedFunctionInvoked: '#/components/schemas/PublicOplogEntry_r#ExportedFunctionInvokedParams' - ExportedFunctionCompleted: '#/components/schemas/PublicOplogEntry_r#ExportedFunctionCompletedParams' + HostCall: '#/components/schemas/PublicOplogEntry_r#HostCallParams' + AgentInvocationStarted: '#/components/schemas/PublicOplogEntry_r#AgentInvocationStartedParams' + AgentInvocationFinished: '#/components/schemas/PublicOplogEntry_r#AgentInvocationFinishedParams' Suspend: '#/components/schemas/PublicOplogEntry_r#SuspendParams' Error: '#/components/schemas/PublicOplogEntry_r#ErrorParams' NoOp: '#/components/schemas/PublicOplogEntry_r#NoOpParams' Jump: '#/components/schemas/PublicOplogEntry_r#JumpParams' Interrupted: '#/components/schemas/PublicOplogEntry_r#InterruptedParams' Exited: '#/components/schemas/PublicOplogEntry_r#ExitedParams' - ChangeRetryPolicy: '#/components/schemas/PublicOplogEntry_r#ChangeRetryPolicyParams' BeginAtomicRegion: '#/components/schemas/PublicOplogEntry_r#BeginAtomicRegionParams' EndAtomicRegion: '#/components/schemas/PublicOplogEntry_r#EndAtomicRegionParams' BeginRemoteWrite: '#/components/schemas/PublicOplogEntry_r#BeginRemoteWriteParams' EndRemoteWrite: '#/components/schemas/PublicOplogEntry_r#EndRemoteWriteParams' - PendingWorkerInvocation: '#/components/schemas/PublicOplogEntry_r#PendingWorkerInvocationParams' + PendingAgentInvocation: '#/components/schemas/PublicOplogEntry_r#PendingAgentInvocationParams' PendingUpdate: '#/components/schemas/PublicOplogEntry_r#PendingUpdateParams' SuccessfulUpdate: '#/components/schemas/PublicOplogEntry_r#SuccessfulUpdateParams' FailedUpdate: '#/components/schemas/PublicOplogEntry_r#FailedUpdateParams' GrowMemory: '#/components/schemas/PublicOplogEntry_r#GrowMemoryParams' + FilesystemStorageUsageUpdate: '#/components/schemas/PublicOplogEntry_r#FilesystemStorageUsageUpdateParams' CreateResource: '#/components/schemas/PublicOplogEntry_r#CreateResourceParams' DropResource: '#/components/schemas/PublicOplogEntry_r#DropResourceParams' Log: '#/components/schemas/PublicOplogEntry_r#LogParams' @@ -9256,45 +12109,53 @@ components: PreRollbackRemoteTransaction: '#/components/schemas/PublicOplogEntry_r#PreRollbackRemoteTransactionParams' CommittedRemoteTransaction: '#/components/schemas/PublicOplogEntry_r#CommittedRemoteTransactionParams' RolledBackRemoteTransaction: '#/components/schemas/PublicOplogEntry_r#RolledBackRemoteTransactionParams' + Snapshot: '#/components/schemas/PublicOplogEntry_r#SnapshotParams' + OplogProcessorCheckpoint: '#/components/schemas/PublicOplogEntry_r#OplogProcessorCheckpointParams' + SetRetryPolicy: '#/components/schemas/PublicOplogEntry_r#SetRetryPolicyParams' + RemoveRetryPolicy: '#/components/schemas/PublicOplogEntry_r#RemoveRetryPolicyParams' type: object oneOf: - - $ref: '#/components/schemas/PublicOplogEntry_r#CreateParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#ImportedFunctionInvokedParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#ExportedFunctionInvokedParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#ExportedFunctionCompletedParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#SuspendParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#ErrorParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#NoOpParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#JumpParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#InterruptedParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#ExitedParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#ChangeRetryPolicyParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#BeginAtomicRegionParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#EndAtomicRegionParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#BeginRemoteWriteParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#EndRemoteWriteParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#PendingWorkerInvocationParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#PendingUpdateParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#SuccessfulUpdateParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#FailedUpdateParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#GrowMemoryParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#CreateResourceParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#DropResourceParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#LogParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#RestartParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#ActivatePluginParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#DeactivatePluginParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#RevertParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#CancelPendingInvocationParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#StartSpanParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#FinishSpanParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#SetSpanAttributeParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#ChangePersistenceLevelParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#BeginRemoteTransactionParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#PreCommitRemoteTransactionParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#PreRollbackRemoteTransactionParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#CommittedRemoteTransactionParams' - - $ref: '#/components/schemas/PublicOplogEntry_r#RolledBackRemoteTransactionParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#CreateParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#HostCallParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#AgentInvocationStartedParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#AgentInvocationFinishedParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#SuspendParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#ErrorParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#NoOpParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#JumpParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#InterruptedParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#ExitedParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#BeginAtomicRegionParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#EndAtomicRegionParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#BeginRemoteWriteParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#EndRemoteWriteParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#PendingAgentInvocationParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#PendingUpdateParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#SuccessfulUpdateParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#FailedUpdateParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#GrowMemoryParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#FilesystemStorageUsageUpdateParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#CreateResourceParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#DropResourceParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#LogParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#RestartParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#ActivatePluginParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#DeactivatePluginParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#RevertParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#CancelPendingInvocationParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#StartSpanParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#FinishSpanParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#SetSpanAttributeParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#ChangePersistenceLevelParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#BeginRemoteTransactionParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#PreCommitRemoteTransactionParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#PreRollbackRemoteTransactionParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#CommittedRemoteTransactionParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#RolledBackRemoteTransactionParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#SnapshotParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#OplogProcessorCheckpointParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#SetRetryPolicyParams' + - $ref: '#/components/schemas/PublicOplogEntry_r#RemoveRetryPolicyParams' PublicOplogEntryWithIndex: title: PublicOplogEntryWithIndex type: object @@ -9305,476 +12166,739 @@ components: entry: $ref: '#/components/schemas/PublicOplogEntry' required: - - oplogIndex - - entry + - oplogIndex + - entry PublicOplogEntry_r#ActivatePluginParams: allOf: - - type: object - properties: - type: - example: ActivatePlugin - type: string - enum: - - ActivatePlugin - required: - - type - - $ref: '#/components/schemas/r#ActivatePluginParams' + - type: object + properties: + type: + example: ActivatePlugin + type: string + enum: + - ActivatePlugin + required: + - type + - $ref: '#/components/schemas/r#ActivatePluginParams' + PublicOplogEntry_r#AgentInvocationFinishedParams: + allOf: + - type: object + properties: + type: + example: AgentInvocationFinished + type: string + enum: + - AgentInvocationFinished + required: + - type + - $ref: '#/components/schemas/r#AgentInvocationFinishedParams' + PublicOplogEntry_r#AgentInvocationStartedParams: + allOf: + - type: object + properties: + type: + example: AgentInvocationStarted + type: string + enum: + - AgentInvocationStarted + required: + - type + - $ref: '#/components/schemas/r#AgentInvocationStartedParams' PublicOplogEntry_r#BeginAtomicRegionParams: allOf: - - type: object - properties: - type: - example: BeginAtomicRegion - type: string - enum: - - BeginAtomicRegion - required: - - type - - $ref: '#/components/schemas/r#BeginAtomicRegionParams' + - type: object + properties: + type: + example: BeginAtomicRegion + type: string + enum: + - BeginAtomicRegion + required: + - type + - $ref: '#/components/schemas/r#BeginAtomicRegionParams' PublicOplogEntry_r#BeginRemoteTransactionParams: allOf: - - type: object - properties: - type: - example: BeginRemoteTransaction - type: string - enum: - - BeginRemoteTransaction - required: - - type - - $ref: '#/components/schemas/r#BeginRemoteTransactionParams' + - type: object + properties: + type: + example: BeginRemoteTransaction + type: string + enum: + - BeginRemoteTransaction + required: + - type + - $ref: '#/components/schemas/r#BeginRemoteTransactionParams' PublicOplogEntry_r#BeginRemoteWriteParams: allOf: - - type: object - properties: - type: - example: BeginRemoteWrite - type: string - enum: - - BeginRemoteWrite - required: - - type - - $ref: '#/components/schemas/r#BeginRemoteWriteParams' + - type: object + properties: + type: + example: BeginRemoteWrite + type: string + enum: + - BeginRemoteWrite + required: + - type + - $ref: '#/components/schemas/r#BeginRemoteWriteParams' PublicOplogEntry_r#CancelPendingInvocationParams: allOf: - - type: object - properties: - type: - example: CancelPendingInvocation - type: string - enum: - - CancelPendingInvocation - required: - - type - - $ref: '#/components/schemas/r#CancelPendingInvocationParams' + - type: object + properties: + type: + example: CancelPendingInvocation + type: string + enum: + - CancelPendingInvocation + required: + - type + - $ref: '#/components/schemas/r#CancelPendingInvocationParams' PublicOplogEntry_r#ChangePersistenceLevelParams: allOf: - - type: object - properties: - type: - example: ChangePersistenceLevel - type: string - enum: - - ChangePersistenceLevel - required: - - type - - $ref: '#/components/schemas/r#ChangePersistenceLevelParams' - PublicOplogEntry_r#ChangeRetryPolicyParams: - allOf: - - type: object - properties: - type: - example: ChangeRetryPolicy - type: string - enum: - - ChangeRetryPolicy - required: - - type - - $ref: '#/components/schemas/r#ChangeRetryPolicyParams' + - type: object + properties: + type: + example: ChangePersistenceLevel + type: string + enum: + - ChangePersistenceLevel + required: + - type + - $ref: '#/components/schemas/r#ChangePersistenceLevelParams' PublicOplogEntry_r#CommittedRemoteTransactionParams: allOf: - - type: object - properties: - type: - example: CommittedRemoteTransaction - type: string - enum: - - CommittedRemoteTransaction - required: - - type - - $ref: '#/components/schemas/r#CommittedRemoteTransactionParams' + - type: object + properties: + type: + example: CommittedRemoteTransaction + type: string + enum: + - CommittedRemoteTransaction + required: + - type + - $ref: '#/components/schemas/r#CommittedRemoteTransactionParams' PublicOplogEntry_r#CreateParams: allOf: - - type: object - properties: - type: - example: Create - type: string - enum: - - Create - required: - - type - - $ref: '#/components/schemas/r#CreateParams' + - type: object + properties: + type: + example: Create + type: string + enum: + - Create + required: + - type + - $ref: '#/components/schemas/r#CreateParams' PublicOplogEntry_r#CreateResourceParams: allOf: - - type: object - properties: - type: - example: CreateResource - type: string - enum: - - CreateResource - required: - - type - - $ref: '#/components/schemas/r#CreateResourceParams' + - type: object + properties: + type: + example: CreateResource + type: string + enum: + - CreateResource + required: + - type + - $ref: '#/components/schemas/r#CreateResourceParams' PublicOplogEntry_r#DeactivatePluginParams: allOf: - - type: object - properties: - type: - example: DeactivatePlugin - type: string - enum: - - DeactivatePlugin - required: - - type - - $ref: '#/components/schemas/r#DeactivatePluginParams' + - type: object + properties: + type: + example: DeactivatePlugin + type: string + enum: + - DeactivatePlugin + required: + - type + - $ref: '#/components/schemas/r#DeactivatePluginParams' PublicOplogEntry_r#DropResourceParams: allOf: - - type: object - properties: - type: - example: DropResource - type: string - enum: - - DropResource - required: - - type - - $ref: '#/components/schemas/r#DropResourceParams' + - type: object + properties: + type: + example: DropResource + type: string + enum: + - DropResource + required: + - type + - $ref: '#/components/schemas/r#DropResourceParams' PublicOplogEntry_r#EndAtomicRegionParams: allOf: - - type: object - properties: - type: - example: EndAtomicRegion - type: string - enum: - - EndAtomicRegion - required: - - type - - $ref: '#/components/schemas/r#EndAtomicRegionParams' + - type: object + properties: + type: + example: EndAtomicRegion + type: string + enum: + - EndAtomicRegion + required: + - type + - $ref: '#/components/schemas/r#EndAtomicRegionParams' PublicOplogEntry_r#EndRemoteWriteParams: allOf: - - type: object - properties: - type: - example: EndRemoteWrite - type: string - enum: - - EndRemoteWrite - required: - - type - - $ref: '#/components/schemas/r#EndRemoteWriteParams' + - type: object + properties: + type: + example: EndRemoteWrite + type: string + enum: + - EndRemoteWrite + required: + - type + - $ref: '#/components/schemas/r#EndRemoteWriteParams' PublicOplogEntry_r#ErrorParams: allOf: - - type: object - properties: - type: - example: Error - type: string - enum: - - Error - required: - - type - - $ref: '#/components/schemas/r#ErrorParams' + - type: object + properties: + type: + example: Error + type: string + enum: + - Error + required: + - type + - $ref: '#/components/schemas/r#ErrorParams' PublicOplogEntry_r#ExitedParams: allOf: - - type: object - properties: - type: - example: Exited - type: string - enum: - - Exited - required: - - type - - $ref: '#/components/schemas/r#ExitedParams' - PublicOplogEntry_r#ExportedFunctionCompletedParams: - allOf: - - type: object - properties: - type: - example: ExportedFunctionCompleted - type: string - enum: - - ExportedFunctionCompleted - required: - - type - - $ref: '#/components/schemas/r#ExportedFunctionCompletedParams' - PublicOplogEntry_r#ExportedFunctionInvokedParams: - allOf: - - type: object - properties: - type: - example: ExportedFunctionInvoked - type: string - enum: - - ExportedFunctionInvoked - required: - - type - - $ref: '#/components/schemas/r#ExportedFunctionInvokedParams' + - type: object + properties: + type: + example: Exited + type: string + enum: + - Exited + required: + - type + - $ref: '#/components/schemas/r#ExitedParams' PublicOplogEntry_r#FailedUpdateParams: allOf: - - type: object - properties: - type: - example: FailedUpdate - type: string - enum: - - FailedUpdate - required: - - type - - $ref: '#/components/schemas/r#FailedUpdateParams' + - type: object + properties: + type: + example: FailedUpdate + type: string + enum: + - FailedUpdate + required: + - type + - $ref: '#/components/schemas/r#FailedUpdateParams' + PublicOplogEntry_r#FilesystemStorageUsageUpdateParams: + allOf: + - type: object + properties: + type: + example: FilesystemStorageUsageUpdate + type: string + enum: + - FilesystemStorageUsageUpdate + required: + - type + - $ref: '#/components/schemas/r#FilesystemStorageUsageUpdateParams' PublicOplogEntry_r#FinishSpanParams: allOf: - - type: object - properties: - type: - example: FinishSpan - type: string - enum: - - FinishSpan - required: - - type - - $ref: '#/components/schemas/r#FinishSpanParams' + - type: object + properties: + type: + example: FinishSpan + type: string + enum: + - FinishSpan + required: + - type + - $ref: '#/components/schemas/r#FinishSpanParams' PublicOplogEntry_r#GrowMemoryParams: allOf: - - type: object - properties: - type: - example: GrowMemory - type: string - enum: - - GrowMemory - required: - - type - - $ref: '#/components/schemas/r#GrowMemoryParams' - PublicOplogEntry_r#ImportedFunctionInvokedParams: - allOf: - - type: object - properties: - type: - example: ImportedFunctionInvoked - type: string - enum: - - ImportedFunctionInvoked - required: - - type - - $ref: '#/components/schemas/r#ImportedFunctionInvokedParams' + - type: object + properties: + type: + example: GrowMemory + type: string + enum: + - GrowMemory + required: + - type + - $ref: '#/components/schemas/r#GrowMemoryParams' + PublicOplogEntry_r#HostCallParams: + allOf: + - type: object + properties: + type: + example: HostCall + type: string + enum: + - HostCall + required: + - type + - $ref: '#/components/schemas/r#HostCallParams' PublicOplogEntry_r#InterruptedParams: allOf: - - type: object - properties: - type: - example: Interrupted - type: string - enum: - - Interrupted - required: - - type - - $ref: '#/components/schemas/r#InterruptedParams' + - type: object + properties: + type: + example: Interrupted + type: string + enum: + - Interrupted + required: + - type + - $ref: '#/components/schemas/r#InterruptedParams' PublicOplogEntry_r#JumpParams: allOf: - - type: object - properties: - type: - example: Jump - type: string - enum: - - Jump - required: - - type - - $ref: '#/components/schemas/r#JumpParams' + - type: object + properties: + type: + example: Jump + type: string + enum: + - Jump + required: + - type + - $ref: '#/components/schemas/r#JumpParams' PublicOplogEntry_r#LogParams: allOf: - - type: object - properties: - type: - example: Log - type: string - enum: - - Log - required: - - type - - $ref: '#/components/schemas/r#LogParams' + - type: object + properties: + type: + example: Log + type: string + enum: + - Log + required: + - type + - $ref: '#/components/schemas/r#LogParams' PublicOplogEntry_r#NoOpParams: allOf: - - type: object - properties: - type: - example: NoOp - type: string - enum: - - NoOp - required: - - type - - $ref: '#/components/schemas/r#NoOpParams' + - type: object + properties: + type: + example: NoOp + type: string + enum: + - NoOp + required: + - type + - $ref: '#/components/schemas/r#NoOpParams' + PublicOplogEntry_r#OplogProcessorCheckpointParams: + allOf: + - type: object + properties: + type: + example: OplogProcessorCheckpoint + type: string + enum: + - OplogProcessorCheckpoint + required: + - type + - $ref: '#/components/schemas/r#OplogProcessorCheckpointParams' + PublicOplogEntry_r#PendingAgentInvocationParams: + allOf: + - type: object + properties: + type: + example: PendingAgentInvocation + type: string + enum: + - PendingAgentInvocation + required: + - type + - $ref: '#/components/schemas/r#PendingAgentInvocationParams' PublicOplogEntry_r#PendingUpdateParams: allOf: - - type: object - properties: - type: - example: PendingUpdate - type: string - enum: - - PendingUpdate - required: - - type - - $ref: '#/components/schemas/r#PendingUpdateParams' - PublicOplogEntry_r#PendingWorkerInvocationParams: - allOf: - - type: object - properties: - type: - example: PendingWorkerInvocation - type: string - enum: - - PendingWorkerInvocation - required: - - type - - $ref: '#/components/schemas/r#PendingWorkerInvocationParams' + - type: object + properties: + type: + example: PendingUpdate + type: string + enum: + - PendingUpdate + required: + - type + - $ref: '#/components/schemas/r#PendingUpdateParams' PublicOplogEntry_r#PreCommitRemoteTransactionParams: allOf: - - type: object - properties: - type: - example: PreCommitRemoteTransaction - type: string - enum: - - PreCommitRemoteTransaction - required: - - type - - $ref: '#/components/schemas/r#PreCommitRemoteTransactionParams' + - type: object + properties: + type: + example: PreCommitRemoteTransaction + type: string + enum: + - PreCommitRemoteTransaction + required: + - type + - $ref: '#/components/schemas/r#PreCommitRemoteTransactionParams' PublicOplogEntry_r#PreRollbackRemoteTransactionParams: allOf: - - type: object - properties: - type: - example: PreRollbackRemoteTransaction - type: string - enum: - - PreRollbackRemoteTransaction - required: - - type - - $ref: '#/components/schemas/r#PreRollbackRemoteTransactionParams' + - type: object + properties: + type: + example: PreRollbackRemoteTransaction + type: string + enum: + - PreRollbackRemoteTransaction + required: + - type + - $ref: '#/components/schemas/r#PreRollbackRemoteTransactionParams' + PublicOplogEntry_r#RemoveRetryPolicyParams: + allOf: + - type: object + properties: + type: + example: RemoveRetryPolicy + type: string + enum: + - RemoveRetryPolicy + required: + - type + - $ref: '#/components/schemas/r#RemoveRetryPolicyParams' PublicOplogEntry_r#RestartParams: allOf: - - type: object - properties: - type: - example: Restart - type: string - enum: - - Restart - required: - - type - - $ref: '#/components/schemas/r#RestartParams' + - type: object + properties: + type: + example: Restart + type: string + enum: + - Restart + required: + - type + - $ref: '#/components/schemas/r#RestartParams' PublicOplogEntry_r#RevertParams: allOf: - - type: object - properties: - type: - example: Revert - type: string - enum: - - Revert - required: - - type - - $ref: '#/components/schemas/r#RevertParams' + - type: object + properties: + type: + example: Revert + type: string + enum: + - Revert + required: + - type + - $ref: '#/components/schemas/r#RevertParams' PublicOplogEntry_r#RolledBackRemoteTransactionParams: allOf: - - type: object - properties: - type: - example: RolledBackRemoteTransaction - type: string - enum: - - RolledBackRemoteTransaction - required: - - type - - $ref: '#/components/schemas/r#RolledBackRemoteTransactionParams' + - type: object + properties: + type: + example: RolledBackRemoteTransaction + type: string + enum: + - RolledBackRemoteTransaction + required: + - type + - $ref: '#/components/schemas/r#RolledBackRemoteTransactionParams' + PublicOplogEntry_r#SetRetryPolicyParams: + allOf: + - type: object + properties: + type: + example: SetRetryPolicy + type: string + enum: + - SetRetryPolicy + required: + - type + - $ref: '#/components/schemas/r#SetRetryPolicyParams' PublicOplogEntry_r#SetSpanAttributeParams: allOf: - - type: object - properties: - type: - example: SetSpanAttribute - type: string - enum: - - SetSpanAttribute - required: - - type - - $ref: '#/components/schemas/r#SetSpanAttributeParams' + - type: object + properties: + type: + example: SetSpanAttribute + type: string + enum: + - SetSpanAttribute + required: + - type + - $ref: '#/components/schemas/r#SetSpanAttributeParams' + PublicOplogEntry_r#SnapshotParams: + allOf: + - type: object + properties: + type: + example: Snapshot + type: string + enum: + - Snapshot + required: + - type + - $ref: '#/components/schemas/r#SnapshotParams' PublicOplogEntry_r#StartSpanParams: allOf: - - type: object - properties: - type: - example: StartSpan - type: string - enum: - - StartSpan - required: - - type - - $ref: '#/components/schemas/r#StartSpanParams' - PublicOplogEntry_r#SuccessfulUpdateParams: + - type: object + properties: + type: + example: StartSpan + type: string + enum: + - StartSpan + required: + - type + - $ref: '#/components/schemas/r#StartSpanParams' + PublicOplogEntry_r#SuccessfulUpdateParams: + allOf: + - type: object + properties: + type: + example: SuccessfulUpdate + type: string + enum: + - SuccessfulUpdate + required: + - type + - $ref: '#/components/schemas/r#SuccessfulUpdateParams' + PublicOplogEntry_r#SuspendParams: + allOf: + - type: object + properties: + type: + example: Suspend + type: string + enum: + - Suspend + required: + - type + - $ref: '#/components/schemas/r#SuspendParams' + PublicRetryPolicyState: + description: |- + API-facing representation of a [`RetryPolicyState`](crate::model::retry_policy::RetryPolicyState), + exposed through the public REST/OpenAPI interface. + discriminator: + propertyName: type + mapping: + Counter: '#/components/schemas/PublicRetryPolicyState_PublicRetryPolicyStateCounter' + Terminal: '#/components/schemas/PublicRetryPolicyState_Empty' + Wrapper: '#/components/schemas/PublicRetryPolicyState_PublicRetryPolicyStateWrapper' + CountBox: '#/components/schemas/PublicRetryPolicyState_PublicRetryPolicyStateCountBox' + AndThen: '#/components/schemas/PublicRetryPolicyState_PublicRetryPolicyStateAndThen' + Pair: '#/components/schemas/PublicRetryPolicyState_PublicRetryPolicyStatePair' + type: object + oneOf: + - $ref: '#/components/schemas/PublicRetryPolicyState_PublicRetryPolicyStateCounter' + - $ref: '#/components/schemas/PublicRetryPolicyState_Empty' + - $ref: '#/components/schemas/PublicRetryPolicyState_PublicRetryPolicyStateWrapper' + - $ref: '#/components/schemas/PublicRetryPolicyState_PublicRetryPolicyStateCountBox' + - $ref: '#/components/schemas/PublicRetryPolicyState_PublicRetryPolicyStateAndThen' + - $ref: '#/components/schemas/PublicRetryPolicyState_PublicRetryPolicyStatePair' + PublicRetryPolicyStateAndThen: + title: PublicRetryPolicyStateAndThen + description: API-facing and-then state tracking left/right sub-states and which side is active. + type: object + properties: + left: + description: State of the first (left) policy. + allOf: + - $ref: '#/components/schemas/PublicRetryPolicyState' + - description: State of the first (left) policy. + right: + description: State of the second (right) policy. + allOf: + - $ref: '#/components/schemas/PublicRetryPolicyState' + - description: State of the second (right) policy. + on_right: + description: Whether execution has moved to the right policy. + type: boolean + required: + - left + - right + - on_right + PublicRetryPolicyStateCountBox: + title: PublicRetryPolicyStateCountBox + description: API-facing count-box state that tracks both an attempt count and an inner state. + type: object + properties: + attempts: + description: Number of attempts consumed so far. + type: integer + format: uint32 + inner: + description: The inner retry policy state. + allOf: + - $ref: '#/components/schemas/PublicRetryPolicyState' + - description: The inner retry policy state. + required: + - attempts + - inner + PublicRetryPolicyStateCounter: + title: PublicRetryPolicyStateCounter + description: API-facing counter state for a retry policy. + type: object + properties: + count: + description: Number of retry attempts recorded so far. + type: integer + format: uint32 + required: + - count + PublicRetryPolicyStatePair: + title: PublicRetryPolicyStatePair + description: API-facing pair state tracking two independent sub-states (for union/intersect). + type: object + properties: + first: + description: State of the first sub-policy. + allOf: + - $ref: '#/components/schemas/PublicRetryPolicyState' + - description: State of the first sub-policy. + second: + description: State of the second sub-policy. + allOf: + - $ref: '#/components/schemas/PublicRetryPolicyState' + - description: State of the second sub-policy. + required: + - first + - second + PublicRetryPolicyStateWrapper: + title: PublicRetryPolicyStateWrapper + description: API-facing wrapper state that delegates to an inner retry policy state. + type: object + properties: + inner: + description: The wrapped inner retry policy state. + allOf: + - $ref: '#/components/schemas/PublicRetryPolicyState' + - description: The wrapped inner retry policy state. + required: + - inner + PublicRetryPolicyState_Empty: + description: |- + API-facing representation of a [`RetryPolicyState`](crate::model::retry_policy::RetryPolicyState), + exposed through the public REST/OpenAPI interface. + allOf: + - type: object + properties: + type: + example: Terminal + type: string + enum: + - Terminal + required: + - type + - $ref: '#/components/schemas/Empty' + PublicRetryPolicyState_PublicRetryPolicyStateAndThen: + description: |- + API-facing representation of a [`RetryPolicyState`](crate::model::retry_policy::RetryPolicyState), + exposed through the public REST/OpenAPI interface. + allOf: + - type: object + properties: + type: + example: AndThen + type: string + enum: + - AndThen + required: + - type + - $ref: '#/components/schemas/PublicRetryPolicyStateAndThen' + PublicRetryPolicyState_PublicRetryPolicyStateCountBox: + description: |- + API-facing representation of a [`RetryPolicyState`](crate::model::retry_policy::RetryPolicyState), + exposed through the public REST/OpenAPI interface. + allOf: + - type: object + properties: + type: + example: CountBox + type: string + enum: + - CountBox + required: + - type + - $ref: '#/components/schemas/PublicRetryPolicyStateCountBox' + PublicRetryPolicyState_PublicRetryPolicyStateCounter: + description: |- + API-facing representation of a [`RetryPolicyState`](crate::model::retry_policy::RetryPolicyState), + exposed through the public REST/OpenAPI interface. + allOf: + - type: object + properties: + type: + example: Counter + type: string + enum: + - Counter + required: + - type + - $ref: '#/components/schemas/PublicRetryPolicyStateCounter' + PublicRetryPolicyState_PublicRetryPolicyStatePair: + description: |- + API-facing representation of a [`RetryPolicyState`](crate::model::retry_policy::RetryPolicyState), + exposed through the public REST/OpenAPI interface. + allOf: + - type: object + properties: + type: + example: Pair + type: string + enum: + - Pair + required: + - type + - $ref: '#/components/schemas/PublicRetryPolicyStatePair' + PublicRetryPolicyState_PublicRetryPolicyStateWrapper: + description: |- + API-facing representation of a [`RetryPolicyState`](crate::model::retry_policy::RetryPolicyState), + exposed through the public REST/OpenAPI interface. + allOf: + - type: object + properties: + type: + example: Wrapper + type: string + enum: + - Wrapper + required: + - type + - $ref: '#/components/schemas/PublicRetryPolicyStateWrapper' + PublicSnapshotData: + discriminator: + propertyName: type + mapping: + Raw: '#/components/schemas/PublicSnapshotData_RawSnapshotData' + Json: '#/components/schemas/PublicSnapshotData_JsonSnapshotData' + Multipart: '#/components/schemas/PublicSnapshotData_MultipartSnapshotData' + type: object + oneOf: + - $ref: '#/components/schemas/PublicSnapshotData_RawSnapshotData' + - $ref: '#/components/schemas/PublicSnapshotData_JsonSnapshotData' + - $ref: '#/components/schemas/PublicSnapshotData_MultipartSnapshotData' + PublicSnapshotData_JsonSnapshotData: + allOf: + - type: object + properties: + type: + example: Json + type: string + enum: + - Json + required: + - type + - $ref: '#/components/schemas/JsonSnapshotData' + PublicSnapshotData_MultipartSnapshotData: allOf: - - type: object - properties: - type: - example: SuccessfulUpdate - type: string - enum: - - SuccessfulUpdate - required: - - type - - $ref: '#/components/schemas/r#SuccessfulUpdateParams' - PublicOplogEntry_r#SuspendParams: + - type: object + properties: + type: + example: Multipart + type: string + enum: + - Multipart + required: + - type + - $ref: '#/components/schemas/MultipartSnapshotData' + PublicSnapshotData_RawSnapshotData: allOf: - - type: object - properties: - type: - example: Suspend - type: string - enum: - - Suspend - required: - - type - - $ref: '#/components/schemas/r#SuspendParams' - PublicRetryConfig: - title: 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 + - type: object + properties: + type: + example: Raw + type: string + enum: + - Raw + required: + - type + - $ref: '#/components/schemas/RawSnapshotData' PublicSpanData: discriminator: propertyName: type @@ -9783,32 +12907,32 @@ components: ExternalSpan: '#/components/schemas/PublicSpanData_PublicExternalSpanData' type: object oneOf: - - $ref: '#/components/schemas/PublicSpanData_PublicLocalSpanData' - - $ref: '#/components/schemas/PublicSpanData_PublicExternalSpanData' + - $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' + - 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' + - type: object + properties: + type: + example: LocalSpan + type: string + enum: + - LocalSpan + required: + - type + - $ref: '#/components/schemas/PublicLocalSpanData' PublicUpdateDescription: discriminator: propertyName: type @@ -9817,66 +12941,46 @@ components: SnapshotBased: '#/components/schemas/PublicUpdateDescription_SnapshotBasedUpdateParameters' type: object oneOf: - - $ref: '#/components/schemas/PublicUpdateDescription_Empty' - - $ref: '#/components/schemas/PublicUpdateDescription_SnapshotBasedUpdateParameters' + - $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' + - 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 + properties: + type: + example: SnapshotBased + type: string + enum: + - SnapshotBased + required: + - type + - $ref: '#/components/schemas/SnapshotBasedUpdateParameters' + RawSnapshotData: + title: RawSnapshotData 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' + properties: + data: + type: array + items: + type: integer + format: uint8 + mimeType: + type: string + required: + - data + - mimeType ResumeResponse: title: ResumeResponse type: object @@ -9888,7 +12992,7 @@ components: type: integer format: uint64 required: - - numberOfInvocations + - numberOfInvocations RevertToOplogIndex: title: RevertToOplogIndex type: object @@ -9897,7 +13001,7 @@ components: type: integer format: uint64 required: - - lastOplogIndex + - lastOplogIndex RevertWorkerResponse: title: RevertWorkerResponse type: object @@ -9909,32 +13013,40 @@ components: RevertLastInvocations: '#/components/schemas/RevertWorkerTarget_RevertLastInvocations' type: object oneOf: - - $ref: '#/components/schemas/RevertWorkerTarget_RevertToOplogIndex' - - $ref: '#/components/schemas/RevertWorkerTarget_RevertLastInvocations' + - $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' + - 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' + - type: object + properties: + type: + example: RevertToOplogIndex + type: string + enum: + - RevertToOplogIndex + required: + - type + - $ref: '#/components/schemas/RevertToOplogIndex' + SaveSnapshotResultParameters: + title: SaveSnapshotResultParameters + type: object + properties: + snapshot: + $ref: '#/components/schemas/PublicSnapshotData' + required: + - snapshot ScanCursor: title: ScanCursor type: object @@ -9946,8 +13058,8 @@ components: type: integer format: uint64 required: - - cursor - - layer + - cursor + - layer SnapshotBasedUpdateParameters: title: SnapshotBasedUpdateParameters type: object @@ -9957,8 +13069,11 @@ components: items: type: integer format: uint8 + mimeType: + type: string required: - - payload + - payload + - mimeType StringAttributeValue: title: StringAttributeValue type: object @@ -9966,15 +13081,15 @@ components: value: type: string required: - - value + - value StringFilterComparator: type: string enum: - - Equal - - NotEqual - - Like - - NotLike - - StartsWith + - Equal + - NotEqual + - Like + - NotLike + - StartsWith SuccessfulUpdate: title: SuccessfulUpdate type: object @@ -9982,12 +13097,80 @@ components: timestamp: type: string format: date-time - targetVersion: + targetRevision: type: integer format: uint64 required: - - timestamp - - targetVersion + - timestamp + - targetRevision + TextDescriptor: + title: TextDescriptor + type: object + properties: + restrictions: + type: array + items: + $ref: '#/components/schemas/TextType' + TextReference: + discriminator: + propertyName: type + mapping: + Url: '#/components/schemas/TextReference_Url' + Inline: '#/components/schemas/TextReference_TextSource' + type: object + oneOf: + - $ref: '#/components/schemas/TextReference_Url' + - $ref: '#/components/schemas/TextReference_TextSource' + TextReferenceValue: + title: TextReferenceValue + type: object + properties: + value: + $ref: '#/components/schemas/TextReference' + required: + - value + TextReference_TextSource: + allOf: + - type: object + properties: + type: + example: Inline + type: string + enum: + - Inline + required: + - type + - $ref: '#/components/schemas/TextSource' + TextReference_Url: + allOf: + - type: object + properties: + type: + example: Url + type: string + enum: + - Url + required: + - type + - $ref: '#/components/schemas/Url' + TextSource: + title: TextSource + type: object + properties: + data: + type: string + textType: + $ref: '#/components/schemas/TextType' + required: + - data + TextType: + title: TextType + type: object + properties: + languageCode: + type: string + required: + - languageCode TypeBool: title: TypeBool type: object @@ -10007,7 +13190,7 @@ components: items: type: string required: - - cases + - cases TypeF32: title: TypeF32 type: object @@ -10027,7 +13210,7 @@ components: items: type: string required: - - names + - names TypeHandle: title: TypeHandle type: object @@ -10042,8 +13225,8 @@ components: mode: $ref: '#/components/schemas/AnalysedResourceMode' required: - - resource_id - - mode + - resource_id + - mode TypeList: title: TypeList type: object @@ -10055,7 +13238,7 @@ components: inner: $ref: '#/components/schemas/AnalysedType' required: - - inner + - inner TypeOption: title: TypeOption type: object @@ -10067,7 +13250,7 @@ components: inner: $ref: '#/components/schemas/AnalysedType' required: - - inner + - inner TypeRecord: title: TypeRecord type: object @@ -10081,7 +13264,7 @@ components: items: $ref: '#/components/schemas/NameTypePair' required: - - fields + - fields TypeResult: title: TypeResult type: object @@ -10122,7 +13305,7 @@ components: items: $ref: '#/components/schemas/AnalysedType' required: - - items + - items TypeU16: title: TypeU16 type: object @@ -10139,535 +13322,287 @@ components: title: TypeVariant type: object properties: - name: - type: string - owner: - type: string - cases: - type: array - items: - $ref: '#/components/schemas/NameOptionTypePair' - required: - - cases - 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: - title: UpdateWorkerRequest - type: object - properties: - mode: - $ref: '#/components/schemas/WorkerUpdateMode' - targetRevision: - type: integer - format: uint64 - required: - - mode - - targetRevision - UpdateWorkerResponse: - title: UpdateWorkerResponse - type: object - 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 - VersionInfo: - title: VersionInfo - type: object - properties: - version: - type: string - required: - - version - WasiConfigVarsEntry: - title: WasiConfigVarsEntry - type: object - properties: - key: - type: string - value: - type: string - required: - - key - - value - WorkerAndFilter: - title: WorkerAndFilter - type: object - properties: - filters: - type: array - items: - $ref: '#/components/schemas/WorkerFilter' - required: - - filters - WorkerCreatedAtFilter: - title: WorkerCreatedAtFilter - type: object - properties: - comparator: - $ref: '#/components/schemas/FilterComparator' - value: - type: string - format: date-time - required: - - comparator - - value - WorkerCreationRequest: - title: WorkerCreationRequest - type: object - properties: - name: - type: string - env: - type: object - additionalProperties: - type: string - configVars: - default: [] - type: array - items: - $ref: '#/components/schemas/WasiConfigVarsEntry' - required: - - name - - env - WorkerCreationResponse: - title: WorkerCreationResponse - type: object - properties: - workerId: - $ref: '#/components/schemas/WorkerId' - componentRevision: - type: integer - format: uint64 - required: - - workerId - - componentRevision - WorkerEnvFilter: - title: WorkerEnvFilter - type: object - properties: - name: - type: string - comparator: - $ref: '#/components/schemas/StringFilterComparator' - value: - type: string - required: - - name - - comparator - - value - WorkerErrorDetails: - title: WorkerErrorDetails - description: Detail in case the error was caused by the worker failing - type: object - properties: - cause: - description: Error that caused to worker to fail - type: string - stderr: - description: Error log of the worker - type: string - required: - - cause - - stderr - 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' - WasiConfigVars: '#/components/schemas/WorkerFilter_WorkerWasiConfigVarsFilter' - 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' - - $ref: '#/components/schemas/WorkerFilter_WorkerWasiConfigVarsFilter' - 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' - WorkerFilter_WorkerWasiConfigVarsFilter: - allOf: - - type: object - properties: - type: - example: WasiConfigVars - type: string - enum: - - WasiConfigVars - required: - - type - - $ref: '#/components/schemas/WorkerWasiConfigVarsFilter' - WorkerId: - title: WorkerId - type: object - properties: - componentId: - type: string - format: uuid - workerName: - type: string - required: - - componentId - - workerName - WorkerMetadataDto: - title: WorkerMetadataDto - type: object - properties: - workerId: - $ref: '#/components/schemas/WorkerId' - environmentId: - type: string - format: uuid - createdBy: - type: string - format: uuid - env: - type: object - additionalProperties: - type: string - wasiConfigVars: - type: array - items: - $ref: '#/components/schemas/WasiConfigVarsEntry' - status: - $ref: '#/components/schemas/WorkerStatus' - componentVersion: - type: integer - format: uint64 - retryCount: - type: integer - format: uint32 - pendingInvocationCount: - type: integer - format: uint64 - updates: - type: array - items: - $ref: '#/components/schemas/UpdateRecord' - createdAt: + name: type: string - format: date-time - lastError: + owner: type: string - componentSize: - type: integer - format: uint64 - totalLinearMemorySize: - type: integer - format: uint64 - exportedResourceInstances: - type: array - items: - $ref: '#/components/schemas/ExportedResourceMetadata' - activePlugins: - type: array - items: - title: |- - Priority of a given plugin. Plugins with a lower priority will be applied before plugins with a higher priority. - There can only be a single plugin with a given priority installed to a component. - type: integer - format: int32 - skippedRegions: - description: |- - Oplog regions that are skipped during the worker's state recovery, but describe - the history of the worker. For example if an atomic region gets restarted, its partially - recorded oplog entries will be skipped on retry. + cases: type: array items: - $ref: '#/components/schemas/OplogRegion' - deletedRegions: - description: Oplog regions permanently deleted from the workers using the revert functionality. + $ref: '#/components/schemas/NameOptionTypePair' + required: + - cases + TypedAgentConfigEntry: + title: TypedAgentConfigEntry + type: object + properties: + path: type: array items: - $ref: '#/components/schemas/OplogRegion' + type: string + value: + $ref: '#/components/schemas/ValueAndType' required: - - workerId - - environmentId - - createdBy - - env - - wasiConfigVars - - status - - componentVersion - - retryCount - - pendingInvocationCount - - updates - - createdAt - - componentSize - - totalLinearMemorySize - - exportedResourceInstances - - activePlugins - - skippedRegions - - deletedRegions - WorkerNameFilter: - title: WorkerNameFilter + - path + - value + UnstructuredBinaryElementValue: + title: UnstructuredBinaryElementValue type: object properties: - comparator: - $ref: '#/components/schemas/StringFilterComparator' value: - type: string + $ref: '#/components/schemas/BinaryReference' + descriptor: + $ref: '#/components/schemas/BinaryDescriptor' required: - - comparator - - value - WorkerNotFilter: - title: WorkerNotFilter + - value + - descriptor + UnstructuredTextElementValue: + title: UnstructuredTextElementValue type: object properties: - filter: - $ref: '#/components/schemas/WorkerFilter' + value: + $ref: '#/components/schemas/TextReference' + descriptor: + $ref: '#/components/schemas/TextDescriptor' required: - - filter - WorkerOrFilter: - title: WorkerOrFilter + - value + - descriptor + UntypedJsonDataValue: + discriminator: + propertyName: type + mapping: + Tuple: '#/components/schemas/UntypedJsonDataValue_UntypedJsonElementValues' + Multimodal: '#/components/schemas/UntypedJsonDataValue_UntypedJsonNamedElementValues' + type: object + oneOf: + - $ref: '#/components/schemas/UntypedJsonDataValue_UntypedJsonElementValues' + - $ref: '#/components/schemas/UntypedJsonDataValue_UntypedJsonNamedElementValues' + UntypedJsonDataValue_UntypedJsonElementValues: + allOf: + - type: object + properties: + type: + example: Tuple + type: string + enum: + - Tuple + required: + - type + - $ref: '#/components/schemas/UntypedJsonElementValues' + UntypedJsonDataValue_UntypedJsonNamedElementValues: + allOf: + - type: object + properties: + type: + example: Multimodal + type: string + enum: + - Multimodal + required: + - type + - $ref: '#/components/schemas/UntypedJsonNamedElementValues' + UntypedJsonElementValue: + discriminator: + propertyName: type + mapping: + ComponentModel: '#/components/schemas/UntypedJsonElementValue_JsonComponentModelValue' + UnstructuredText: '#/components/schemas/UntypedJsonElementValue_TextReferenceValue' + UnstructuredBinary: '#/components/schemas/UntypedJsonElementValue_BinaryReferenceValue' + type: object + oneOf: + - $ref: '#/components/schemas/UntypedJsonElementValue_JsonComponentModelValue' + - $ref: '#/components/schemas/UntypedJsonElementValue_TextReferenceValue' + - $ref: '#/components/schemas/UntypedJsonElementValue_BinaryReferenceValue' + UntypedJsonElementValue_BinaryReferenceValue: + allOf: + - type: object + properties: + type: + example: UnstructuredBinary + type: string + enum: + - UnstructuredBinary + required: + - type + - $ref: '#/components/schemas/BinaryReferenceValue' + UntypedJsonElementValue_JsonComponentModelValue: + allOf: + - type: object + properties: + type: + example: ComponentModel + type: string + enum: + - ComponentModel + required: + - type + - $ref: '#/components/schemas/JsonComponentModelValue' + UntypedJsonElementValue_TextReferenceValue: + allOf: + - type: object + properties: + type: + example: UnstructuredText + type: string + enum: + - UnstructuredText + required: + - type + - $ref: '#/components/schemas/TextReferenceValue' + UntypedJsonElementValues: + title: UntypedJsonElementValues type: object properties: - filters: + elements: type: array items: - $ref: '#/components/schemas/WorkerFilter' + $ref: '#/components/schemas/UntypedJsonElementValue' required: - - filters - WorkerResourceDescription: - title: WorkerResourceDescription + - elements + UntypedJsonNamedElementValue: + title: UntypedJsonNamedElementValue type: object properties: - createdAt: - type: string - format: date-time - resourceOwner: - type: string - resourceName: + name: type: string + value: + $ref: '#/components/schemas/UntypedJsonElementValue' required: - - createdAt - - resourceOwner - - resourceName - 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: - title: WorkerStatusFilter + - name + - value + UntypedJsonNamedElementValues: + title: UntypedJsonNamedElementValues type: object properties: - comparator: - $ref: '#/components/schemas/FilterComparator' - value: - $ref: '#/components/schemas/WorkerStatus' + elements: + type: array + items: + $ref: '#/components/schemas/UntypedJsonNamedElementValue' required: - - comparator - - value - WorkerUpdateMode: - type: string - enum: - - automatic - - manual - WorkerVersionFilter: - title: WorkerVersionFilter + - elements + 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: + title: UpdateWorkerRequest + type: object + properties: + mode: + $ref: '#/components/schemas/AgentUpdateMode' + targetRevision: + type: integer + format: uint64 + disableWakeup: + default: false + type: boolean + required: + - mode + - targetRevision + UpdateWorkerResponse: + title: UpdateWorkerResponse + type: object + Url: + title: Url type: object properties: - comparator: - $ref: '#/components/schemas/FilterComparator' value: + type: string + required: + - value + ValueAndType: + type: object + properties: + typ: + $ref: '#/components/schemas/AnalysedType' + value: {} + required: + - typ + - value + VersionInfo: + title: VersionInfo + type: object + properties: + version: + type: string + required: + - version + WorkerCreationResponse: + title: WorkerCreationResponse + type: object + properties: + agentId: + $ref: '#/components/schemas/AgentId' + componentRevision: type: integer format: uint64 required: - - comparator - - value - WorkerWasiConfigVarsFilter: - title: WorkerWasiConfigVarsFilter + - agentId + - componentRevision + WorkerErrorDetails: + title: WorkerErrorDetails + description: Detail in case the error was caused by the worker failing type: object properties: - name: + cause: + description: Error that caused to worker to fail type: string - comparator: - $ref: '#/components/schemas/StringFilterComparator' - value: + stderr: + description: Error log of the worker type: string required: - - name - - comparator - - value + - cause + - stderr WorkersMetadataRequest: title: WorkersMetadataRequest type: object properties: filter: - $ref: '#/components/schemas/WorkerFilter' + $ref: '#/components/schemas/AgentFilter' cursor: $ref: '#/components/schemas/ScanCursor' count: @@ -10682,11 +13617,11 @@ components: workers: type: array items: - $ref: '#/components/schemas/WorkerMetadataDto' + $ref: '#/components/schemas/AgentMetadataDto' cursor: $ref: '#/components/schemas/ScanCursor' required: - - workers + - workers WriteRemoteBatchedParameters: title: WriteRemoteBatchedParameters type: object @@ -10711,8 +13646,40 @@ components: plugin: $ref: '#/components/schemas/PluginInstallationDescription' required: - - timestamp - - plugin + - timestamp + - plugin + r#AgentInvocationFinishedParams: + title: r#AgentInvocationFinishedParams + type: object + properties: + timestamp: + type: string + format: date-time + result: + $ref: '#/components/schemas/PublicAgentInvocationResult' + consumedFuel: + type: integer + format: int64 + componentRevision: + type: integer + format: uint64 + required: + - timestamp + - result + - consumedFuel + - componentRevision + r#AgentInvocationStartedParams: + title: r#AgentInvocationStartedParams + type: object + properties: + timestamp: + type: string + format: date-time + invocation: + $ref: '#/components/schemas/PublicAgentInvocation' + required: + - timestamp + - invocation r#BeginAtomicRegionParams: title: r#BeginAtomicRegionParams type: object @@ -10721,7 +13688,7 @@ components: type: string format: date-time required: - - timestamp + - timestamp r#BeginRemoteTransactionParams: title: r#BeginRemoteTransactionParams type: object @@ -10732,8 +13699,8 @@ components: transactionId: type: string required: - - timestamp - - transactionId + - timestamp + - transactionId r#BeginRemoteWriteParams: title: r#BeginRemoteWriteParams type: object @@ -10742,7 +13709,7 @@ components: type: string format: date-time required: - - timestamp + - timestamp r#CancelPendingInvocationParams: title: r#CancelPendingInvocationParams type: object @@ -10753,8 +13720,8 @@ components: idempotencyKey: type: string required: - - timestamp - - idempotencyKey + - timestamp + - idempotencyKey r#ChangePersistenceLevelParams: title: r#ChangePersistenceLevelParams type: object @@ -10765,20 +13732,8 @@ components: persistenceLevel: $ref: '#/components/schemas/PersistenceLevel' required: - - timestamp - - persistenceLevel - r#ChangeRetryPolicyParams: - title: r#ChangeRetryPolicyParams - type: object - properties: - timestamp: - type: string - format: date-time - newPolicy: - $ref: '#/components/schemas/PublicRetryConfig' - required: - - timestamp - - newPolicy + - timestamp + - persistenceLevel r#CommittedRemoteTransactionParams: title: r#CommittedRemoteTransactionParams type: object @@ -10790,8 +13745,8 @@ components: type: integer format: uint64 required: - - timestamp - - beginIndex + - timestamp + - beginIndex r#CreateParams: title: r#CreateParams type: object @@ -10799,8 +13754,8 @@ components: timestamp: type: string format: date-time - workerId: - $ref: '#/components/schemas/WorkerId' + agentId: + $ref: '#/components/schemas/AgentId' componentRevision: type: integer format: uint64 @@ -10815,7 +13770,7 @@ components: type: string format: uuid parent: - $ref: '#/components/schemas/WorkerId' + $ref: '#/components/schemas/AgentId' componentSize: type: integer format: uint64 @@ -10826,24 +13781,29 @@ components: type: array items: $ref: '#/components/schemas/PluginInstallationDescription' - wasiConfigVars: + configVars: + type: object + additionalProperties: + type: string + localAgentConfig: type: array items: - $ref: '#/components/schemas/WasiConfigVarsEntry' + $ref: '#/components/schemas/TypedAgentConfigEntry' originalPhantomId: type: string format: uuid required: - - timestamp - - workerId - - componentRevision - - env - - createdBy - - environmentId - - componentSize - - initialTotalLinearMemorySize - - initialActivePlugins - - wasiConfigVars + - timestamp + - agentId + - componentRevision + - env + - createdBy + - environmentId + - componentSize + - initialTotalLinearMemorySize + - initialActivePlugins + - configVars + - localAgentConfig r#CreateResourceParams: title: r#CreateResourceParams type: object @@ -10859,10 +13819,10 @@ components: owner: type: string required: - - timestamp - - id - - name - - owner + - timestamp + - id + - name + - owner r#DeactivatePluginParams: title: r#DeactivatePluginParams type: object @@ -10873,8 +13833,8 @@ components: plugin: $ref: '#/components/schemas/PluginInstallationDescription' required: - - timestamp - - plugin + - timestamp + - plugin r#DropResourceParams: title: r#DropResourceParams type: object @@ -10890,10 +13850,10 @@ components: owner: type: string required: - - timestamp - - id - - name - - owner + - timestamp + - id + - name + - owner r#EndAtomicRegionParams: title: r#EndAtomicRegionParams type: object @@ -10905,8 +13865,8 @@ components: type: integer format: uint64 required: - - timestamp - - beginIndex + - timestamp + - beginIndex r#EndRemoteWriteParams: title: r#EndRemoteWriteParams type: object @@ -10918,8 +13878,8 @@ components: type: integer format: uint64 required: - - timestamp - - beginIndex + - timestamp + - beginIndex r#ErrorParams: title: r#ErrorParams type: object @@ -10932,10 +13892,15 @@ components: retryFrom: type: integer format: uint64 + insideAtomicRegion: + type: boolean + retryPolicyState: + $ref: '#/components/schemas/PublicRetryPolicyState' required: - - timestamp - - error - - retryFrom + - timestamp + - error + - retryFrom + - insideAtomicRegion r#ExitedParams: title: r#ExitedParams type: object @@ -10944,72 +13909,35 @@ components: type: string format: date-time required: - - timestamp - r#ExportedFunctionCompletedParams: - title: r#ExportedFunctionCompletedParams + - timestamp + r#FailedUpdateParams: + title: r#FailedUpdateParams type: object properties: timestamp: type: string format: date-time - response: - $ref: '#/components/schemas/ValueAndType' - consumedFuel: + targetRevision: type: integer - format: int64 - required: - - timestamp - - consumedFuel - r#ExportedFunctionInvokedParams: - title: r#ExportedFunctionInvokedParams - type: object - properties: - timestamp: - type: string - format: date-time - functionName: - type: string - request: - type: array - items: - $ref: '#/components/schemas/ValueAndType' - idempotencyKey: - type: string - traceId: + format: uint64 + details: 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 - r#FailedUpdateParams: - title: r#FailedUpdateParams + - timestamp + - targetRevision + r#FilesystemStorageUsageUpdateParams: + title: r#FilesystemStorageUsageUpdateParams type: object properties: timestamp: type: string format: date-time - targetRevision: + delta: type: integer - format: uint64 - details: - type: string + format: int64 required: - - timestamp - - targetRevision + - timestamp + - delta r#FinishSpanParams: title: r#FinishSpanParams type: object @@ -11020,8 +13948,8 @@ components: spanId: type: string required: - - timestamp - - spanId + - timestamp + - spanId r#GrowMemoryParams: title: r#GrowMemoryParams type: object @@ -11033,10 +13961,10 @@ components: type: integer format: uint64 required: - - timestamp - - delta - r#ImportedFunctionInvokedParams: - title: r#ImportedFunctionInvokedParams + - timestamp + - delta + r#HostCallParams: + title: r#HostCallParams type: object properties: timestamp: @@ -11051,11 +13979,11 @@ components: durableFunctionType: $ref: '#/components/schemas/PublicDurableFunctionType' required: - - timestamp - - functionName - - request - - response - - durableFunctionType + - timestamp + - functionName + - request + - response + - durableFunctionType r#InterruptedParams: title: r#InterruptedParams type: object @@ -11064,7 +13992,7 @@ components: type: string format: date-time required: - - timestamp + - timestamp r#JumpParams: title: r#JumpParams type: object @@ -11075,8 +14003,8 @@ components: jump: $ref: '#/components/schemas/OplogRegion' required: - - timestamp - - jump + - timestamp + - jump r#LogParams: title: r#LogParams type: object @@ -11091,10 +14019,10 @@ components: message: type: string required: - - timestamp - - level - - context - - message + - timestamp + - level + - context + - message r#NoOpParams: title: r#NoOpParams type: object @@ -11103,35 +14031,62 @@ components: type: string format: date-time required: - - timestamp - r#PendingUpdateParams: - title: r#PendingUpdateParams + - timestamp + r#OplogProcessorCheckpointParams: + title: r#OplogProcessorCheckpointParams type: object properties: timestamp: type: string format: date-time - targetRevision: + plugin: + $ref: '#/components/schemas/PluginInstallationDescription' + targetAgentId: + $ref: '#/components/schemas/AgentId' + confirmedUpTo: + type: integer + format: uint64 + sendingUpTo: + type: integer + format: uint64 + lastBatchStart: type: integer format: uint64 - description: - $ref: '#/components/schemas/PublicUpdateDescription' required: - - timestamp - - targetRevision - - description - r#PendingWorkerInvocationParams: - title: r#PendingWorkerInvocationParams + - timestamp + - plugin + - targetAgentId + - confirmedUpTo + - sendingUpTo + - lastBatchStart + r#PendingAgentInvocationParams: + title: r#PendingAgentInvocationParams type: object properties: timestamp: type: string format: date-time invocation: - $ref: '#/components/schemas/PublicWorkerInvocation' + $ref: '#/components/schemas/PublicAgentInvocation' + required: + - timestamp + - invocation + r#PendingUpdateParams: + title: r#PendingUpdateParams + type: object + properties: + timestamp: + type: string + format: date-time + targetRevision: + type: integer + format: uint64 + description: + $ref: '#/components/schemas/PublicUpdateDescription' required: - - timestamp - - invocation + - timestamp + - targetRevision + - description r#PreCommitRemoteTransactionParams: title: r#PreCommitRemoteTransactionParams type: object @@ -11143,8 +14098,8 @@ components: type: integer format: uint64 required: - - timestamp - - beginIndex + - timestamp + - beginIndex r#PreRollbackRemoteTransactionParams: title: r#PreRollbackRemoteTransactionParams type: object @@ -11152,12 +14107,24 @@ components: timestamp: type: string format: date-time - beginIndex: - type: integer - format: uint64 + beginIndex: + type: integer + format: uint64 + required: + - timestamp + - beginIndex + r#RemoveRetryPolicyParams: + title: r#RemoveRetryPolicyParams + type: object + properties: + timestamp: + type: string + format: date-time + name: + type: string required: - - timestamp - - beginIndex + - timestamp + - name r#RestartParams: title: r#RestartParams type: object @@ -11166,7 +14133,7 @@ components: type: string format: date-time required: - - timestamp + - timestamp r#RevertParams: title: r#RevertParams type: object @@ -11177,8 +14144,8 @@ components: droppedRegion: $ref: '#/components/schemas/OplogRegion' required: - - timestamp - - droppedRegion + - timestamp + - droppedRegion r#RolledBackRemoteTransactionParams: title: r#RolledBackRemoteTransactionParams type: object @@ -11190,8 +14157,20 @@ components: type: integer format: uint64 required: - - timestamp - - beginIndex + - timestamp + - beginIndex + r#SetRetryPolicyParams: + title: r#SetRetryPolicyParams + type: object + properties: + timestamp: + type: string + format: date-time + policy: + $ref: '#/components/schemas/PublicNamedRetryPolicy' + required: + - timestamp + - policy r#SetSpanAttributeParams: title: r#SetSpanAttributeParams type: object @@ -11206,10 +14185,22 @@ components: value: $ref: '#/components/schemas/PublicAttributeValue' required: - - timestamp - - spanId - - key - - value + - timestamp + - spanId + - key + - value + r#SnapshotParams: + title: r#SnapshotParams + type: object + properties: + timestamp: + type: string + format: date-time + data: + $ref: '#/components/schemas/PublicSnapshotData' + required: + - timestamp + - data r#StartSpanParams: title: r#StartSpanParams type: object @@ -11228,9 +14219,9 @@ components: items: $ref: '#/components/schemas/PublicAttribute' required: - - timestamp - - spanId - - attributes + - timestamp + - spanId + - attributes r#SuccessfulUpdateParams: title: r#SuccessfulUpdateParams type: object @@ -11249,10 +14240,10 @@ components: items: $ref: '#/components/schemas/PluginInstallationDescription' required: - - timestamp - - targetRevision - - newComponentSize - - newActivePlugins + - timestamp + - targetRevision + - newComponentSize + - newActivePlugins r#SuspendParams: title: r#SuspendParams type: object @@ -11261,7 +14252,7 @@ components: type: string format: date-time required: - - timestamp + - timestamp Account: title: Account type: object @@ -11284,12 +14275,12 @@ components: items: $ref: '#/components/schemas/AccountRole' required: - - id - - revision - - name - - email - - planId - - roles + - id + - revision + - name + - email + - planId + - roles AccountCountsReport: title: AccountCountsReport type: object @@ -11304,9 +14295,9 @@ components: type: integer format: uint64 required: - - totalAccounts - - totalActiveAccounts - - totalDeletedAccounts + - totalAccounts + - totalActiveAccounts + - totalDeletedAccounts AccountCreation: title: AccountCreation type: object @@ -11316,13 +14307,14 @@ components: email: type: string required: - - name - - email + - name + - email AccountRole: type: string enum: - - admin - - marketing-admin + - admin + - marketing-admin + - builtin-plugin-owner AccountSetPlan: title: AccountSetPlan type: object @@ -11334,8 +14326,8 @@ components: type: string format: uuid required: - - currentRevision - - plan + - currentRevision + - plan AccountSetRoles: title: AccountSetRoles type: object @@ -11348,8 +14340,8 @@ components: items: $ref: '#/components/schemas/AccountRole' required: - - currentRevision - - roles + - currentRevision + - roles AccountSummary: title: AccountSummary type: object @@ -11362,9 +14354,9 @@ components: email: type: string required: - - id - - name - - email + - id + - name + - email AccountSummaryReport: title: AccountSummaryReport type: object @@ -11386,12 +14378,12 @@ components: type: string format: date-time required: - - id - - name - - email - - componentsCount - - workersCount - - createdAt + - id + - name + - email + - componentsCount + - workersCount + - createdAt AccountUpdate: title: AccountUpdate type: object @@ -11404,7 +14396,28 @@ components: email: type: string required: - - currentRevision + - currentRevision + AgentConfigDeclaration: + title: AgentConfigDeclaration + type: object + properties: + source: + $ref: '#/components/schemas/AgentConfigSource' + path: + type: array + items: + type: string + valueType: + $ref: '#/components/schemas/AnalysedType' + required: + - source + - path + - valueType + AgentConfigSource: + type: string + enum: + - Local + - Secret AgentConstructor: title: AgentConstructor type: object @@ -11418,8 +14431,8 @@ components: inputSchema: $ref: '#/components/schemas/DataSchema' required: - - description - - inputSchema + - description + - inputSchema AgentDependency: title: AgentDependency type: object @@ -11435,9 +14448,29 @@ components: items: $ref: '#/components/schemas/AgentMethod' required: - - typeName - - constructor - - methods + - typeName + - constructor + - methods + AgentFileOptions: + title: AgentFileOptions + type: object + properties: + targetPath: + description: Absolute path in an agent's filesystem. + type: string + permissions: + $ref: '#/components/schemas/AgentFilePermissions' + required: + - targetPath + - permissions + AgentHttpAuthDetails: + title: AgentHttpAuthDetails + type: object + properties: + required: + type: boolean + required: + - required AgentMethod: title: AgentMethod type: object @@ -11452,16 +14485,76 @@ components: $ref: '#/components/schemas/DataSchema' outputSchema: $ref: '#/components/schemas/DataSchema' + httpEndpoint: + type: array + items: + $ref: '#/components/schemas/HttpEndpointDetails' required: - - name - - description - - inputSchema - - outputSchema + - name + - description + - inputSchema + - outputSchema + - httpEndpoint AgentMode: type: string enum: - - Durable - - Ephemeral + - Durable + - Ephemeral + AgentSecretCreation: + title: AgentSecretCreation + type: object + properties: + path: + title: |- + Agent secret path in any casing. All agent secret paths + are converted to the same casing internally to allow easier cross-language use. + type: array + items: + type: string + secretType: + $ref: '#/components/schemas/AnalysedType' + secretValue: {} + required: + - path + - secretType + AgentSecretDto: + title: AgentSecretDto + type: object + properties: + id: + type: string + format: uuid + environmentId: + type: string + format: uuid + path: + title: Canonical representation of an agent secret path (segments are each camelCase) + type: array + items: + type: string + revision: + type: integer + format: uint64 + secretType: + $ref: '#/components/schemas/AnalysedType' + secretValue: {} + required: + - id + - environmentId + - path + - revision + - secretType + AgentSecretUpdate: + title: AgentSecretUpdate + type: object + properties: + currentRevision: + type: integer + format: uint64 + secretValue: + $ref: '#/components/schemas/OptionalFieldUpdate_any' + required: + - currentRevision AgentType: title: AgentType type: object @@ -11470,6 +14563,8 @@ components: type: string description: type: string + sourceLanguage: + type: string constructor: $ref: '#/components/schemas/AgentConstructor' methods: @@ -11482,13 +14577,123 @@ components: $ref: '#/components/schemas/AgentDependency' mode: $ref: '#/components/schemas/AgentMode' + httpMount: + $ref: '#/components/schemas/HttpMountDetails' + snapshotting: + $ref: '#/components/schemas/Snapshotting' + config: + type: array + items: + $ref: '#/components/schemas/AgentConfigDeclaration' required: - - typeName - - description - - constructor - - methods - - dependencies - - mode + - typeName + - description + - sourceLanguage + - constructor + - methods + - dependencies + - mode + - snapshotting + - config + AgentTypeProvisionConfig: + title: AgentTypeProvisionConfig + description: |- + Per-agent-type provisioning configuration stored alongside AgentType declarations + in ComponentMetadata. Holds runtime setup data separate from agent type declarations. + type: object + properties: + env: + default: {} + type: object + additionalProperties: + type: string + wasiConfig: + default: {} + type: object + additionalProperties: + type: string + config: + default: [] + type: array + items: + $ref: '#/components/schemas/TypedAgentConfigEntry' + plugins: + default: [] + type: array + items: + $ref: '#/components/schemas/InstalledPlugin' + files: + default: [] + type: array + items: + $ref: '#/components/schemas/InitialAgentFile' + AgentTypeProvisionConfigCreation: + title: AgentTypeProvisionConfigCreation + type: object + properties: + env: + default: {} + type: object + additionalProperties: + type: string + wasiConfig: + default: {} + type: object + additionalProperties: + type: string + config: + default: [] + type: array + items: + $ref: '#/components/schemas/AgentConfigEntryDto' + pluginInstallations: + default: [] + type: array + items: + $ref: '#/components/schemas/PluginInstallation' + files: + description: key = source path inside uploaded archive; value specifies target path + permissions + default: {} + type: object + additionalProperties: + $ref: '#/components/schemas/AgentFileOptions' + AgentTypeProvisionConfigUpdate: + title: AgentTypeProvisionConfigUpdate + type: object + properties: + env: + type: object + additionalProperties: + type: string + wasiConfig: + type: object + additionalProperties: + type: string + config: + type: array + items: + $ref: '#/components/schemas/AgentConfigEntryDto' + pluginUpdates: + default: [] + type: array + items: + $ref: '#/components/schemas/PluginInstallationAction' + filesToAddOrUpdate: + default: {} + type: object + additionalProperties: + $ref: '#/components/schemas/AgentFileOptions' + filesToRemove: + default: [] + type: array + items: + description: Absolute path in an agent's filesystem. + type: string + filePermissionUpdates: + default: {} + type: object + additionalProperties: + $ref: '#/components/schemas/AgentFilePermissions' AnalysedExport: discriminator: propertyName: type @@ -11497,32 +14702,32 @@ components: Instance: '#/components/schemas/AnalysedExport_AnalysedInstance' type: object oneOf: - - $ref: '#/components/schemas/AnalysedExport_AnalysedFunction' - - $ref: '#/components/schemas/AnalysedExport_AnalysedInstance' + - $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' + - 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' + - type: object + properties: + type: + example: Instance + type: string + enum: + - Instance + required: + - type + - $ref: '#/components/schemas/AnalysedInstance' AnalysedFunction: title: AnalysedFunction type: object @@ -11536,8 +14741,8 @@ components: result: $ref: '#/components/schemas/AnalysedFunctionResult' required: - - name - - parameters + - name + - parameters AnalysedFunctionParameter: title: AnalysedFunctionParameter type: object @@ -11547,8 +14752,8 @@ components: typ: $ref: '#/components/schemas/AnalysedType' required: - - name - - typ + - name + - typ AnalysedFunctionResult: title: AnalysedFunctionResult type: object @@ -11556,7 +14761,7 @@ components: typ: $ref: '#/components/schemas/AnalysedType' required: - - typ + - typ AnalysedInstance: title: AnalysedInstance type: object @@ -11568,8 +14773,8 @@ components: items: $ref: '#/components/schemas/AnalysedFunction' required: - - name - - functions + - name + - functions Application: title: Application type: object @@ -11586,10 +14791,10 @@ components: name: type: string required: - - id - - revision - - accountId - - name + - id + - revision + - accountId + - name ApplicationCreation: title: ApplicationCreation type: object @@ -11597,7 +14802,7 @@ components: name: type: string required: - - name + - name ApplicationSummary: title: ApplicationSummary type: object @@ -11608,8 +14813,8 @@ components: name: type: string required: - - id - - name + - id + - name ApplicationUpdate: title: ApplicationUpdate type: object @@ -11620,56 +14825,25 @@ components: name: type: string required: - - currentRevision - BinaryDescriptor: - title: BinaryDescriptor - type: object - properties: - restrictions: - type: array - items: - $ref: '#/components/schemas/BinaryType' - BinaryType: - title: BinaryType - type: object - properties: - mimeType: - type: string - required: - - mimeType + - currentRevision ComponentCreation: title: ComponentCreation type: object properties: componentName: type: string - fileOptions: - default: {} - type: object - additionalProperties: - $ref: '#/components/schemas/ComponentFileOptions' - dynamicLinking: - default: {} - type: object - additionalProperties: - $ref: '#/components/schemas/DynamicLinkedInstance' - env: - default: {} - type: object - additionalProperties: - type: string agentTypes: default: [] type: array items: $ref: '#/components/schemas/AgentType' - plugins: - default: [] - type: array - items: - $ref: '#/components/schemas/PluginInstallation' + agentTypeProvisionConfigs: + default: {} + type: object + additionalProperties: + $ref: '#/components/schemas/AgentTypeProvisionConfigCreation' required: - - componentName + - componentName ComponentDto: title: ComponentDto type: object @@ -11702,57 +14876,21 @@ components: createdAt: type: string format: date-time - files: - type: array - items: - $ref: '#/components/schemas/InitialComponentFile' - originalFiles: - type: array - items: - $ref: '#/components/schemas/InitialComponentFile' - installedPlugins: - type: array - items: - $ref: '#/components/schemas/InstalledPlugin' - env: - type: object - additionalProperties: - type: string - originalEnv: - type: object - additionalProperties: - type: string wasmHash: type: string format: hash required: - - id - - revision - - environmentId - - componentName - - hash - - applicationId - - accountId - - componentSize - - metadata - - createdAt - - files - - originalFiles - - installedPlugins - - env - - originalEnv - - wasmHash - ComponentFileOptions: - title: ComponentFileOptions - type: object - properties: - permissions: - description: Path of the file in the uploaded archive - allOf: - - $ref: '#/components/schemas/ComponentFilePermissions' - - description: Path of the file in the uploaded archive - required: - - permissions + - id + - revision + - environmentId + - componentName + - hash + - applicationId + - accountId + - componentSize + - metadata + - createdAt + - wasmHash ComponentMetadata: title: ComponentMetadata type: object @@ -11770,27 +14908,30 @@ components: items: $ref: '#/components/schemas/LinearMemory' binaryWit: + default: '' type: string format: bytes rootPackageName: type: string rootPackageVersion: type: string - dynamicLinking: - type: object - additionalProperties: - $ref: '#/components/schemas/DynamicLinkedInstance' agentTypes: + default: [] type: array items: $ref: '#/components/schemas/AgentType' + agentTypeProvisionConfigs: + description: |- + Per-agent-type provisioning configuration: env, wasi_config, config, plugins, files. + Kept separate from agent type declarations so AgentType stays a pure declaration type. + default: {} + type: object + additionalProperties: + $ref: '#/components/schemas/AgentTypeProvisionConfig' required: - - exports - - producers - - memories - - binaryWit - - dynamicLinking - - agentTypes + - exports + - producers + - memories ComponentModelElementSchema: title: ComponentModelElementSchema type: object @@ -11798,21 +14939,7 @@ components: elementType: $ref: '#/components/schemas/AnalysedType' required: - - elementType - ComponentTransformerPluginSpec: - title: ComponentTransformerPluginSpec - type: object - properties: - providedWitPackage: - type: string - jsonSchema: {} - validateUrl: - type: string - transformUrl: - type: string - required: - - validateUrl - - transformUrl + - elementType ComponentUpdate: title: ComponentUpdate type: object @@ -11820,42 +14947,26 @@ components: currentRevision: type: integer format: uint64 - removedFiles: - default: [] - type: array - items: - description: Path inside a component filesystem. Must be absolute. - type: string - newFileOptions: - default: {} - type: object - additionalProperties: - $ref: '#/components/schemas/ComponentFileOptions' - dynamicLinking: - type: object - additionalProperties: - $ref: '#/components/schemas/DynamicLinkedInstance' - env: - type: object - additionalProperties: - type: string agentTypes: type: array items: $ref: '#/components/schemas/AgentType' - pluginUpdates: - default: [] - type: array - items: - $ref: '#/components/schemas/PluginInstallationAction' + agentTypeProvisionConfigUpdates: + type: object + additionalProperties: + $ref: '#/components/schemas/AgentTypeProvisionConfigUpdate' required: - - currentRevision - CorsPreflightBinding: - title: CorsPreflightBinding + - currentRevision + CorsOptions: + title: CorsOptions type: object properties: - response: - type: string + allowedPatterns: + type: array + items: + type: string + required: + - allowedPatterns CurrentDeployment: title: CurrentDeployment type: object @@ -11868,18 +14979,37 @@ components: format: uint64 version: type: string - deploymentHash: + deploymentHash: + type: string + format: hash + currentRevision: + type: integer + format: uint64 + required: + - environmentId + - revision + - version + - deploymentHash + - currentRevision + CustomHttpMethod: + title: CustomHttpMethod + type: object + properties: + value: + type: string + required: + - value + CustomProvider: + title: CustomProvider + type: object + properties: + name: + type: string + issuerUrl: type: string - format: hash - currentRevision: - type: integer - format: uint64 required: - - environmentId - - revision - - version - - deploymentHash - - currentRevision + - name + - issuerUrl DataSchema: discriminator: propertyName: type @@ -11888,20 +15018,36 @@ components: Multimodal: '#/components/schemas/DataSchema_NamedElementSchemas' type: object oneOf: - - $ref: '#/components/schemas/DataSchema_NamedElementSchemas' - - $ref: '#/components/schemas/DataSchema_NamedElementSchemas' + - $ref: '#/components/schemas/DataSchema_NamedElementSchemas' + - $ref: '#/components/schemas/DataSchema_NamedElementSchemas' DataSchema_NamedElementSchemas: allOf: - - type: object - properties: - type: - example: Multimodal - type: string - enum: - - Multimodal - required: - - type - - $ref: '#/components/schemas/NamedElementSchemas' + - type: object + properties: + type: + example: Multimodal + type: string + enum: + - Multimodal + required: + - type + - $ref: '#/components/schemas/NamedElementSchemas' + DeployedRegisteredAgentType: + title: DeployedRegisteredAgentType + description: |- + RegisteredAgentType with deployment specific information + Deployment related information can only be safely used if it is information of the _currently deployed_ component revision. + type: object + properties: + agentType: + $ref: '#/components/schemas/AgentType' + implementedBy: + $ref: '#/components/schemas/RegisteredAgentTypeImplementer' + webhookPrefixAuthorityAndPath: + type: string + required: + - agentType + - implementedBy Deployment: title: Deployment type: object @@ -11918,10 +15064,26 @@ components: type: string format: hash required: - - environmentId - - revision - - version - - deploymentHash + - environmentId + - revision + - version + - deploymentHash + DeploymentAgentSecretDefault: + title: DeploymentAgentSecretDefault + description: Default values of secrets registered as part of the current deployment + type: object + properties: + path: + title: |- + Agent secret path in any casing. All agent secret paths + are converted to the same casing internally to allow easier cross-language use. + type: array + items: + type: string + secretValue: {} + required: + - path + - secretValue DeploymentCreation: title: DeploymentCreation type: object @@ -11934,9 +15096,24 @@ components: format: hash version: type: string + agentSecretDefaults: + type: array + items: + $ref: '#/components/schemas/DeploymentAgentSecretDefault' + quotaResourceDefaults: + type: array + items: + $ref: '#/components/schemas/ResourceDefinitionCreation' + retryPolicyDefaults: + type: array + items: + $ref: '#/components/schemas/DeploymentRetryPolicyDefault' required: - - expectedDeploymentHash - - version + - expectedDeploymentHash + - version + - agentSecretDefaults + - quotaResourceDefaults + - retryPolicyDefaults DeploymentPlan: title: DeploymentPlan description: Planned deployment including the current revision @@ -11952,19 +15129,19 @@ components: type: array items: $ref: '#/components/schemas/DeploymentPlanComponentEntry' - httpApiDefinitions: - type: array - items: - $ref: '#/components/schemas/DeploymentPlanHttpApiDefintionEntry' httpApiDeployments: type: array items: $ref: '#/components/schemas/DeploymentPlanHttpApiDeploymentEntry' + mcpDeployments: + type: array + items: + $ref: '#/components/schemas/DeploymentPlanMcpDeploymentEntry' required: - - deploymentHash - - components - - httpApiDefinitions - - httpApiDeployments + - deploymentHash + - components + - httpApiDeployments + - mcpDeployments DeploymentPlanComponentEntry: title: DeploymentPlanComponentEntry type: object @@ -11981,12 +15158,12 @@ components: type: string format: hash required: - - id - - revision - - name - - hash - DeploymentPlanHttpApiDefintionEntry: - title: DeploymentPlanHttpApiDefintionEntry + - id + - revision + - name + - hash + DeploymentPlanHttpApiDeploymentEntry: + title: DeploymentPlanHttpApiDeploymentEntry type: object properties: id: @@ -11995,18 +15172,18 @@ components: revision: type: integer format: uint64 - name: + domain: type: string hash: type: string format: hash required: - - id - - revision - - name - - hash - DeploymentPlanHttpApiDeploymentEntry: - title: DeploymentPlanHttpApiDeploymentEntry + - id + - revision + - domain + - hash + DeploymentPlanMcpDeploymentEntry: + title: DeploymentPlanMcpDeploymentEntry type: object properties: id: @@ -12021,10 +15198,29 @@ components: type: string format: hash required: - - id - - revision - - domain - - hash + - id + - revision + - domain + - hash + DeploymentRetryPolicyDefault: + title: DeploymentRetryPolicyDefault + description: Default retry policy to create as part of deployment + type: object + properties: + name: + type: string + priority: + type: integer + format: uint32 + predicate: + $ref: '#/components/schemas/ApiPredicate' + policy: + $ref: '#/components/schemas/ApiRetryPolicy' + required: + - name + - priority + - predicate + - policy DeploymentRollback: title: DeploymentRollback type: object @@ -12036,8 +15232,8 @@ components: type: integer format: uint64 required: - - currentRevision - - deploymentRevision + - currentRevision + - deploymentRevision DeploymentSummary: title: DeploymentSummary description: Summary of all entities tracked by the deployment @@ -12053,20 +15249,20 @@ components: type: array items: $ref: '#/components/schemas/DeploymentPlanComponentEntry' - httpApiDefinitions: - type: array - items: - $ref: '#/components/schemas/DeploymentPlanHttpApiDefintionEntry' httpApiDeployments: type: array items: $ref: '#/components/schemas/DeploymentPlanHttpApiDeploymentEntry' + mcpDeployments: + type: array + items: + $ref: '#/components/schemas/DeploymentPlanMcpDeploymentEntry' required: - - deploymentRevision - - deploymentHash - - components - - httpApiDefinitions - - httpApiDeployments + - deploymentRevision + - deploymentHash + - components + - httpApiDeployments + - mcpDeployments DomainRegistration: title: DomainRegistration type: object @@ -12080,9 +15276,9 @@ components: domain: type: string required: - - id - - environmentId - - domain + - id + - environmentId + - domain DomainRegistrationCreation: title: DomainRegistrationCreation type: object @@ -12090,38 +15286,7 @@ components: domain: type: string required: - - domain - 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: - title: 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 + - domain ElementSchema: discriminator: propertyName: type @@ -12131,45 +15296,51 @@ components: UnstructuredBinary: '#/components/schemas/ElementSchema_BinaryDescriptor' type: object oneOf: - - $ref: '#/components/schemas/ElementSchema_ComponentModelElementSchema' - - $ref: '#/components/schemas/ElementSchema_TextDescriptor' - - $ref: '#/components/schemas/ElementSchema_BinaryDescriptor' + - $ref: '#/components/schemas/ElementSchema_ComponentModelElementSchema' + - $ref: '#/components/schemas/ElementSchema_TextDescriptor' + - $ref: '#/components/schemas/ElementSchema_BinaryDescriptor' ElementSchema_BinaryDescriptor: allOf: - - type: object - properties: - type: - example: UnstructuredBinary - type: string - enum: - - UnstructuredBinary - required: - - type - - $ref: '#/components/schemas/BinaryDescriptor' + - type: object + properties: + type: + example: UnstructuredBinary + type: string + enum: + - UnstructuredBinary + required: + - type + - $ref: '#/components/schemas/BinaryDescriptor' ElementSchema_ComponentModelElementSchema: allOf: - - type: object - properties: - type: - example: ComponentModel - type: string - enum: - - ComponentModel - required: - - type - - $ref: '#/components/schemas/ComponentModelElementSchema' + - type: object + properties: + type: + example: ComponentModel + type: string + enum: + - ComponentModel + required: + - type + - $ref: '#/components/schemas/ComponentModelElementSchema' ElementSchema_TextDescriptor: allOf: - - type: object - properties: - type: - example: UnstructuredText - type: string - enum: - - UnstructuredText - required: - - type - - $ref: '#/components/schemas/TextDescriptor' + - type: object + properties: + type: + example: UnstructuredText + type: string + enum: + - UnstructuredText + required: + - type + - $ref: '#/components/schemas/TextDescriptor' + EnforcementAction: + type: string + enum: + - reject + - throttle + - terminate Environment: title: Environment type: object @@ -12204,15 +15375,15 @@ components: currentDeployment: $ref: '#/components/schemas/EnvironmentCurrentDeploymentView' required: - - id - - revision - - applicationId - - name - - compatibilityCheck - - versionCheck - - securityOverrides - - ownerAccountId - - rolesFromActiveShares + - id + - revision + - applicationId + - name + - compatibilityCheck + - versionCheck + - securityOverrides + - ownerAccountId + - rolesFromActiveShares EnvironmentCreation: title: EnvironmentCreation type: object @@ -12226,10 +15397,10 @@ components: securityOverrides: type: boolean required: - - name - - compatibilityCheck - - versionCheck - - securityOverrides + - name + - compatibilityCheck + - versionCheck + - securityOverrides EnvironmentCurrentDeploymentView: title: EnvironmentCurrentDeploymentView type: object @@ -12246,10 +15417,10 @@ components: type: string format: hash required: - - revision - - deploymentRevision - - deploymentVersion - - deploymentHash + - revision + - deploymentRevision + - deploymentVersion + - deploymentHash EnvironmentPluginGrant: title: EnvironmentPluginGrant type: object @@ -12264,9 +15435,9 @@ components: type: string format: uuid required: - - id - - environmentId - - pluginId + - id + - environmentId + - pluginId EnvironmentPluginGrantCreation: title: EnvironmentPluginGrantCreation type: object @@ -12275,7 +15446,7 @@ components: type: string format: uuid required: - - pluginRegistrationId + - pluginRegistrationId EnvironmentPluginGrantWithDetails: title: EnvironmentPluginGrantWithDetails type: object @@ -12291,16 +15462,16 @@ components: pluginAccount: $ref: '#/components/schemas/AccountSummary' required: - - id - - environmentId - - plugin - - pluginAccount + - id + - environmentId + - plugin + - pluginAccount EnvironmentRole: type: string enum: - - admin - - viewer - - deployer + - admin + - viewer + - deployer EnvironmentShare: title: EnvironmentShare type: object @@ -12322,11 +15493,11 @@ components: items: $ref: '#/components/schemas/EnvironmentRole' required: - - id - - revision - - environmentId - - granteeAccountId - - roles + - id + - revision + - environmentId + - granteeAccountId + - roles EnvironmentShareCreation: title: EnvironmentShareCreation type: object @@ -12339,8 +15510,8 @@ components: items: $ref: '#/components/schemas/EnvironmentRole' required: - - granteeAccountId - - roles + - granteeAccountId + - roles EnvironmentShareUpdate: title: EnvironmentShareUpdate type: object @@ -12353,8 +15524,8 @@ components: items: $ref: '#/components/schemas/EnvironmentRole' required: - - currentRevision - - roles + - currentRevision + - roles EnvironmentSummary: title: EnvironmentSummary type: object @@ -12380,13 +15551,13 @@ components: currentDeployment: $ref: '#/components/schemas/EnvironmentCurrentDeploymentView' required: - - id - - revision - - name - - compatibilityCheck - - versionCheck - - securityOverrides - - rolesFromActiveShares + - id + - revision + - name + - compatibilityCheck + - versionCheck + - securityOverrides + - rolesFromActiveShares EnvironmentUpdate: title: EnvironmentUpdate type: object @@ -12403,7 +15574,7 @@ components: securityOverrides: type: boolean required: - - currentRevision + - currentRevision EnvironmentWithDetails: title: EnvironmentWithDetails description: |- @@ -12439,101 +15610,22 @@ components: account: $ref: '#/components/schemas/AccountSummary' required: - - environment - - application - - account - FileServerBinding: - title: FileServerBinding + - environment + - application + - account + HeaderVariable: + title: HeaderVariable type: object properties: - componentName: + headerName: type: string - workerName: - type: string - response: + variableName: type: string required: - - componentName - - workerName - - response - GatewayBinding: - discriminator: - propertyName: type - mapping: - Worker: '#/components/schemas/GatewayBinding_WorkerGatewayBinding' - FileServer: '#/components/schemas/GatewayBinding_FileServerBinding' - HttpHandler: '#/components/schemas/GatewayBinding_HttpHandlerBinding' - CorsPreflight: '#/components/schemas/GatewayBinding_CorsPreflightBinding' - SwaggerUi: '#/components/schemas/GatewayBinding_Empty' - type: object - oneOf: - - $ref: '#/components/schemas/GatewayBinding_WorkerGatewayBinding' - - $ref: '#/components/schemas/GatewayBinding_FileServerBinding' - - $ref: '#/components/schemas/GatewayBinding_HttpHandlerBinding' - - $ref: '#/components/schemas/GatewayBinding_CorsPreflightBinding' - - $ref: '#/components/schemas/GatewayBinding_Empty' - GatewayBinding_CorsPreflightBinding: - allOf: - - type: object - properties: - type: - example: CorsPreflight - type: string - enum: - - CorsPreflight - required: - - type - - $ref: '#/components/schemas/CorsPreflightBinding' - GatewayBinding_Empty: - allOf: - - type: object - properties: - type: - example: SwaggerUi - type: string - enum: - - SwaggerUi - required: - - type - - $ref: '#/components/schemas/Empty' - GatewayBinding_FileServerBinding: - allOf: - - type: object - properties: - type: - example: FileServer - type: string - enum: - - FileServer - required: - - type - - $ref: '#/components/schemas/FileServerBinding' - GatewayBinding_HttpHandlerBinding: - allOf: - - type: object - properties: - type: - example: HttpHandler - type: string - enum: - - HttpHandler - required: - - type - - $ref: '#/components/schemas/HttpHandlerBinding' - GatewayBinding_WorkerGatewayBinding: - allOf: - - type: object - properties: - type: - example: Worker - type: string - enum: - - Worker - required: - - type - - $ref: '#/components/schemas/WorkerGatewayBinding' - HttpApiDefinition: - title: HttpApiDefinition + - headerName + - variableName + HttpApiDeployment: + title: HttpApiDeployment type: object properties: id: @@ -12545,110 +15637,92 @@ components: environmentId: type: string format: uuid - name: + domain: type: string hash: type: string format: hash - version: + agents: + type: object + additionalProperties: + $ref: '#/components/schemas/HttpApiDeploymentAgentOptions' + webhooksUrl: type: string - routes: - type: array - items: - $ref: '#/components/schemas/HttpApiRoute' createdAt: type: string format: date-time - updatedAt: - type: string - format: date-time - required: - - id - - revision - - environmentId - - name - - hash - - version - - routes - - createdAt - - updatedAt - HttpApiDefinitionCreation: - title: HttpApiDefinitionCreation - type: object - properties: - name: - type: string - version: - type: string - routes: - type: array - items: - $ref: '#/components/schemas/HttpApiRoute' required: - - name - - version - - routes - HttpApiDefinitionUpdate: - title: HttpApiDefinitionUpdate + - id + - revision + - environmentId + - domain + - hash + - agents + - webhooksUrl + - createdAt + HttpApiDeploymentAgentOptions: + title: HttpApiDeploymentAgentOptions type: object properties: - currentRevision: - type: integer - format: uint64 - version: - type: string - routes: - type: array - items: - $ref: '#/components/schemas/HttpApiRoute' - required: - - currentRevision - HttpApiDeployment: - title: HttpApiDeployment + security: + description: |- + Security option to use for all agent methods that require auth. + Failure to provide a security option for an agent that requires one will lead to a deployment failure. + allOf: + - $ref: '#/components/schemas/HttpApiDeploymentAgentSecurity' + - description: |- + Security option to use for all agent methods that require auth. + Failure to provide a security option for an agent that requires one will lead to a deployment failure. + HttpApiDeploymentAgentSecurity: + discriminator: + propertyName: type + mapping: + TestSessionHeader: '#/components/schemas/HttpApiDeploymentAgentSecurity_TestSessionHeaderAgentSecurity' + SecurityScheme: '#/components/schemas/HttpApiDeploymentAgentSecurity_SecuritySchemeAgentSecurity' type: object - properties: - id: - type: string - format: uuid - revision: - type: integer - format: uint64 - environmentId: - type: string - format: uuid - domain: - type: string - hash: - type: string - format: hash - apiDefinitions: - type: array - items: + oneOf: + - $ref: '#/components/schemas/HttpApiDeploymentAgentSecurity_TestSessionHeaderAgentSecurity' + - $ref: '#/components/schemas/HttpApiDeploymentAgentSecurity_SecuritySchemeAgentSecurity' + HttpApiDeploymentAgentSecurity_SecuritySchemeAgentSecurity: + allOf: + - type: object + properties: + type: + example: SecurityScheme type: string - createdAt: - type: string - format: date-time - required: - - id - - revision - - environmentId - - domain - - hash - - apiDefinitions - - createdAt + enum: + - SecurityScheme + required: + - type + - $ref: '#/components/schemas/SecuritySchemeAgentSecurity' + HttpApiDeploymentAgentSecurity_TestSessionHeaderAgentSecurity: + allOf: + - type: object + properties: + type: + example: TestSessionHeader + type: string + enum: + - TestSessionHeader + required: + - type + - $ref: '#/components/schemas/TestSessionHeaderAgentSecurity' HttpApiDeploymentCreation: title: HttpApiDeploymentCreation type: object properties: domain: type: string - apiDefinitions: - type: array - items: - type: string + webhooksUrl: + type: string + agents: + type: object + additionalProperties: + $ref: '#/components/schemas/HttpApiDeploymentAgentOptions' required: - - domain - - apiDefinitions + - domain + - webhooksUrl + - agents HttpApiDeploymentUpdate: title: HttpApiDeploymentUpdate type: object @@ -12656,65 +15730,135 @@ components: currentRevision: type: integer format: uint64 - apiDefinitions: - type: array - items: - type: string + webhookUrl: + type: string + agents: + type: object + additionalProperties: + $ref: '#/components/schemas/HttpApiDeploymentAgentOptions' required: - - currentRevision - HttpApiRoute: - title: HttpApiRoute + - currentRevision + HttpEndpointDetails: + title: HttpEndpointDetails type: object properties: - method: - $ref: '#/components/schemas/RouteMethod' - path: - type: string - binding: - $ref: '#/components/schemas/GatewayBinding' - security: - type: string + httpMethod: + $ref: '#/components/schemas/HttpMethod' + pathSuffix: + type: array + items: + $ref: '#/components/schemas/PathSegment' + headerVars: + type: array + items: + $ref: '#/components/schemas/HeaderVariable' + queryVars: + type: array + items: + $ref: '#/components/schemas/QueryVariable' + authDetails: + $ref: '#/components/schemas/AgentHttpAuthDetails' + corsOptions: + $ref: '#/components/schemas/CorsOptions' required: - - method - - path - - binding - HttpHandlerBinding: - title: HttpHandlerBinding + - httpMethod + - pathSuffix + - headerVars + - queryVars + - corsOptions + HttpMethod: + discriminator: + propertyName: type + mapping: + Get: '#/components/schemas/HttpMethod_Empty' + Head: '#/components/schemas/HttpMethod_Empty' + Post: '#/components/schemas/HttpMethod_Empty' + Put: '#/components/schemas/HttpMethod_Empty' + Delete: '#/components/schemas/HttpMethod_Empty' + Connect: '#/components/schemas/HttpMethod_Empty' + Options: '#/components/schemas/HttpMethod_Empty' + Trace: '#/components/schemas/HttpMethod_Empty' + Patch: '#/components/schemas/HttpMethod_Empty' + Custom: '#/components/schemas/HttpMethod_CustomHttpMethod' + type: object + oneOf: + - $ref: '#/components/schemas/HttpMethod_Empty' + - $ref: '#/components/schemas/HttpMethod_Empty' + - $ref: '#/components/schemas/HttpMethod_Empty' + - $ref: '#/components/schemas/HttpMethod_Empty' + - $ref: '#/components/schemas/HttpMethod_Empty' + - $ref: '#/components/schemas/HttpMethod_Empty' + - $ref: '#/components/schemas/HttpMethod_Empty' + - $ref: '#/components/schemas/HttpMethod_Empty' + - $ref: '#/components/schemas/HttpMethod_Empty' + - $ref: '#/components/schemas/HttpMethod_CustomHttpMethod' + HttpMethod_CustomHttpMethod: + allOf: + - type: object + properties: + type: + example: Custom + type: string + enum: + - Custom + required: + - type + - $ref: '#/components/schemas/CustomHttpMethod' + HttpMethod_Empty: + allOf: + - type: object + properties: + type: + example: Patch + type: string + enum: + - Patch + required: + - type + - $ref: '#/components/schemas/Empty' + HttpMountDetails: + title: HttpMountDetails type: object properties: - componentName: - type: string - workerName: - type: string - idempotencyKey: - type: string - invocationContext: - type: string - response: - type: string + pathPrefix: + type: array + items: + $ref: '#/components/schemas/PathSegment' + authDetails: + $ref: '#/components/schemas/AgentHttpAuthDetails' + phantomAgent: + type: boolean + corsOptions: + $ref: '#/components/schemas/CorsOptions' + webhookSuffix: + type: array + items: + $ref: '#/components/schemas/PathSegment' required: - - componentName - - workerName - - response - InitialComponentFile: - title: InitialComponentFile + - pathPrefix + - phantomAgent + - corsOptions + - webhookSuffix + InitialAgentFile: + title: InitialAgentFile type: object properties: contentHash: - title: |- - Key that can be used to identify a component file. - All files with the same content will have the same key. type: string format: hash path: - description: Path inside a component filesystem. Must be absolute. + description: Absolute path in an agent's filesystem. type: string permissions: - $ref: '#/components/schemas/ComponentFilePermissions' + $ref: '#/components/schemas/AgentFilePermissions' + size: + type: integer + format: uint64 required: - - contentHash - - path - - permissions + - contentHash + - path + - permissions + - size InstalledPlugin: title: InstalledPlugin type: object @@ -12746,12 +15890,12 @@ components: type: integer format: uint64 required: - - environmentPluginGrantId - - priority - - parameters - - pluginRegistrationId - - pluginName - - pluginVersion + - environmentPluginGrantId + - priority + - parameters + - pluginRegistrationId + - pluginName + - pluginVersion LinearMemory: title: LinearMemory type: object @@ -12765,7 +15909,80 @@ components: type: integer format: uint64 required: - - initial + - initial + LiteralSegment: + title: LiteralSegment + type: object + properties: + value: + type: string + required: + - value + McpDeployment: + title: McpDeployment + type: object + properties: + id: + type: string + format: uuid + revision: + type: integer + format: uint64 + environmentId: + type: string + format: uuid + domain: + type: string + hash: + type: string + format: hash + agents: + type: object + additionalProperties: + $ref: '#/components/schemas/McpDeploymentAgentOptions' + createdAt: + type: string + format: date-time + required: + - id + - revision + - environmentId + - domain + - hash + - agents + - createdAt + McpDeploymentAgentOptions: + title: McpDeploymentAgentOptions + type: object + properties: + securityScheme: + type: string + McpDeploymentCreation: + title: McpDeploymentCreation + type: object + properties: + domain: + type: string + agents: + type: object + additionalProperties: + $ref: '#/components/schemas/McpDeploymentAgentOptions' + required: + - domain + - agents + McpDeploymentUpdate: + title: McpDeploymentUpdate + type: object + properties: + currentRevision: + type: integer + format: uint64 + agents: + type: object + additionalProperties: + $ref: '#/components/schemas/McpDeploymentAgentOptions' + required: + - currentRevision NamedElementSchema: title: NamedElementSchema type: object @@ -12775,8 +15992,8 @@ components: schema: $ref: '#/components/schemas/ElementSchema' required: - - name - - schema + - name + - schema NamedElementSchemas: title: NamedElementSchemas type: object @@ -12786,7 +16003,7 @@ components: items: $ref: '#/components/schemas/NamedElementSchema' required: - - elements + - elements OAuth2DeviceflowData: title: OAuth2DeviceflowData type: object @@ -12801,10 +16018,10 @@ components: encodedSession: type: string required: - - url - - userCode - - expires - - encodedSession + - url + - userCode + - expires + - encodedSession OAuth2DeviceflowStart: title: OAuth2DeviceflowStart type: object @@ -12812,11 +16029,11 @@ components: provider: $ref: '#/components/schemas/OAuth2Provider' required: - - provider + - provider OAuth2Provider: type: string enum: - - github + - github OAuth2WebflowData: title: OAuth2WebflowData type: object @@ -12827,8 +16044,8 @@ components: type: string format: uuid required: - - url - - state + - url + - state OplogProcessorPluginSpec: title: OplogProcessorPluginSpec type: object @@ -12840,8 +16057,38 @@ components: type: integer format: uint64 required: - - componentId - - componentRevision + - componentId + - componentRevision + OptionalFieldUpdate_any: + discriminator: + propertyName: op + mapping: + set: '#/components/schemas/OptionalFieldUpdate_any_Set' + unset: '#/components/schemas/OptionalFieldUpdate_any_Unset' + type: object + oneOf: + - $ref: '#/components/schemas/OptionalFieldUpdate_any_Set' + - $ref: '#/components/schemas/OptionalFieldUpdate_any_Unset' + OptionalFieldUpdate_any_Set: + type: object + properties: + op: + type: string + enum: + - set + value: {} + required: + - op + - value + OptionalFieldUpdate_any_Unset: + type: object + properties: + op: + type: string + enum: + - unset + required: + - op Page_AccountSummaryReport: title: Page_AccountSummaryReport type: object @@ -12851,7 +16098,17 @@ components: items: $ref: '#/components/schemas/AccountSummaryReport' required: - - values + - values + Page_AgentSecretDto: + title: Page_AgentSecretDto + type: object + properties: + values: + type: array + items: + $ref: '#/components/schemas/AgentSecretDto' + required: + - values Page_Application: title: Page_Application type: object @@ -12861,7 +16118,7 @@ components: items: $ref: '#/components/schemas/Application' required: - - values + - values Page_ComponentDto: title: Page_ComponentDto type: object @@ -12871,7 +16128,17 @@ components: items: $ref: '#/components/schemas/ComponentDto' required: - - values + - values + Page_DeployedRegisteredAgentType: + title: Page_DeployedRegisteredAgentType + type: object + properties: + values: + type: array + items: + $ref: '#/components/schemas/DeployedRegisteredAgentType' + required: + - values Page_Deployment: title: Page_Deployment type: object @@ -12881,7 +16148,7 @@ components: items: $ref: '#/components/schemas/Deployment' required: - - values + - values Page_DomainRegistration: title: Page_DomainRegistration type: object @@ -12891,7 +16158,7 @@ components: items: $ref: '#/components/schemas/DomainRegistration' required: - - values + - values Page_Environment: title: Page_Environment type: object @@ -12901,7 +16168,7 @@ components: items: $ref: '#/components/schemas/Environment' required: - - values + - values Page_EnvironmentPluginGrantWithDetails: title: Page_EnvironmentPluginGrantWithDetails type: object @@ -12911,7 +16178,7 @@ components: items: $ref: '#/components/schemas/EnvironmentPluginGrantWithDetails' required: - - values + - values Page_EnvironmentShare: title: Page_EnvironmentShare type: object @@ -12921,7 +16188,7 @@ components: items: $ref: '#/components/schemas/EnvironmentShare' required: - - values + - values Page_EnvironmentWithDetails: title: Page_EnvironmentWithDetails type: object @@ -12931,27 +16198,27 @@ components: items: $ref: '#/components/schemas/EnvironmentWithDetails' required: - - values - Page_HttpApiDefinition: - title: Page_HttpApiDefinition + - values + Page_HttpApiDeployment: + title: Page_HttpApiDeployment type: object properties: values: type: array items: - $ref: '#/components/schemas/HttpApiDefinition' + $ref: '#/components/schemas/HttpApiDeployment' required: - - values - Page_HttpApiDeployment: - title: Page_HttpApiDeployment + - values + Page_McpDeployment: + title: Page_McpDeployment type: object properties: values: type: array items: - $ref: '#/components/schemas/HttpApiDeployment' + $ref: '#/components/schemas/McpDeployment' required: - - values + - values Page_PluginRegistrationDto: title: Page_PluginRegistrationDto type: object @@ -12961,17 +16228,27 @@ components: items: $ref: '#/components/schemas/PluginRegistrationDto' required: - - values - Page_RegisteredAgentType: - title: Page_RegisteredAgentType + - values + Page_ResourceDefinition: + title: Page_ResourceDefinition + type: object + properties: + values: + type: array + items: + $ref: '#/components/schemas/ResourceDefinition' + required: + - values + Page_RetryPolicyDto: + title: Page_RetryPolicyDto type: object properties: values: type: array items: - $ref: '#/components/schemas/RegisteredAgentType' + $ref: '#/components/schemas/RetryPolicyDto' required: - - values + - values Page_SecuritySchemeDto: title: Page_SecuritySchemeDto type: object @@ -12981,7 +16258,7 @@ components: items: $ref: '#/components/schemas/SecuritySchemeDto' required: - - values + - values Page_Token: title: Page_Token type: object @@ -12991,7 +16268,65 @@ components: items: $ref: '#/components/schemas/Token' required: - - values + - values + PathSegment: + discriminator: + propertyName: type + mapping: + Literal: '#/components/schemas/PathSegment_LiteralSegment' + SystemVariable: '#/components/schemas/PathSegment_SystemVariableSegment' + PathVariable: '#/components/schemas/PathSegment_PathVariable' + RemainingPathVariable: '#/components/schemas/PathSegment_PathVariable' + type: object + oneOf: + - $ref: '#/components/schemas/PathSegment_LiteralSegment' + - $ref: '#/components/schemas/PathSegment_SystemVariableSegment' + - $ref: '#/components/schemas/PathSegment_PathVariable' + - $ref: '#/components/schemas/PathSegment_PathVariable' + PathSegment_LiteralSegment: + allOf: + - type: object + properties: + type: + example: Literal + type: string + enum: + - Literal + required: + - type + - $ref: '#/components/schemas/LiteralSegment' + PathSegment_PathVariable: + allOf: + - type: object + properties: + type: + example: RemainingPathVariable + type: string + enum: + - RemainingPathVariable + required: + - type + - $ref: '#/components/schemas/PathVariable' + PathSegment_SystemVariableSegment: + allOf: + - type: object + properties: + type: + example: SystemVariable + type: string + enum: + - SystemVariable + required: + - type + - $ref: '#/components/schemas/SystemVariableSegment' + PathVariable: + title: PathVariable + type: object + properties: + variableName: + type: string + required: + - variableName Plan: title: Plan type: object @@ -13010,9 +16345,6 @@ components: componentLimit: type: integer format: uint64 - workerLimit: - type: integer - format: uint64 workerConnectionLimit: type: integer format: uint64 @@ -13028,18 +16360,49 @@ components: maxMemoryPerWorker: type: integer format: uint64 + maxTableElementsPerWorker: + type: integer + format: uint64 + maxDiskSpacePerWorker: + type: integer + format: uint64 + perInvocationHttpCallLimit: + type: integer + format: uint64 + perInvocationRpcCallLimit: + type: integer + format: uint64 + monthlyHttpCallLimit: + type: integer + format: uint64 + monthlyRpcCallLimit: + type: integer + format: uint64 + maxConcurrentAgentsPerExecutor: + type: integer + format: uint64 + oplogWritesPerSecond: + type: integer + format: uint64 required: - - planId - - name - - appLimit - - envLimit - - componentLimit - - workerLimit - - workerConnectionLimit - - storageLimit - - monthlyGasLimit - - monthlyUploadLimit - - maxMemoryPerWorker + - planId + - name + - appLimit + - envLimit + - componentLimit + - workerConnectionLimit + - storageLimit + - monthlyGasLimit + - monthlyUploadLimit + - maxMemoryPerWorker + - maxTableElementsPerWorker + - maxDiskSpacePerWorker + - perInvocationHttpCallLimit + - perInvocationRpcCallLimit + - monthlyHttpCallLimit + - monthlyRpcCallLimit + - maxConcurrentAgentsPerExecutor + - oplogWritesPerSecond PluginInstallation: title: PluginInstallation type: object @@ -13059,9 +16422,9 @@ components: additionalProperties: type: string required: - - environmentPluginGrantId - - priority - - parameters + - environmentPluginGrantId + - priority + - parameters PluginInstallationAction: discriminator: propertyName: type @@ -13071,45 +16434,45 @@ components: Update: '#/components/schemas/PluginInstallationAction_PluginInstallationUpdate' type: object oneOf: - - $ref: '#/components/schemas/PluginInstallationAction_PluginInstallation' - - $ref: '#/components/schemas/PluginInstallationAction_PluginUninstallation' - - $ref: '#/components/schemas/PluginInstallationAction_PluginInstallationUpdate' + - $ref: '#/components/schemas/PluginInstallationAction_PluginInstallation' + - $ref: '#/components/schemas/PluginInstallationAction_PluginUninstallation' + - $ref: '#/components/schemas/PluginInstallationAction_PluginInstallationUpdate' PluginInstallationAction_PluginInstallation: allOf: - - type: object - properties: - type: - example: Install - type: string - enum: - - Install - required: - - type - - $ref: '#/components/schemas/PluginInstallation' + - type: object + properties: + type: + example: Install + type: string + enum: + - Install + required: + - type + - $ref: '#/components/schemas/PluginInstallation' PluginInstallationAction_PluginInstallationUpdate: allOf: - - type: object - properties: - type: - example: Update - type: string - enum: - - Update - required: - - type - - $ref: '#/components/schemas/PluginInstallationUpdate' + - type: object + properties: + type: + example: Update + type: string + enum: + - Update + required: + - type + - $ref: '#/components/schemas/PluginInstallationUpdate' PluginInstallationAction_PluginUninstallation: allOf: - - type: object - properties: - type: - example: Uninstall - type: string - enum: - - Uninstall - required: - - type - - $ref: '#/components/schemas/PluginUninstallation' + - type: object + properties: + type: + example: Uninstall + type: string + enum: + - Uninstall + required: + - type + - $ref: '#/components/schemas/PluginUninstallation' PluginInstallationUpdate: title: PluginInstallationUpdate type: object @@ -13129,7 +16492,7 @@ components: additionalProperties: type: string required: - - environmentPluginGrantId + - environmentPluginGrantId PluginRegistrationCreation: title: PluginRegistrationCreation type: object @@ -13148,12 +16511,12 @@ components: spec: $ref: '#/components/schemas/PluginSpecDto' required: - - name - - version - - description - - icon - - homepage - - spec + - name + - version + - description + - icon + - homepage + - spec PluginRegistrationDto: title: PluginRegistrationDto type: object @@ -13178,64 +16541,34 @@ components: spec: $ref: '#/components/schemas/PluginSpecDto' required: - - id - - accountId - - name - - version - - description - - icon - - homepage - - spec + - id + - accountId + - name + - version + - description + - icon + - homepage + - spec PluginSpecDto: discriminator: propertyName: type mapping: - ComponentTransformer: '#/components/schemas/PluginSpecDto_ComponentTransformerPluginSpec' OplogProcessor: '#/components/schemas/PluginSpecDto_OplogProcessorPluginSpec' - App: '#/components/schemas/PluginSpecDto_Empty' - Library: '#/components/schemas/PluginSpecDto_Empty' type: object oneOf: - - $ref: '#/components/schemas/PluginSpecDto_ComponentTransformerPluginSpec' - - $ref: '#/components/schemas/PluginSpecDto_OplogProcessorPluginSpec' - - $ref: '#/components/schemas/PluginSpecDto_Empty' - - $ref: '#/components/schemas/PluginSpecDto_Empty' - PluginSpecDto_ComponentTransformerPluginSpec: - allOf: - - type: object - properties: - type: - example: ComponentTransformer - type: string - enum: - - ComponentTransformer - required: - - type - - $ref: '#/components/schemas/ComponentTransformerPluginSpec' - PluginSpecDto_Empty: - allOf: - - type: object - properties: - type: - example: Library - type: string - enum: - - Library - required: - - type - - $ref: '#/components/schemas/Empty' + - $ref: '#/components/schemas/PluginSpecDto_OplogProcessorPluginSpec' PluginSpecDto_OplogProcessorPluginSpec: allOf: - - type: object - properties: - type: - example: OplogProcessor - type: string - enum: - - OplogProcessor - required: - - type - - $ref: '#/components/schemas/OplogProcessorPluginSpec' + - type: object + properties: + type: + example: OplogProcessor + type: string + enum: + - OplogProcessor + required: + - type + - $ref: '#/components/schemas/OplogProcessorPluginSpec' PluginUninstallation: title: PluginUninstallation type: object @@ -13245,7 +16578,7 @@ components: type: string format: uuid required: - - environmentPluginGrantId + - environmentPluginGrantId ProducerField: title: ProducerField type: object @@ -13257,8 +16590,8 @@ components: items: $ref: '#/components/schemas/VersionedName' required: - - name - - values + - name + - values Producers: title: Producers type: object @@ -13268,25 +16601,58 @@ components: items: $ref: '#/components/schemas/ProducerField' required: - - fields + - fields Provider: - type: string - enum: - - google - - facebook - - microsoft - - gitlab - RegisteredAgentType: - title: RegisteredAgentType + discriminator: + propertyName: type + mapping: + Google: '#/components/schemas/Provider_Empty' + Facebook: '#/components/schemas/Provider_Empty' + Microsoft: '#/components/schemas/Provider_Empty' + Gitlab: '#/components/schemas/Provider_Empty' + Custom: '#/components/schemas/Provider_CustomProvider' + type: object + oneOf: + - $ref: '#/components/schemas/Provider_Empty' + - $ref: '#/components/schemas/Provider_Empty' + - $ref: '#/components/schemas/Provider_Empty' + - $ref: '#/components/schemas/Provider_Empty' + - $ref: '#/components/schemas/Provider_CustomProvider' + Provider_CustomProvider: + allOf: + - type: object + properties: + type: + example: Custom + type: string + enum: + - Custom + required: + - type + - $ref: '#/components/schemas/CustomProvider' + Provider_Empty: + allOf: + - type: object + properties: + type: + example: Gitlab + type: string + enum: + - Gitlab + required: + - type + - $ref: '#/components/schemas/Empty' + QueryVariable: + title: QueryVariable type: object properties: - agentType: - $ref: '#/components/schemas/AgentType' - implementedBy: - $ref: '#/components/schemas/RegisteredAgentTypeImplementer' + queryParamName: + type: string + variableName: + type: string required: - - agentType - - implementedBy + - queryParamName + - variableName RegisteredAgentTypeImplementer: title: RegisteredAgentTypeImplementer type: object @@ -13298,20 +16664,241 @@ components: type: integer format: uint64 required: - - componentId - - componentRevision - RouteMethod: - type: string - enum: - - get - - connect - - post - - delete - - put - - patch - - options - - trace - - head + - componentId + - componentRevision + ResourceCapacityLimit: + title: ResourceCapacityLimit + type: object + properties: + value: + type: integer + format: uint64 + required: + - value + ResourceConcurrencyLimit: + title: ResourceConcurrencyLimit + type: object + properties: + value: + type: integer + format: uint64 + required: + - value + ResourceDefinition: + title: ResourceDefinition + type: object + properties: + id: + type: string + format: uuid + revision: + type: integer + format: uint64 + environmentId: + type: string + format: uuid + name: + type: string + limit: + $ref: '#/components/schemas/ResourceLimit' + enforcementAction: + $ref: '#/components/schemas/EnforcementAction' + unit: + description: single unit of measurement (e.g., token, request) + type: string + units: + description: multiple units of measurement (e.g., tokens, requests) + type: string + required: + - id + - revision + - environmentId + - name + - limit + - enforcementAction + - unit + - units + ResourceDefinitionCreation: + title: ResourceDefinitionCreation + type: object + properties: + name: + type: string + limit: + $ref: '#/components/schemas/ResourceLimit' + enforcementAction: + $ref: '#/components/schemas/EnforcementAction' + unit: + description: single unit of measurement (e.g., token, request) + type: string + units: + description: multiple units of measurement (e.g., tokens, requests) + type: string + required: + - name + - limit + - enforcementAction + - unit + - units + ResourceDefinitionUpdate: + title: ResourceDefinitionUpdate + type: object + properties: + currentRevision: + type: integer + format: uint64 + limit: + $ref: '#/components/schemas/ResourceLimit' + enforcementAction: + $ref: '#/components/schemas/EnforcementAction' + unit: + description: single unit of measurement (e.g., token, request) + type: string + units: + description: multiple units of measurement (e.g., tokens, requests) + type: string + required: + - currentRevision + ResourceLimit: + discriminator: + propertyName: type + mapping: + Rate: '#/components/schemas/ResourceLimit_ResourceRateLimit' + Capacity: '#/components/schemas/ResourceLimit_ResourceCapacityLimit' + Concurrency: '#/components/schemas/ResourceLimit_ResourceConcurrencyLimit' + type: object + oneOf: + - $ref: '#/components/schemas/ResourceLimit_ResourceRateLimit' + - $ref: '#/components/schemas/ResourceLimit_ResourceCapacityLimit' + - $ref: '#/components/schemas/ResourceLimit_ResourceConcurrencyLimit' + ResourceLimit_ResourceCapacityLimit: + allOf: + - type: object + properties: + type: + example: Capacity + type: string + enum: + - Capacity + required: + - type + - $ref: '#/components/schemas/ResourceCapacityLimit' + ResourceLimit_ResourceConcurrencyLimit: + allOf: + - type: object + properties: + type: + example: Concurrency + type: string + enum: + - Concurrency + required: + - type + - $ref: '#/components/schemas/ResourceConcurrencyLimit' + ResourceLimit_ResourceRateLimit: + allOf: + - type: object + properties: + type: + example: Rate + type: string + enum: + - Rate + required: + - type + - $ref: '#/components/schemas/ResourceRateLimit' + ResourceRateLimit: + title: ResourceRateLimit + type: object + properties: + value: + type: integer + format: uint64 + period: + $ref: '#/components/schemas/TimePeriod' + max: + description: Maximum burst capacity + type: integer + format: uint64 + required: + - value + - period + - max + RetryPolicyCreation: + title: RetryPolicyCreation + type: object + properties: + name: + type: string + priority: + type: integer + format: uint32 + predicateJson: + type: string + policyJson: + type: string + required: + - name + - priority + - predicateJson + - policyJson + RetryPolicyDto: + title: RetryPolicyDto + type: object + properties: + id: + type: string + format: uuid + environmentId: + type: string + format: uuid + name: + type: string + revision: + type: integer + format: uint64 + priority: + type: integer + format: uint32 + predicateJson: + type: string + policyJson: + type: string + required: + - id + - environmentId + - name + - revision + - priority + - predicateJson + - policyJson + RetryPolicyUpdate: + title: RetryPolicyUpdate + type: object + properties: + currentRevision: + type: integer + format: uint64 + priority: + type: integer + format: uint32 + predicateJson: + type: string + policyJson: + type: string + required: + - currentRevision + SecuritySchemeAgentSecurity: + title: SecuritySchemeAgentSecurity + description: |- + OIDC security scheme in the environment that should be used for the agent. + If the requested security scheme does not exist in the environment, the route will be disabled at runtime. + type: object + properties: + securityScheme: + type: string + required: + - securityScheme SecuritySchemeCreation: title: SecuritySchemeCreation type: object @@ -13331,12 +16918,12 @@ components: items: type: string required: - - name - - providerType - - clientId - - clientSecret - - redirectUrl - - scopes + - name + - providerType + - clientId + - clientSecret + - redirectUrl + - scopes SecuritySchemeDto: title: SecuritySchemeDto type: object @@ -13363,14 +16950,14 @@ components: items: type: string required: - - id - - revision - - name - - environmentId - - providerType - - clientId - - redirectUrl - - scopes + - id + - revision + - name + - environmentId + - providerType + - clientId + - redirectUrl + - scopes SecuritySchemeUpdate: title: SecuritySchemeUpdate type: object @@ -13391,23 +16978,140 @@ components: items: type: string required: - - currentRevision - TextDescriptor: - title: TextDescriptor + - currentRevision + Snapshotting: + discriminator: + propertyName: type + mapping: + Disabled: '#/components/schemas/Snapshotting_Empty' + Enabled: '#/components/schemas/Snapshotting_SnapshottingConfig' + type: object + oneOf: + - $ref: '#/components/schemas/Snapshotting_Empty' + - $ref: '#/components/schemas/Snapshotting_SnapshottingConfig' + SnapshottingConfig: + discriminator: + propertyName: configType + mapping: + Default: '#/components/schemas/SnapshottingConfig_Empty' + Periodic: '#/components/schemas/SnapshottingConfig_SnapshottingPeriodic' + EveryNInvocation: '#/components/schemas/SnapshottingConfig_SnapshottingEveryNInvocation' + type: object + oneOf: + - $ref: '#/components/schemas/SnapshottingConfig_Empty' + - $ref: '#/components/schemas/SnapshottingConfig_SnapshottingPeriodic' + - $ref: '#/components/schemas/SnapshottingConfig_SnapshottingEveryNInvocation' + SnapshottingConfig_Empty: + allOf: + - type: object + properties: + configType: + example: Default + type: string + enum: + - Default + required: + - configType + - $ref: '#/components/schemas/Empty' + SnapshottingConfig_SnapshottingEveryNInvocation: + allOf: + - type: object + properties: + configType: + example: EveryNInvocation + type: string + enum: + - EveryNInvocation + required: + - configType + - $ref: '#/components/schemas/SnapshottingEveryNInvocation' + SnapshottingConfig_SnapshottingPeriodic: + allOf: + - type: object + properties: + configType: + example: Periodic + type: string + enum: + - Periodic + required: + - configType + - $ref: '#/components/schemas/SnapshottingPeriodic' + SnapshottingEveryNInvocation: + title: SnapshottingEveryNInvocation type: object properties: - restrictions: - type: array - items: - $ref: '#/components/schemas/TextType' - TextType: - title: TextType + count: + type: integer + format: uint16 + required: + - count + SnapshottingPeriodic: + title: SnapshottingPeriodic type: object properties: - languageCode: + durationNanos: + type: integer + format: uint64 + required: + - durationNanos + Snapshotting_Empty: + allOf: + - type: object + properties: + type: + example: Disabled + type: string + enum: + - Disabled + required: + - type + - $ref: '#/components/schemas/Empty' + Snapshotting_SnapshottingConfig: + allOf: + - type: object + properties: + type: + example: Enabled + type: string + enum: + - Enabled + required: + - type + - $ref: '#/components/schemas/SnapshottingConfig' + SystemVariable: + type: string + enum: + - AgentType + - AgentVersion + SystemVariableSegment: + title: SystemVariableSegment + type: object + properties: + value: + $ref: '#/components/schemas/SystemVariable' + required: + - value + TestSessionHeaderAgentSecurity: + title: TestSessionHeaderAgentSecurity + description: |- + Header that can be used to provide the oidc session directly to the agent through http apis. + Failure to provide the header will result in a 401 response. + type: object + properties: + headerName: type: string required: - - languageCode + - headerName + TimePeriod: + type: string + enum: + - second + - minute + - hour + - day + - month + - year Token: title: Token type: object @@ -13425,10 +17129,10 @@ components: type: string format: date-time required: - - id - - accountId - - createdAt - - expiresAt + - id + - accountId + - createdAt + - expiresAt TokenCreation: title: TokenCreation type: object @@ -13437,7 +17141,7 @@ components: type: string format: date-time required: - - expiresAt + - expiresAt TokenWithSecret: title: TokenWithSecret type: object @@ -13459,14 +17163,11 @@ components: type: string format: date-time required: - - id - - secret - - accountId - - createdAt - - expiresAt - UntypedJsonBody: - description: A json body without a static schema - type: object + - id + - secret + - accountId + - createdAt + - expiresAt VersionedName: title: VersionedName type: object @@ -13476,34 +17177,8 @@ components: version: type: string required: - - name - - version - WasmRpcTarget: - title: WasmRpcTarget - type: object - properties: - interfaceName: - type: string - componentName: - type: string - required: - - interfaceName - - componentName - WorkerGatewayBinding: - title: WorkerGatewayBinding - type: object - properties: - componentName: - type: string - idempotencyKey: - type: string - invocationContext: - type: string - response: - type: string - required: - - componentName - - response + - name + - version securitySchemes: Cookie: type: apiKey @@ -13513,39 +17188,34 @@ components: type: http scheme: bearer tags: - - name: Account - description: The account API allows users to query and manipulate their own account data. - - name: AccountSummary - - name: AgentTypes - description: API working on registered agent types - - name: ApiCertificate - - name: ApiDeployment - - name: ApiDomain - - name: ApiSecurity - - name: Application - - name: Component - - name: Debugging - - name: Deployment - - name: Environment - - name: EnvironmentPluginGrants - - name: EnvironmentShares - - name: Grant - - name: HealthCheck - - name: HttpApiDefinition - - 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: Plugin - - 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. - - name: RegistryService - - name: Reports - - 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: Worker +- name: Account + description: The account API allows users to query and manipulate their own account data. +- name: AccountSummary +- name: Agent + description: API working on agent instances +- name: AgentSecrets +- name: AgentTypes + description: API working on registered agent types +- name: ApiDeployment +- name: ApiDomain +- name: ApiSecurity +- name: Application +- name: Component +- name: Debugging +- name: Deployment +- name: Environment +- name: EnvironmentPluginGrants +- name: EnvironmentShares +- name: HealthCheck +- name: Login + description: The login endpoints are implementing an OAuth2 flow. +- name: McpDeployment +- name: Me +- name: Plugin +- name: RegistryService +- name: Reports +- name: Resources +- name: RetryPolicies +- 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: Worker diff --git a/package.json b/package.json index a86a0906..4e3d778e 100644 --- a/package.json +++ b/package.json @@ -7,44 +7,60 @@ "dev": "next dev", "build:check": "lefthook run pre-build", "build": "next build", + "postbuild": "pagefind --site .next/server/app --output-path public/_pagefind", "start": "next start", - "lint": "next lint --fix", + "lint": "eslint --fix ./src", "format": "prettier --log-level silent --write ./src", "check-links": "bun ./check-links/check-links.ts", "fix": "concurrently -m 1 'npm run lint' 'npm run format'", "generate-local": "concurrently -m 1 'bun run openapi/gen-openapi.ts --local' 'bun run fix'", "generate-dev": "concurrently -m 1 'bun run openapi/gen-openapi.ts --dev' 'bun run fix'", - "generate-prod": "concurrently -m 1 'bun run openapi/gen-openapi.ts --prod' 'bun run fix'" + "generate-prod": "concurrently -m 1 'bun run openapi/gen-openapi.ts --prod' 'bun run fix'", + "update-skills": "bun run skills/sync-skills.ts", + "update-skills-local": "bun run skills/sync-skills.ts --local", + "snippets:scan": "bun run snippets/manage-snippets.ts scan", + "snippets:status": "bun run snippets/manage-snippets.ts status", + "snippets:next": "bun run snippets/manage-snippets.ts next", + "snippets:list": "bun run snippets/manage-snippets.ts list", + "snippets:prompt": "bun run snippets/manage-snippets.ts prompt", + "snippets:complete": "bun run snippets/manage-snippets.ts complete", + "snippets:skip": "bun run snippets/manage-snippets.ts skip", + "snippets:loop": "bun run snippets/run-loop.ts" }, "dependencies": { - "@radix-ui/react-icons": "^1.3.0", - "lucide-react": "^0.412.0", - "next": "14.0.0", - "nextra": "^2.13.2", - "nextra-theme-docs": "^2.13.2", - "react": "^18", - "react-dom": "^18", - "shiki": "^0.14.3" + "@radix-ui/react-icons": "^1.3.2", + "lucide-react": "^1.9.0", + "next": "^16.2.4", + "nextra": "^4.6.1", + "nextra-theme-docs": "^4.6.1", + "react": "^19", + "react-dom": "^19" }, "devDependencies": { - "@apidevtools/swagger-parser": "^10.1.0", - "@types/bun": "^1.0.1", - "@types/node": "^20", - "@types/react": "^18", - "@types/react-dom": "^18", + "@apidevtools/swagger-parser": "^12.1.0", + "@types/bun": "^1.3.13", + "@types/node": "^25", + "@types/react": "^19", + "@types/react-dom": "^19", "autoprefixer": "^10", - "concurrently": "^8.2.2", - "eslint": "^8", - "eslint-config-next": "14.0.0", + "concurrently": "^9.2.1", + "eslint": "^9", + "eslint-config-next": "^16.2.4", "glob": "^11.0.0", - "lefthook": "^1.6.1", + "lefthook": "^2.1.6", "markdown-link-extractor": "^4.0.2", - "openapi-sampler": "^1.4.0", + "mdast-util-to-string": "^4.0.0", + "openapi-sampler": "^1.7.2", "openapi-types": "^12.1.3", + "pagefind": "^1.5.2", "postcss": "^8", - "prettier": "^3.4.2", - "prettier-plugin-tailwindcss": "^0.6.11", + "prettier": "^3.8.3", + "prettier-plugin-tailwindcss": "^0.7.3", + "remark-mdx": "^3.1.1", + "remark-parse": "^11.0.0", "tailwindcss": "^3", - "typescript": "^5" + "typescript": "^6.0.3", + "unified": "^11.0.5", + "unist-util-visit": "^5.1.0" } } diff --git a/skills/sync-skills.ts b/skills/sync-skills.ts new file mode 100644 index 00000000..96543c42 --- /dev/null +++ b/skills/sync-skills.ts @@ -0,0 +1,297 @@ +import { writeFile, readFile, readdir, mkdir, rm } from "fs/promises" +import { join } from "path" +import { existsSync } from "fs" + +const OUTPUT_PATH = "./src/content/how-to-guides" +const GITHUB_API_BASE = "https://api.github.com/repos/golemcloud/golem/contents" +const GITHUB_RAW_BASE = "https://raw.githubusercontent.com/golemcloud/golem/main" +const SKILLS_REL_PATH = "golem-skills/skills" + +const CATEGORIES: Record = { + common: "General", + rust: "Rust", + ts: "TypeScript", + scala: "Scala", + moonbit: "MoonBit", +} + +type Skill = { + name: string + title: string + category: string + content: string +} + +main().catch(e => { + console.error("Failed to sync skills:", e) + process.exit(1) +}) + +async function main() { + const args = process.argv.slice(2) + const localIndex = args.indexOf("--local") + const isLocal = localIndex !== -1 + const localPath = isLocal ? args[localIndex + 1] : undefined + + if (isLocal && !localPath) { + throw new Error("--local requires a path argument, e.g.: --local ../golem") + } + + console.log( + isLocal ? `Reading skills from local path: ${localPath}` : "Fetching skills from GitHub..." + ) + + const skills = isLocal ? await discoverSkillsLocal(localPath!) : await discoverSkillsRemote() + + console.log(`Found ${skills.length} skills across ${Object.keys(CATEGORIES).length} categories`) + + const skillMap = buildSkillMap(skills) + + // Clean and recreate output directory + if (existsSync(OUTPUT_PATH)) { + await rm(OUTPUT_PATH, { recursive: true }) + } + await mkdir(OUTPUT_PATH, { recursive: true }) + + for (const category of Object.keys(CATEGORIES)) { + await mkdir(join(OUTPUT_PATH, category), { recursive: true }) + } + + // Write skill pages + for (const skill of skills) { + const mdx = transformContent(skill, skillMap) + const filePath = join(OUTPUT_PATH, skill.category, `${skill.name}.mdx`) + await writeFile(filePath, mdx) + } + + // Write _meta.json files for each category + for (const [category, categoryTitle] of Object.entries(CATEGORIES)) { + const categorySkills = skills + .filter(s => s.category === category) + .sort((a, b) => a.title.localeCompare(b.title)) + + const meta: Record = {} + for (const skill of categorySkills) { + meta[skill.name] = skill.title + } + + await writeFile( + join(OUTPUT_PATH, category, "_meta.js"), + "export default " + JSON.stringify(meta, null, 2) + ";\n" + ) + } + + // Write top-level _meta.js for how-to-guides + const topMeta: Record = {} + for (const [category, categoryTitle] of Object.entries(CATEGORIES)) { + topMeta[category] = { title: categoryTitle } + } + await writeFile( + join(OUTPUT_PATH, "_meta.js"), + "export default " + JSON.stringify(topMeta, null, 2) + ";\n" + ) + + // Write landing pages + await writeLandingPage(skills) + await writeCategoryLandingPages(skills) + + console.log("Finished syncing skills") +} + +// --- Discovery --- + +async function discoverSkillsLocal(golemRepoPath: string): Promise { + const skillsRoot = join(golemRepoPath, SKILLS_REL_PATH) + const skills: Skill[] = [] + + for (const category of Object.keys(CATEGORIES)) { + const categoryPath = join(skillsRoot, category) + if (!existsSync(categoryPath)) { + console.warn(`Category directory not found: ${categoryPath}`) + continue + } + + const entries = await readdir(categoryPath, { withFileTypes: true }) + for (const entry of entries) { + if (!entry.isDirectory()) continue + + const skillFile = join(categoryPath, entry.name, "SKILL.md") + if (!existsSync(skillFile)) continue + + const raw = await readFile(skillFile, "utf-8") + const { title, content } = parseSkillFile(raw, entry.name) + skills.push({ name: entry.name, title, category, content }) + } + } + + return skills +} + +async function discoverSkillsRemote(): Promise { + const skills: Skill[] = [] + + for (const category of Object.keys(CATEGORIES)) { + const apiUrl = `${GITHUB_API_BASE}/${SKILLS_REL_PATH}/${category}` + const response = await fetch(apiUrl, { + headers: { + Accept: "application/vnd.github.v3+json", + ...(process.env.GITHUB_TOKEN ? { Authorization: `token ${process.env.GITHUB_TOKEN}` } : {}), + }, + }) + + if (!response.ok) { + throw new Error(`GitHub API error for ${category}: ${response.status} ${response.statusText}`) + } + + const entries = (await response.json()) as Array<{ name: string; type: string }> + const dirs = entries.filter(e => e.type === "dir") + + console.log(` ${CATEGORIES[category]}: ${dirs.length} skills`) + + // Fetch all SKILL.md files in parallel + const fetches = dirs.map(async dir => { + const rawUrl = `${GITHUB_RAW_BASE}/${SKILLS_REL_PATH}/${category}/${dir.name}/SKILL.md` + const res = await fetch(rawUrl) + if (!res.ok) { + console.warn(` Skipping ${dir.name}: SKILL.md not found`) + return null + } + const raw = await res.text() + const { title, content } = parseSkillFile(raw, dir.name) + return { name: dir.name, title, category, content } as Skill + }) + + const results = await Promise.all(fetches) + skills.push(...results.filter((s): s is Skill => s !== null)) + } + + return skills +} + +// --- Parsing --- + +function parseSkillFile(raw: string, fallbackName: string): { title: string; content: string } { + // Strip YAML frontmatter + let content = raw + if (raw.startsWith("---")) { + const endIndex = raw.indexOf("---", 3) + if (endIndex !== -1) { + content = raw.slice(endIndex + 3).trimStart() + } + } + + // Extract H1 title + const h1Match = content.match(/^#\s+(.+)$/m) + const title = h1Match ? h1Match[1].trim() : humanize(fallbackName) + + return { title, content } +} + +function humanize(slug: string): string { + return slug + .replace(/^golem-/, "") + .replace(/-(rust|ts|scala)$/, "") + .split("-") + .map(w => w.charAt(0).toUpperCase() + w.slice(1)) + .join(" ") +} + +// --- Content transformation --- + +function buildSkillMap(skills: Skill[]): Map { + const map = new Map() + for (const skill of skills) { + map.set(skill.name, `/how-to-guides/${skill.category}/${skill.name}`) + } + return map +} + +function transformContent(skill: Skill, skillMap: Map): string { + let content = skill.content + + // Rename "Related Skills" section header + content = content.replace(/^###?\s+Related Skills\s*$/gm, "### Related Guides") + + // Clean up table headers for doc context + content = content.replace(/\|\s*When to Load\s*\|/g, "| Description |") + content = content.replace(/\|\s*Skill\s*\|\s*Description\s*\|/g, "| Guide | Description |") + + // Convert backticked skill references to links + // Match `skill-name` where skill-name is a known skill + Array.from(skillMap.entries()).forEach(([name, path]) => { + // Replace `skill-name` with link (but not inside already-linked text) + const escaped = name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&") + const pattern = new RegExp("(? { + const count = skills.filter(s => s.category === cat).length + return { cat, title, count } + }) + + const cards = categoryCounts + .map( + ({ cat, title, count }) => + ` ` + ) + .join("\n") + + const page = `import { Cards } from "nextra/components" + +# How-To Guides + +Practical, step-by-step guides for building with Golem. Each guide covers a specific task with code examples and best practices. + + +${cards} + +` + + await writeFile("./src/content/how-to-guides.mdx", page) +} + +async function writeCategoryLandingPages(skills: Skill[]) { + for (const [category, categoryTitle] of Object.entries(CATEGORIES)) { + const categorySkills = skills + .filter(s => s.category === category) + .sort((a, b) => a.title.localeCompare(b.title)) + + if (categorySkills.length === 0) continue + + const cards = categorySkills + .map(s => ` `) + .join("\n") + + const description = + category === "common" + ? "Language-agnostic guides covering the Golem CLI, project setup, deployment, and configuration." + : `Guides specific to developing Golem agents in ${categoryTitle}.` + + const page = `import { Cards } from "nextra/components" + +# ${categoryTitle} How-To Guides + +${description} + + +${cards} + +` + + await writeFile(join(OUTPUT_PATH, category + ".mdx"), page) + } +} diff --git a/snippets/manage-snippets.ts b/snippets/manage-snippets.ts new file mode 100644 index 00000000..f24c773e --- /dev/null +++ b/snippets/manage-snippets.ts @@ -0,0 +1,846 @@ +import { readFile, writeFile, rename, readdir, stat } from "fs/promises" +import { join, relative } from "path" +import { existsSync } from "fs" +import { unified } from "unified" +import remarkParse from "remark-parse" +import remarkMdx from "remark-mdx" +import { visit } from "unist-util-visit" +import { toString } from "mdast-util-to-string" +import crypto from "crypto" + +// --- Types --- + +type CodeBlock = { + fenceLang: string | null + meta: string | null + code: string + lineStart: number + lineEnd: number +} + +type TabContent = { + label: string + markdown: string + codeBlocks: CodeBlock[] +} + +type SnippetRecord = { + id: string + filePath: string + lineStart: number + lineEnd: number + headingPath: { depth: number; text: string }[] + sectionHeading: string + languagesPresent: string[] + tabs: Record + rawTabsBlock: string + sourceHash: string + status: "pending" | "completed" | "skipped" + completedAt?: string + note?: string + removed?: boolean + warnings?: string[] +} + +type ProgressFile = { + version: number + generatedAt: string + counts: { + total: number + pending: number + completed: number + skipped: number + removed: number + } + snippets: Record +} + +// --- Constants --- + +const DOCS_ROOT = join(import.meta.dir, "..") +const PAGES_DIR = join(DOCS_ROOT, "src", "pages") +const PROGRESS_FILE = join(import.meta.dir, "progress.json") + +const ALLOWED_LANG_LABELS = new Set(["typescript", "rust", "scala", "moonbit"]) + +const EXCLUDED_DIRS = new Set(["how-to-guides", "rest-api"]) + +// --- Utility --- + +function slugify(text: string): string { + return text + .toLowerCase() + .replace(/[^\w\s-]/g, "") + .replace(/\s+/g, "-") + .trim() +} + +function sha256(content: string): string { + return crypto.createHash("sha256").update(content).digest("hex").slice(0, 16) +} + +// --- MDX file discovery --- + +async function discoverMdxFiles(dir: string): Promise { + const results: string[] = [] + const entries = await readdir(dir, { withFileTypes: true }) + + for (const entry of entries) { + const fullPath = join(dir, entry.name) + if (entry.isDirectory()) { + if (dir === PAGES_DIR && EXCLUDED_DIRS.has(entry.name)) continue + results.push(...(await discoverMdxFiles(fullPath))) + } else if (entry.name.endsWith(".mdx") || entry.name.endsWith(".md")) { + // Skip _app, _document, etc. + if (entry.name.startsWith("_")) continue + results.push(fullPath) + } + } + + return results +} + +// --- AST parsing and snippet extraction --- + +function parseTabsItems(node: any): string[] | null { + // Find the `items` attribute in the JSX element + const itemsAttr = node.attributes?.find( + (attr: any) => attr.type === "mdxJsxAttribute" && attr.name === "items" + ) + if (!itemsAttr) return null + + // The value is an expression like {["TypeScript", "Rust"]} + const exprValue = + itemsAttr.value?.type === "mdxJsxAttributeValueExpression" + ? itemsAttr.value.value + : typeof itemsAttr.value === "string" + ? itemsAttr.value + : null + + if (!exprValue) return null + + // Only handle literal arrays like ["TypeScript", "Rust"] + if (!exprValue.trim().startsWith("[")) return null + + // Extract quoted strings from the expression + const matches = [...exprValue.matchAll(/["']([^"']+)["']/g)] + if (matches.length === 0) return null + return matches.map(m => m[1]) +} + +function isLanguageTabs(items: string[]): boolean { + const normalized = items.map(i => i.toLowerCase()) + return ( + normalized.every(i => ALLOWED_LANG_LABELS.has(i)) && + normalized.some(i => i === "typescript" || i === "rust") + ) +} + +type HeadingEntry = { depth: number; text: string; line: number } + +function collectHeadings(tree: any): HeadingEntry[] { + const headings: HeadingEntry[] = [] + visit(tree, "heading", (node: any) => { + headings.push({ + depth: node.depth, + text: toString(node), + line: node.position?.start?.line ?? 0, + }) + }) + return headings +} + +function getHeadingPath(headings: HeadingEntry[], line: number): { depth: number; text: string }[] { + // Find all headings before this line, build a stack + const relevant = headings.filter(h => h.line < line) + const stack: { depth: number; text: string }[] = [] + + for (const h of relevant) { + // Pop everything at same or deeper level + while (stack.length > 0 && stack[stack.length - 1].depth >= h.depth) { + stack.pop() + } + stack.push({ depth: h.depth, text: h.text }) + } + + return [...stack] +} + +function extractCodeBlocks(tabNode: any, sourceLines: string[]): CodeBlock[] { + const blocks: CodeBlock[] = [] + visit(tabNode, (node: any, _index: any, parent: any) => { + // Skip descending into nested elements + if (node.type === "mdxJsxFlowElement" && node.name === "Tabs" && node !== tabNode) { + return "skip" + } + if (node.type === "code") { + blocks.push({ + fenceLang: node.lang ?? null, + meta: node.meta ?? null, + code: node.value, + lineStart: node.position?.start?.line ?? 0, + lineEnd: node.position?.end?.line ?? 0, + }) + } + }) + return blocks +} + +function extractTabMarkdown(tabNode: any, sourceLines: string[]): string { + if (!tabNode.position) return "" + const start = tabNode.position.start.line - 1 + const end = tabNode.position.end.line + return sourceLines.slice(start, end).join("\n") +} + +async function extractSnippetsFromFile(filePath: string): Promise { + const source = await readFile(filePath, "utf-8") + const sourceLines = source.split("\n") + const relPath = relative(DOCS_ROOT, filePath) + + const tree = unified().use(remarkParse).use(remarkMdx).parse(source) + + const headings = collectHeadings(tree) + const snippets: SnippetRecord[] = [] + + // Track occurrence counts per heading path for stable IDs + const occurrenceCounts = new Map() + + visit(tree, "mdxJsxFlowElement", (node: any) => { + if (node.name !== "Tabs") return + + const items = parseTabsItems(node) + if (!items || !isLanguageTabs(items)) return + + const line = node.position?.start?.line ?? 0 + const endLine = node.position?.end?.line ?? 0 + const headingPath = getHeadingPath(headings, line) + const sectionHeading = + headingPath.length > 0 ? headingPath[headingPath.length - 1].text : "(top-level)" + + // Build stable ID + const headingSlug = headingPath.map(h => slugify(h.text)).join("/") || "top" + const occKey = `${relPath}#${headingSlug}` + const occCount = (occurrenceCounts.get(occKey) ?? 0) + 1 + occurrenceCounts.set(occKey, occCount) + const id = `${relPath}#${headingSlug}@${occCount}` + + // Extract tabs + const tabNodes = (node.children ?? []).filter( + (child: any) => child.type === "mdxJsxFlowElement" && child.name === "Tabs.Tab" + ) + + const tabs: Record = {} + const warnings: string[] = [] + + if (tabNodes.length !== items.length) { + warnings.push( + `Tab count mismatch: ${items.length} items but ${tabNodes.length} Tabs.Tab elements` + ) + } + + for (let i = 0; i < Math.min(items.length, tabNodes.length); i++) { + const label = items[i] + const tabNode = tabNodes[i] + tabs[label] = { + label, + markdown: extractTabMarkdown(tabNode, sourceLines), + codeBlocks: extractCodeBlocks(tabNode, sourceLines), + } + } + + const rawStart = (node.position?.start?.line ?? 1) - 1 + const rawEnd = node.position?.end?.line ?? sourceLines.length + const rawTabsBlock = sourceLines.slice(rawStart, rawEnd).join("\n") + + snippets.push({ + id, + filePath: relPath, + lineStart: line, + lineEnd: endLine, + headingPath, + sectionHeading, + languagesPresent: items.filter((_, i) => i < tabNodes.length), + tabs, + rawTabsBlock, + sourceHash: sha256(rawTabsBlock), + status: "pending", + warnings: warnings.length > 0 ? warnings : undefined, + }) + }) + + return snippets +} + +// --- Progress file management --- + +async function loadProgress(): Promise { + if (!existsSync(PROGRESS_FILE)) return null + const content = await readFile(PROGRESS_FILE, "utf-8") + return JSON.parse(content) as ProgressFile +} + +function updateCounts(progress: ProgressFile): void { + const snippets = Object.values(progress.snippets) + progress.counts = { + total: snippets.filter(s => !s.removed).length, + pending: snippets.filter(s => s.status === "pending" && !s.removed).length, + completed: snippets.filter(s => s.status === "completed" && !s.removed).length, + skipped: snippets.filter(s => s.status === "skipped" && !s.removed).length, + removed: snippets.filter(s => s.removed).length, + } +} + +async function saveProgress(progress: ProgressFile): Promise { + updateCounts(progress) + progress.generatedAt = new Date().toISOString() + const tmpFile = PROGRESS_FILE + ".tmp" + await writeFile(tmpFile, JSON.stringify(progress, null, 2) + "\n") + await rename(tmpFile, PROGRESS_FILE) +} + +// --- Commands --- + +async function cmdScan(): Promise { + console.log("Scanning MDX files for language-tab code snippets...") + + const files = await discoverMdxFiles(PAGES_DIR) + console.log(`Found ${files.length} MDX files to scan`) + + const allSnippets: SnippetRecord[] = [] + for (const file of files) { + try { + const snippets = await extractSnippetsFromFile(file) + if (snippets.length > 0) { + console.log(` ${relative(DOCS_ROOT, file)}: ${snippets.length} snippet(s)`) + } + allSnippets.push(...snippets) + } catch (e) { + console.warn(` ⚠️ Failed to parse ${relative(DOCS_ROOT, file)}: ${e}`) + } + } + + console.log(`\nTotal snippets found: ${allSnippets.length}`) + + // Merge with existing progress + const existing = await loadProgress() + const newProgress: ProgressFile = { + version: 1, + generatedAt: new Date().toISOString(), + counts: { total: 0, pending: 0, completed: 0, skipped: 0, removed: 0 }, + snippets: {}, + } + + // Index new snippets + const newIds = new Set() + for (const snippet of allSnippets) { + newIds.add(snippet.id) + const oldEntry = existing?.snippets[snippet.id] + + if (oldEntry) { + // Preserve status and metadata, update content + newProgress.snippets[snippet.id] = { + ...snippet, + status: oldEntry.status, + completedAt: oldEntry.completedAt, + note: oldEntry.note, + } + } else { + newProgress.snippets[snippet.id] = snippet + } + } + + // Mark removed snippets + if (existing) { + for (const [id, entry] of Object.entries(existing.snippets)) { + if (!newIds.has(id)) { + newProgress.snippets[id] = { ...entry, removed: true } + } + } + } + + await saveProgress(newProgress) + + updateCounts(newProgress) + console.log("\nProgress saved to snippets/progress.json") + printCounts(newProgress) +} + +function printCounts(progress: ProgressFile): void { + const c = progress.counts + console.log( + ` Total: ${c.total} | Pending: ${c.pending} | Completed: ${c.completed} | Skipped: ${c.skipped} | Removed: ${c.removed}` + ) +} + +async function cmdStatus(): Promise { + const progress = await loadProgress() + if (!progress) { + console.log("No progress file found. Run 'scan' first.") + return + } + + updateCounts(progress) + printCounts(progress) + + // Show warnings + const withWarnings = Object.values(progress.snippets).filter( + s => s.warnings && s.warnings.length > 0 && !s.removed + ) + if (withWarnings.length > 0) { + console.log(`\nSnippets with warnings (${withWarnings.length}):`) + for (const s of withWarnings) { + console.log(` ${s.id}: ${s.warnings!.join(", ")}`) + } + } + + // Show files breakdown + const byFile = new Map() + for (const s of Object.values(progress.snippets)) { + if (s.removed) continue + if (!byFile.has(s.filePath)) { + byFile.set(s.filePath, { pending: 0, completed: 0, skipped: 0 }) + } + const counts = byFile.get(s.filePath)! + counts[s.status]++ + } + + console.log("\nBy file:") + for (const [file, counts] of Array.from(byFile.entries()).sort((a, b) => + a[0].localeCompare(b[0]) + )) { + const parts = [] + if (counts.pending > 0) parts.push(`${counts.pending} pending`) + if (counts.completed > 0) parts.push(`${counts.completed} done`) + if (counts.skipped > 0) parts.push(`${counts.skipped} skipped`) + console.log(` ${file}: ${parts.join(", ")}`) + } +} + +async function cmdNext(): Promise { + const progress = await loadProgress() + if (!progress) { + console.log("No progress file found. Run 'scan' first.") + return + } + + const next = Object.values(progress.snippets).find(s => s.status === "pending" && !s.removed) + if (!next) { + console.log("All snippets are completed or skipped!") + return + } + + console.log(`Next pending snippet: ${next.id}`) + console.log(` File: ${next.filePath}`) + console.log(` Lines: ${next.lineStart}-${next.lineEnd}`) + console.log(` Section: ${next.sectionHeading}`) + console.log(` Languages: ${next.languagesPresent.join(", ")}`) + if (next.warnings?.length) { + console.log(` Warnings: ${next.warnings.join(", ")}`) + } +} + +function generatePrompt(snippet: SnippetRecord, golemRepoPath: string): string { + const headingPathText = snippet.headingPath + .map(h => `${"#".repeat(h.depth)} ${h.text}`) + .join(" > ") + + const tabSummaries = Object.entries(snippet.tabs) + .map(([label, tab]) => { + const codeInfo = + tab.codeBlocks.length > 0 + ? tab.codeBlocks + .map( + cb => `~~~~${cb.fenceLang ?? ""}${cb.meta ? " " + cb.meta : ""}\n${cb.code}\n~~~~` + ) + .join("\n\n") + : "(no fenced code blocks — tab contains prose or shell commands)" + return `### ${label}\n\n${codeInfo}` + }) + .join("\n\n") + + const missingLangs = ["TypeScript", "Rust", "Scala"].filter( + l => !snippet.languagesPresent.includes(l) + ) + const missingNote = + missingLangs.length > 0 + ? `\n6. **Add missing language tabs**: ${missingLangs.join(", ")}. The \`\` blocks must be added.` + : "" + + const blogUrls = [ + "https://blog.vigoo.dev/posts/golem15-part1-code-first-routes/", + "https://blog.vigoo.dev/posts/golem15-part2-webhooks/", + "https://blog.vigoo.dev/posts/golem15-part3-mcp/", + "https://blog.vigoo.dev/posts/golem15-part4-nodejs/", + "https://blog.vigoo.dev/posts/golem15-part5-scala/", + "https://blog.vigoo.dev/posts/golem15-part6-user-defined-snapshotting/", + "https://blog.vigoo.dev/posts/golem15-part7-config-and-secrets/", + "https://blog.vigoo.dev/posts/golem15-part8-template-simplifications/", + "https://blog.vigoo.dev/posts/golem15-part9-skills/", + "https://blog.vigoo.dev/posts/golem15-part10-websocket/", + ] + + return `Update the following Nextra MDX language-tabs snippet for **Golem 1.5**. + +**Target file**: \`${snippet.filePath}\` +**Line range**: ${snippet.lineStart}–${snippet.lineEnd} +**Section**: ${headingPathText || "(top-level)"} +**Languages present**: ${snippet.languagesPresent.join(", ")} +**Snippet ID**: \`${snippet.id}\` + +## Instructions + +1. **Check correctness** — Determine whether the existing TypeScript and/or Rust code snippets are still correct for Golem 1.5. Look for API changes, renamed imports, changed type signatures, deprecated patterns, etc. +2. **Use these references** (read them as needed): + - How-to guides in this repo: \`src/pages/how-to-guides/\` (these are authoritative for Golem 1.5 patterns) + - Golem 1.5 blog posts: +${blogUrls.map(u => ` - ${u}`).join("\n")} + - The Golem repository: \`${golemRepoPath}\` — especially test components under \`test-components/\` and SDK code +3. **Update** any outdated TypeScript or Rust snippets in-place in the MDX file. +4. **Preserve structure** — Keep \`\` / \`\` structure, \`storageKey\`, surrounding prose, and code block meta (e.g. \`copy\`). +5. **Keep the same abstraction level** — Don't add unnecessary complexity or remove intentional simplifications from the examples.${missingNote} +7. **Verify compilation** — For each language version: + - Run \`golem new\` to create a minimal project + - Place the snippet in enough context that it compiles (add necessary imports, wrapper code, Cargo.toml/package.json entries) + - Run \`golem build\` to verify it compiles + - The full project scaffolding does NOT need to be in the docs — only the snippet needs to be correct + - If the snippet is intentionally partial (uses \`// ...\`), verify the non-elided parts at least +8. **After editing**, run this command to mark the snippet as completed: + \`\`\`shell + bun run snippets/manage-snippets.ts complete ${snippet.id} + \`\`\` +9. **Summarize** what changed, what references were used, and what was verified. + +## Current snippet block + +~~~~mdx +${snippet.rawTabsBlock} +~~~~ + +## Extracted per-language content + +${tabSummaries} +` +} + +function generateAddLangPrompt( + snippet: SnippetRecord, + golemRepoPath: string, + language: string +): string { + const headingPathText = snippet.headingPath + .map(h => `${"#".repeat(h.depth)} ${h.text}`) + .join(" > ") + + const tabSummaries = Object.entries(snippet.tabs) + .map(([label, tab]) => { + const codeInfo = + tab.codeBlocks.length > 0 + ? tab.codeBlocks + .map( + cb => `~~~~${cb.fenceLang ?? ""}${cb.meta ? " " + cb.meta : ""}\n${cb.code}\n~~~~` + ) + .join("\n\n") + : "(no fenced code blocks — tab contains prose or shell commands)" + return `### ${label}\n\n${codeInfo}` + }) + .join("\n\n") + + return `Add a **${language}** tab to the following Nextra MDX language-tabs snippet. + +**Target file**: \`${snippet.filePath}\` +**Line range**: ${snippet.lineStart}–${snippet.lineEnd} +**Section**: ${headingPathText || "(top-level)"} +**Languages present**: ${snippet.languagesPresent.join(", ")} +**Snippet ID**: \`${snippet.id}\` + +## Instructions + +1. **Do NOT modify existing tabs** — The existing language tabs (${snippet.languagesPresent.join(", ")}) are already correct. Do not change them. +2. **Add a \`${language}\` tab** — Add a new \`\` block for ${language} with equivalent code/content. +3. **Update the \` { + const progress = await loadProgress() + if (!progress) { + console.log("No progress file found. Run 'scan' first.") + return + } + + let snippet: SnippetRecord | undefined + + if (idOrNext === "--next") { + snippet = Object.values(progress.snippets).find(s => s.status === "pending" && !s.removed) + if (!snippet) { + console.log("All snippets are completed or skipped!") + return + } + } else { + snippet = progress.snippets[idOrNext] + if (!snippet) { + console.log(`Snippet not found: ${idOrNext}`) + return + } + } + + console.log(generatePrompt(snippet, golemRepoPath)) +} + +async function cmdComplete(id: string, note?: string): Promise { + const progress = await loadProgress() + if (!progress) { + console.log("No progress file found. Run 'scan' first.") + return + } + + const snippet = progress.snippets[id] + if (!snippet) { + console.log(`Snippet not found: ${id}`) + console.log("\nAvailable IDs (first 10):") + Object.keys(progress.snippets) + .slice(0, 10) + .forEach(k => console.log(` ${k}`)) + return + } + + snippet.status = "completed" + snippet.completedAt = new Date().toISOString() + if (note) snippet.note = note + + await saveProgress(progress) + console.log(`Marked as completed: ${id}`) + printCounts(progress) +} + +async function cmdSkip(id: string, note?: string): Promise { + const progress = await loadProgress() + if (!progress) { + console.log("No progress file found. Run 'scan' first.") + return + } + + const snippet = progress.snippets[id] + if (!snippet) { + console.log(`Snippet not found: ${id}`) + return + } + + snippet.status = "skipped" + if (note) snippet.note = note + + await saveProgress(progress) + console.log(`Marked as skipped: ${id}`) + printCounts(progress) +} + +async function cmdList(filter?: string): Promise { + const progress = await loadProgress() + if (!progress) { + console.log("No progress file found. Run 'scan' first.") + return + } + + const snippets = Object.values(progress.snippets) + .filter(s => !s.removed) + .filter(s => !filter || s.status === filter) + .sort((a, b) => a.filePath.localeCompare(b.filePath) || a.lineStart - b.lineStart) + + for (const s of snippets) { + const statusIcon = s.status === "completed" ? "✅" : s.status === "skipped" ? "⏭️" : "⬜" + console.log( + `${statusIcon} ${s.id} [${s.languagesPresent.join(",")}] L${s.lineStart}-${s.lineEnd}` + ) + } + console.log(`\n${snippets.length} snippet(s)`) +} + +async function cmdPromptAddLang( + idOrNext: string, + golemRepoPath: string, + language: string +): Promise { + const progress = await loadProgress() + if (!progress) { + console.log("No progress file found. Run 'scan' first.") + return + } + + let snippet: SnippetRecord | undefined + + if (idOrNext === "--next") { + snippet = Object.values(progress.snippets).find(s => s.status === "pending" && !s.removed) + if (!snippet) { + console.log("All snippets are completed or skipped!") + return + } + } else { + snippet = progress.snippets[idOrNext] + if (!snippet) { + console.log(`Snippet not found: ${idOrNext}`) + return + } + } + + console.log(generateAddLangPrompt(snippet, golemRepoPath, language)) +} + +async function cmdResetMissingLang(language: string): Promise { + const progress = await loadProgress() + if (!progress) { + console.log("No progress file found. Run 'scan' first.") + return + } + + let resetCount = 0 + for (const snippet of Object.values(progress.snippets)) { + if (snippet.removed) continue + if (snippet.status !== "completed") continue + const hasLang = snippet.languagesPresent.some(l => l.toLowerCase() === language.toLowerCase()) + if (!hasLang) { + snippet.status = "pending" + delete snippet.completedAt + snippet.note = `Reset for adding ${language}` + resetCount++ + } + } + + await saveProgress(progress) + console.log(`Reset ${resetCount} snippet(s) to pending (missing ${language})`) + printCounts(progress) +} + +// --- Main --- + +async function main() { + const args = process.argv.slice(2) + const command = args[0] + + const golemRepoFlag = args.indexOf("--golem-repo") + const golemRepoPath = + golemRepoFlag !== -1 && args[golemRepoFlag + 1] ? args[golemRepoFlag + 1] : "../golem" + + switch (command) { + case "scan": + await cmdScan() + break + + case "status": + await cmdStatus() + break + + case "next": + await cmdNext() + break + + case "prompt": { + const target = args[1] ?? "--next" + await cmdPrompt(target, golemRepoPath) + break + } + + case "complete": { + const id = args[1] + if (!id) { + console.log("Usage: complete [--note ]") + return + } + const noteIdx = args.indexOf("--note") + const note = noteIdx !== -1 ? args.slice(noteIdx + 1).join(" ") : undefined + await cmdComplete(id, note) + break + } + + case "skip": { + const id = args[1] + if (!id) { + console.log("Usage: skip [--note ]") + return + } + const noteIdx = args.indexOf("--note") + const note = noteIdx !== -1 ? args.slice(noteIdx + 1).join(" ") : undefined + await cmdSkip(id, note) + break + } + + case "list": { + const filter = args[1] // optional: "pending", "completed", "skipped" + await cmdList(filter) + break + } + + case "prompt-add-lang": { + const target = args[1] ?? "--next" + const langIdx = args.indexOf("--language") + const language = langIdx !== -1 ? args[langIdx + 1] : undefined + if (!language) { + console.log("Usage: prompt-add-lang [id|--next] --language ") + return + } + await cmdPromptAddLang(target, golemRepoPath, language) + break + } + + case "reset-missing-lang": { + const langIdx = args.indexOf("--language") + const language = langIdx !== -1 ? args[langIdx + 1] : args[1] + if (!language) { + console.log("Usage: reset-missing-lang --language ") + return + } + await cmdResetMissingLang(language) + break + } + + default: + console.log(`Usage: bun run snippets/manage-snippets.ts + +Commands: + scan Scan MDX files and update progress.json + status Show progress summary + next Show next pending snippet + list [status] List all snippets, optionally filtered by status + prompt [id|--next] Generate Amp prompt for a snippet + prompt-add-lang [id|--next] --language + Generate prompt to add a specific language tab + reset-missing-lang --language + Reset completed snippets missing a language to pending + complete [--note ...] Mark snippet as completed + skip [--note ...] Mark snippet as skipped + +Options: + --golem-repo Path to golem repo (default: ../golem) +`) + } +} + +main().catch(e => { + console.error("Error:", e) + process.exit(1) +}) diff --git a/snippets/run-loop.ts b/snippets/run-loop.ts new file mode 100644 index 00000000..8c5e5daa --- /dev/null +++ b/snippets/run-loop.ts @@ -0,0 +1,354 @@ +#!/usr/bin/env bun +/** + * Automated snippet update loop. + * + * Picks the next pending snippet, generates a prompt, spawns an `amp -x` thread + * to process it, and repeats until all snippets are done. + * + * Usage: + * bun run snippets/run-loop.ts [options] + * + * Options: + * --golem-repo Path to golem repo (default: ../golem) + * --max Max snippets to process in this run (default: unlimited) + * --dry-run Print the prompt but don't run Amp + * --mode Amp agent mode (default: smart) + * --continue-on-error Continue to next snippet if one fails + * --add-language Only add a missing language tab (resets completed snippets missing it) + */ + +import { readFile, writeFile, appendFile } from "fs/promises" +import { join } from "path" +import { existsSync } from "fs" +import { spawn } from "child_process" + +const SNIPPETS_DIR = import.meta.dir +const PROGRESS_FILE = join(SNIPPETS_DIR, "progress.json") +const LOG_FILE = join(SNIPPETS_DIR, "loop.log") +const MANAGE_SCRIPT = join(SNIPPETS_DIR, "manage-snippets.ts") + +type SnippetRecord = { + id: string + filePath: string + lineStart: number + lineEnd: number + sectionHeading: string + languagesPresent: string[] + status: "pending" | "completed" | "skipped" + removed?: boolean +} + +type ProgressFile = { + version: number + counts: { + total: number + pending: number + completed: number + skipped: number + removed: number + } + snippets: Record +} + +function parseArgs() { + const args = process.argv.slice(2) + const opts = { + golemRepo: "../golem", + max: Infinity, + dryRun: false, + mode: "smart", + continueOnError: false, + addLanguage: undefined as string | undefined, + } + + for (let i = 0; i < args.length; i++) { + switch (args[i]) { + case "--golem-repo": + if (!args[i + 1] || args[i + 1].startsWith("--")) { + console.error("Error: --golem-repo requires a path argument") + process.exit(1) + } + opts.golemRepo = args[++i] + break + case "--max": { + const val = parseInt(args[++i], 10) + if (isNaN(val) || val <= 0) { + console.error("Error: --max requires a positive integer") + process.exit(1) + } + opts.max = val + break + } + case "--dry-run": + opts.dryRun = true + break + case "--mode": + if (!args[i + 1] || args[i + 1].startsWith("--")) { + console.error("Error: --mode requires a value") + process.exit(1) + } + opts.mode = args[++i] + break + case "--continue-on-error": + opts.continueOnError = true + break + case "--add-language": + if (!args[i + 1] || args[i + 1].startsWith("--")) { + console.error("Error: --add-language requires a language name") + process.exit(1) + } + opts.addLanguage = args[++i] + break + case "--help": + case "-h": + printHelp() + process.exit(0) + break + default: + console.error(`Unknown option: ${args[i]}`) + printHelp() + process.exit(1) + } + } + return opts +} + +function printHelp() { + console.log(`Usage: bun run snippets/run-loop.ts [options] + +Automated snippet update loop. Picks the next pending snippet, generates a +prompt, spawns an Amp thread to process it, and repeats. + +Options: + --golem-repo Path to golem repo (default: ../golem) + --max Max snippets to process in this run (default: all) + --dry-run Print prompts without running Amp or changing progress + --mode Amp agent mode: smart, deep, large, rush (default: smart) + --continue-on-error Skip failed snippets instead of stopping the loop + --add-language Only add a missing language tab (e.g. MoonBit) + -h, --help Show this help message + +Examples: + bun run snippets:loop # process all pending + bun run snippets:loop -- --max 5 # do 5 at a time + bun run snippets:loop -- --continue-on-error # don't stop on failures + bun run snippets:loop -- --max 3 --dry-run # preview prompts + bun run snippets:loop -- --mode deep # use deep mode + bun run snippets:loop -- --golem-repo /path/to/golem # custom repo path + bun run snippets:loop -- --add-language MoonBit --mode deep # add MoonBit to all snippets +`) +} + +async function log(msg: string) { + const line = `[${new Date().toISOString()}] ${msg}` + console.log(line) + await appendFile(LOG_FILE, line + "\n") +} + +async function getNextPending(): Promise { + if (!existsSync(PROGRESS_FILE)) return null + const progress: ProgressFile = JSON.parse(await readFile(PROGRESS_FILE, "utf-8")) + return Object.values(progress.snippets).find(s => s.status === "pending" && !s.removed) ?? null +} + +async function generatePrompt( + snippetId: string, + golemRepo: string, + addLanguage?: string +): Promise { + const cmd = addLanguage ? "prompt-add-lang" : "prompt" + const args = ["bun", "run", MANAGE_SCRIPT, cmd, snippetId, "--golem-repo", golemRepo] + if (addLanguage) { + args.push("--language", addLanguage) + } + const proc = Bun.spawn(args, { stdout: "pipe", stderr: "pipe" }) + const output = await new Response(proc.stdout).text() + await proc.exited + return output +} + +async function runAmp(prompt: string, mode: string): Promise<{ success: boolean; output: string }> { + return new Promise(resolve => { + const child = spawn( + "amp", + [ + "-x", + "--dangerously-allow-all", + "--no-notifications", + "--no-ide", + "-m", + mode, + "-l", + "snippet-update", + "--archive", + ], + { + stdio: ["pipe", "pipe", "pipe"], + env: process.env, + } + ) + + let stdout = "" + let stderr = "" + + child.stdout.on("data", (data: Buffer) => { + stdout += data.toString() + }) + child.stderr.on("data", (data: Buffer) => { + stderr += data.toString() + }) + + // Send prompt via stdin + child.stdin.write(prompt) + child.stdin.end() + + child.on("close", (code: number | null) => { + if (code === 0) { + resolve({ success: true, output: stdout }) + } else { + resolve({ + success: false, + output: stderr || stdout || `exit code ${code}`, + }) + } + }) + + child.on("error", (err: Error) => { + resolve({ success: false, output: err.message }) + }) + }) +} + +async function getPendingCount(): Promise { + if (!existsSync(PROGRESS_FILE)) return 0 + const progress: ProgressFile = JSON.parse(await readFile(PROGRESS_FILE, "utf-8")) + return Object.values(progress.snippets).filter(s => s.status === "pending" && !s.removed).length +} + +async function getSnippetStatus(id: string): Promise { + if (!existsSync(PROGRESS_FILE)) return null + const progress: ProgressFile = JSON.parse(await readFile(PROGRESS_FILE, "utf-8")) + return progress.snippets[id] ?? null +} + +async function runManageCmd(...args: string[]): Promise { + const proc = Bun.spawn(["bun", "run", MANAGE_SCRIPT, ...args], { + stdout: "pipe", + stderr: "pipe", + }) + const output = await new Response(proc.stdout).text() + await proc.exited + return output +} + +async function main() { + const opts = parseArgs() + await log(`=== Snippet update loop started ===`) + await log( + `Options: max=${opts.max === Infinity ? "unlimited" : opts.max}, mode=${opts.mode}, dryRun=${opts.dryRun}, golemRepo=${opts.golemRepo}${opts.addLanguage ? `, addLanguage=${opts.addLanguage}` : ""}` + ) + + // Ensure progress file exists + if (!existsSync(PROGRESS_FILE)) { + await log("No progress.json found. Running scan first...") + await runManageCmd("scan") + } + + // If --add-language, first rescan to pick up current state, then reset completed snippets missing the language + if (opts.addLanguage) { + await log(`Rescanning snippets to pick up current state...`) + await runManageCmd("scan") + await log(`Resetting completed snippets missing ${opts.addLanguage}...`) + const resetOutput = await runManageCmd("reset-missing-lang", "--language", opts.addLanguage) + await log(resetOutput.trim()) + } + + let processed = 0 + let failed = 0 + + while (processed < opts.max) { + const snippet = await getNextPending() + if (!snippet) { + await log("No more pending snippets. All done!") + break + } + + const remaining = await getPendingCount() + processed++ + await log( + `\n--- [${processed}/${opts.max === Infinity ? "∞" : opts.max}] Processing snippet (${remaining} remaining) ---` + ) + await log(`ID: ${snippet.id}`) + await log(`File: ${snippet.filePath}`) + await log(`Section: ${snippet.sectionHeading}`) + await log(`Langs: ${snippet.languagesPresent.join(", ")}`) + + try { + // Generate prompt + const prompt = await generatePrompt(snippet.id, opts.golemRepo, opts.addLanguage) + + if (opts.dryRun) { + await log("DRY RUN — prompt would be:") + console.log("\n" + prompt + "\n") + await log("(not modifying progress in dry-run mode)") + continue + } + + // Run Amp via stdin + await log("Spawning Amp thread...") + const startTime = Date.now() + const { success, output } = await runAmp(prompt, opts.mode) + const elapsed = ((Date.now() - startTime) / 1000).toFixed(1) + + if (success) { + await log(`Amp completed in ${elapsed}s`) + // Check if the snippet was marked as completed by Amp + const updatedSnippet = await getSnippetStatus(snippet.id) + if (updatedSnippet?.status === "completed") { + await log(`✅ Snippet marked as completed by Amp`) + } else { + await log( + `⚠️ Amp finished but snippet was NOT marked as completed. Leaving as pending for retry.` + ) + failed++ + if (!opts.continueOnError) { + await log("Stopping loop. Use --continue-on-error to skip and continue.") + break + } + } + } else { + failed++ + await log(`❌ Amp failed after ${elapsed}s`) + await log(`Error output: ${output.slice(0, 500)}`) + + if (opts.continueOnError) { + await log("Skipping this snippet and continuing...") + await runManageCmd("skip", snippet.id, "--note", `loop-failed: ${output.slice(0, 200)}`) + } else { + await log("Stopping loop due to error. Use --continue-on-error to keep going.") + break + } + } + } catch (e: any) { + failed++ + await log(`💥 Unexpected error processing ${snippet.id}: ${e?.message ?? e}`) + if (opts.continueOnError) { + await log("Continuing to next snippet...") + } else { + await log("Stopping loop. Use --continue-on-error to keep going.") + break + } + } + } + + // Final status + await log(`\n=== Loop finished ===`) + await log(`Processed: ${processed}, Failed: ${failed}`) + const status = await runManageCmd("status") + await log(status) +} + +main().catch(async e => { + await log(`Fatal error: ${e}`) + process.exit(1) +}) diff --git a/src/app/[[...mdxPath]]/page.tsx b/src/app/[[...mdxPath]]/page.tsx new file mode 100644 index 00000000..973ff72e --- /dev/null +++ b/src/app/[[...mdxPath]]/page.tsx @@ -0,0 +1,22 @@ +import { generateStaticParamsFor, importPage } from "nextra/pages" +import { useMDXComponents as getMDXComponents } from "../../../mdx-components" + +export const generateStaticParams = generateStaticParamsFor("mdxPath") + +export async function generateMetadata(props: { params: Promise<{ mdxPath?: string[] }> }) { + const params = await props.params + const { metadata } = await importPage(params.mdxPath) + return metadata +} + +const { wrapper: Wrapper } = getMDXComponents() as Record> + +export default async function Page(props: { params: Promise<{ mdxPath?: string[] }> }) { + const params = await props.params + const { default: MDXContent, toc, metadata, sourceCode } = await importPage(params.mdxPath) + return ( + + + + ) +} diff --git a/src/app/layout.tsx b/src/app/layout.tsx new file mode 100644 index 00000000..cc47c834 --- /dev/null +++ b/src/app/layout.tsx @@ -0,0 +1,61 @@ +import { Footer, Layout, Navbar } from "nextra-theme-docs" +import { Head } from "nextra/components" +import { getPageMap } from "nextra/page-map" +import "nextra-theme-docs/style-prefixed.css" +import "../styles/globals.css" +import { Inter } from "next/font/google" +import { GolemLogo } from "@/components/golem-logo" +import { Footer as GolemFooter } from "@/components/footer" + +const font = Inter({ + subsets: ["latin"], + display: "swap", + variable: "--font-sans", +}) + +export const metadata = { + title: { + template: "%s – Golem Cloud", + default: "Golem Cloud", + }, + description: "Learn how to build, deploy, and manage applications on Golem Cloud.", +} + +export default async function RootLayout({ children }: { children: React.ReactNode }) { + const pageMap = await getPageMap() + return ( + + + + + + + + } + projectLink="https://github.com/golemcloud/docs" + chatLink="https://discord.gg/UjXeH8uG4x" + /> + } + footer={} + docsRepositoryBase="https://github.com/golemcloud/docs/blob/main" + sidebar={{ defaultMenuCollapseLevel: 1, toggleButton: true }} + pageMap={pageMap} + nextThemes={{ defaultTheme: "dark" }} + > + {children} + + + + ) +} diff --git a/src/components/app-manifest-schema.tsx b/src/components/app-manifest-schema.tsx index 301da980..e034e121 100644 --- a/src/components/app-manifest-schema.tsx +++ b/src/components/app-manifest-schema.tsx @@ -1,3 +1,5 @@ +"use client" + import { createContext, FC, ReactNode, useContext, useEffect, useState } from "react" export const enum Release { @@ -8,6 +10,7 @@ export const enum Release { R_1_2_4, R_1_3_0, R_1_4_0, + R_1_5_0, } type ReleaseMeta = { @@ -69,6 +72,27 @@ const Releases: { [key in Release]: ReleaseMeta } = { json: "1.4.0", otherChanges: <>, }, + [Release.R_1_5_0]: { + json: "1.5.0", + otherChanges: ( + <> +
+ removed {code("tempDir")}, {code("witDeps")},{" "} + {code("components..sourceWit")},{" "} + {code("components..generatedWit")},{" "} + {code("components..linkedWasm")},{" "} + {code("components..componentType")},{" "} + {code("components..dependencies")},{" "} + {code("components..dependenciesMergeMode")} +
+
removed {code("httpApi.definitions")} subtree
+
+ renamed {code("linkedWasm")} to {code("outputWasm")} +
+
restructured {code("httpApi")} to deployment-only model
+ + ), + }, } export type FieldMeta = { @@ -117,6 +141,11 @@ const FieldSpecializations: FieldSpecialization[] = [ parentPrefix: "clean", descriptionPrefix: "Component specific ", }, + { + pathPrefixMatch: "agents..presets..", + parentPrefix: "agents..", + descriptionPrefix: "Preset specific ", + }, ] function fieldSpecializationDescription(path: string): ReactNode | undefined { @@ -131,7 +160,7 @@ function fieldSpecializationDescription(path: string): ReactNode | undefined { const parentPath = `${spec.parentPrefix}${path.substring(spec.pathPrefixMatch.length)}` return ( -

+

{spec.descriptionPrefix} @@ -152,17 +181,17 @@ function relatedFieldDescription(path: string): ReactNode | undefined { } return ( -

-

+

+

Related fields:

-
    +
      {relatedSpecs.map(spec => { const relatedPath = `${spec.pathPrefixMatch}${path.substring(spec.parentPrefix.length)}` return ( -
    • +
    • {fieldLink({ path: relatedPath })}
    • ) @@ -192,18 +221,18 @@ export const Field: FC = ({ fieldContext?.addField(since_release, path, id) }) - let headerClassName = "nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8" + let headerClassName = "tracking-tight text-slate-900 dark:text-slate-100 mt-8" if (deprecated) { headerClassName += " line-through" } else { - headerClassName += " nx-font-semibold" + headerClassName += " font-semibold" } return ( <>
      {path} @@ -215,9 +244,9 @@ export const Field: FC = ({ aria-label="Permalink for this section" >
      -
      - {availableAndDeprecatedSince(since_release, deprecated_release, "nx-flex nx-justify-end")} -
      +
      + {availableAndDeprecatedSince(since_release, deprecated_release, "flex justify-end")} +
      {specializationDescription && specializationDescription} {children} {relatedDescription && relatedDescription} @@ -233,7 +262,7 @@ type ExampleProps = { export const Example: FC = ({ children }) => { return ( <> -
      Example usage:
      +
      Example usage:
      {children} ) @@ -244,7 +273,7 @@ type EnumValuesProps = { } export const EnumValues: FC = ({ children }) => { - return
        {children}
      + return
        {children}
      } type EnumValueMeta = { @@ -264,19 +293,19 @@ export const EnumValue: FC = ({ children, }: EnumValueProps) => { let codeClassName = - "nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white/10 dark:nx-bg-white/10" + "border-black border-opacity-[0.04] bg-opacity-[0.03] bg-black break-words rounded-md border py-0.5 px-[.25em] text-[.9em] dark:border-white/10 dark:bg-white/10" if (deprecated) { codeClassName += " line-through" } else { - codeClassName += " nx-font-semibold" + codeClassName += " font-semibold" } return ( -
    • +
    • {value} - {isDefault && (default value)} + {isDefault && (default value)} {availableAndDeprecatedSince(release(since), deprecated ? release(deprecated) : undefined)}
      {children}
      @@ -297,6 +326,7 @@ export const Fields: FC = ({ children }) => { [Release.R_1_2_4]: {}, [Release.R_1_3_0]: {}, [Release.R_1_4_0]: {}, + [Release.R_1_5_0]: {}, }) const addField = (relase: Release, path: string, id: string) => { @@ -320,11 +350,11 @@ export const FieldReleases: FC = ({}) => { } return ( <> -
      +
      {(Object.keys(fields) as unknown as Release[]).map(release => { return (
      -
      {availableAndDeprecatedSince(release, undefined)}
      +
      {availableAndDeprecatedSince(release, undefined)}
      {Object.keys(fields[release]) .sort() .map(path => { @@ -332,7 +362,7 @@ export const FieldReleases: FC = ({}) => { return
      {fieldLink({ path: path, id: id })}
      })} {Releases[release].otherChanges && Releases[release].otherChanges} -
      +
      ) })} @@ -354,7 +384,7 @@ function availableAndDeprecatedSince( divClassExt?: string ) { const release = Releases[since] - let className = "nx-text-xs nx-py-1" + let className = "text-xs py-1" if (divClassExt) { className += " " className += divClassExt @@ -365,9 +395,9 @@ function availableAndDeprecatedSince( const release = Releases[deprecated] deprecatedBlock = ( <> - deprecated since - {release.json} - | + deprecated since + {release.json} + | ) } @@ -375,8 +405,8 @@ function availableAndDeprecatedSince( return (
      {deprecatedBlock} - available since - {release.json} + available since + {release.json}
      ) } @@ -388,7 +418,7 @@ function fieldPathToId(path: string): string { function code(text: string): ReactNode { return ( {text} @@ -405,7 +435,7 @@ export function fieldLink({ path, id }: FieldLinkProps): ReactNode { return ( {path} diff --git a/src/components/footer.tsx b/src/components/footer.tsx index d53fa3a3..14a12538 100644 --- a/src/components/footer.tsx +++ b/src/components/footer.tsx @@ -9,10 +9,10 @@ import { GolemLogo } from "./golem-logo" export function Footer() { const year = new Date().getFullYear() return ( -